SlideShare a Scribd company logo
1 of 21
2019/06/21 ML@Loft
株式会社 Gunosy
Gunosyにおけるパーソナライズシステム
(C) Gunosy Inc. All Rights Reserved. PAGE |2
自己紹介
● 小澤俊介(こざわしゅんすけ)
○ skozawa (twitter: @5kozawa)
○ 博士(情報科学)
● Gunosy データ分析部
○ データ分析、ロジック開発全般
● 大学時代は自然言語処理の研究に従事
(C) Gunosy Inc. All Rights Reserved. PAGE |3
株式会社Gunosy
「情報を世界中の人に最適に届ける」
● 情報キュレーションサービスの開発
○ グノシー
○ ニュースパス
○ LUCRA(ルクラ)
○ オトクル
● データ分析部
○ 記事配信アルゴリズムの改善
○ ユーザ行動分析
(C) Gunosy Inc. All Rights Reserved. PAGE |4
ニュース推薦の特徴
● 更新性の高さ
○ 数千記事 / 日
○ ユーザの興味サイクルが早い
● 価値が時間減衰
○ 時間が経つにつれて価値は低下
● 既存アルゴリズムを単純適用できない
(C) Gunosy Inc. All Rights Reserved. PAGE |5
ニュース推薦の要求仕様
● 興味を捉えられる
○ 話題は変化する
● リアルタイム性
○ 数時間に1度のバッチ計算では間に合わない
● 時間を考慮できる
分散表現を利用し、ベクトル空間上で興味を表現
できる限りリアルタイムにスコアリング
ニュースの価値、ユーザとの接触を考慮
(C) Gunosy Inc. All Rights Reserved. PAGE |6
システムアーキテクチャ
(C) Gunosy Inc. All Rights Reserved. PAGE |7
システムアーキテクチャ
スコアリングデータ生成
推薦API
記事、ユーザベクトルの更新
(C) Gunosy Inc. All Rights Reserved. PAGE |8
システムアーキテクチャ
記事、ユーザベクトルの更新
(C) Gunosy Inc. All Rights Reserved. PAGE |9
アイテムベクトルとユーザベクトルの更新
記事ベクトルとユーザベクトルをリアルタイムに更新
(C) Gunosy Inc. All Rights Reserved. PAGE |10
アイテムベクトルとユーザベクトルの更新
記事ベクトルとユーザベクトルをリアルタイムに更新
記事ベクトルの更新
ユーザベクトルの更新
(C) Gunosy Inc. All Rights Reserved. PAGE |11
アイテムベクトルとユーザベクトルの更新
記事ベクトルとユーザベクトルをリアルタイムに更新
記事ベクトルの更新
Crawlerが新着記事を取得
ArticleVectorizerがベクトル生成し、dynamoに書き込む
(C) Gunosy Inc. All Rights Reserved. PAGE |12
アイテムベクトルとユーザベクトルの更新
記事ベクトルとユーザベクトルをリアルタイムに更新
ユーザベクトルの更新
ユーザのクリックをトリガーに、クリックした記事IDをDynamoDBに保存
DynamoDBへの書き込みをトリガーにラムダを発火
ラムダで記事ベクトルを取得、ユーザベクトル生成して保存
(C) Gunosy Inc. All Rights Reserved. PAGE |13
システムアーキテクチャ
スコアリングデータ生成
(C) Gunosy Inc. All Rights Reserved. PAGE |14
スコアリング
ユーザの興味関心に応じたスコアリング
時間減衰
ユーザの興味に応じたスコア
興味ベクトルとユーザベクトルの距
離に応じて重み付け
パーソナライズスコア
(C) Gunosy Inc. All Rights Reserved. PAGE |15
時間減衰
● ニュースの価値
○ 時間が経つにつれて減衰する
○ 1度見たニュースはもう見られない
■ リスト面にだすのはできれば1度だけにしたい
■ ユーザごとの全インプレッションを保存し、リアルタイムに処理するのは難し
い
● 時間減衰関数を用意
○ 記事配信日から時間が経つにつれスコア減衰
○ ユーザの前回リクエスト時間によってスコア減衰
イメージ
(C) Gunosy Inc. All Rights Reserved. PAGE |16
システムアーキテクチャ
推薦API
(C) Gunosy Inc. All Rights Reserved. PAGE |17
推薦API(リスト表示)
● ユーザのリクエストごとにスコアリング
○ 50msec or die
○ 行列演算のみ
■ データのI/Oは極力なくす
■ プロセスキャッシュ
リクエスト
ユーザベクトル取
得
スコアリング 記事リスト生成
興味ベクトル
記事スコア
backgroundで定期的に
(C) Gunosy Inc. All Rights Reserved. PAGE |18
推薦システム運用の課題
● 動作検証
○ 開発環境だとデータ数が少ない
○ パーソナライズされているのでリスト面の検証が困難
● 分散表現のモデル更新
○ 分散表現を更新したい場合、システム全体の更新が必要
● Spark / EMR / presto 運用
○ たまに終わらない
○ prestoは立て直しが必要
(C) Gunosy Inc. All Rights Reserved. PAGE |19
推薦アルゴリズムの課題
● コールドスタート問題
○ 0 クリック時の推薦
○ インプレッションの評価
● オフライン実験
○ パラメータ調整などをA/Bテストでするのは難しい
○ オンライン実験と必ずしも一致しない
■ Offline Evaluation to Make Decisions About Playlist Recommendation
Algorithms, WSDM2019
● 遷移 / 時系列の扱い
○ 点(クリック)での推薦になりがち、線での推薦もしたい
○ データの持ち方など実運用には工夫が必要
(C) Gunosy Inc. All Rights Reserved. PAGE |20
まとめ
● ニュース推薦の特徴
● リアルタイム性の高いシステム構成
● ユーザの興味とニュース価値の時間減衰を考慮したスコ
アリング
● 推薦システムの課題
情報を世界中の人に最適に届ける

More Related Content

What's hot

What's hot (20)

ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
 
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
 
AbemaTVにおける推薦システム
AbemaTVにおける推薦システムAbemaTVにおける推薦システム
AbemaTVにおける推薦システム
 
データサイエンティストのつくり方
データサイエンティストのつくり方データサイエンティストのつくり方
データサイエンティストのつくり方
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
実務と論文で学ぶジョブレコメンデーション最前線2022
実務と論文で学ぶジョブレコメンデーション最前線2022実務と論文で学ぶジョブレコメンデーション最前線2022
実務と論文で学ぶジョブレコメンデーション最前線2022
 
マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話マッチングサービスにおけるKPIの話
マッチングサービスにおけるKPIの話
 
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
DAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebminingDAUを評価指標から捨てた会社の話 #tokyowebmining
DAUを評価指標から捨てた会社の話 #tokyowebmining
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
データ活用をするための組織
データ活用をするための組織データ活用をするための組織
データ活用をするための組織
 

Similar to Gunosyにおけるパーソナライズシステム

2014/06/19 第3回 CKAN コミュニティミーティング | homata
2014/06/19 第3回 CKAN コミュニティミーティング | homata2014/06/19 第3回 CKAN コミュニティミーティング | homata
2014/06/19 第3回 CKAN コミュニティミーティング | homata
Hiroshi Omata
 
推薦システムになにができるのか - Techcompass
推薦システムになにができるのか - Techcompass推薦システムになにができるのか - Techcompass
推薦システムになにができるのか - Techcompass
Yoshifumi Seki
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
Yuya Unno
 

Similar to Gunosyにおけるパーソナライズシステム (20)

2014/06/19 第3回 CKAN コミュニティミーティング | homata
2014/06/19 第3回 CKAN コミュニティミーティング | homata2014/06/19 第3回 CKAN コミュニティミーティング | homata
2014/06/19 第3回 CKAN コミュニティミーティング | homata
 
IT出身で交通に迷い込んだ私が今モビリティについて考えていること
IT出身で交通に迷い込んだ私が今モビリティについて考えていることIT出身で交通に迷い込んだ私が今モビリティについて考えていること
IT出身で交通に迷い込んだ私が今モビリティについて考えていること
 
Information diversity in the advanced information society
Information diversity in the advanced information societyInformation diversity in the advanced information society
Information diversity in the advanced information society
 
bigdata2012nlp okanohara
bigdata2012nlp okanoharabigdata2012nlp okanohara
bigdata2012nlp okanohara
 
累計DL数3,600万のアプリを成長させ続けるためのピボット
累計DL数3,600万のアプリを成長させ続けるためのピボット累計DL数3,600万のアプリを成長させ続けるためのピボット
累計DL数3,600万のアプリを成長させ続けるためのピボット
 
いじめられた子供を支援する 仮想世界ピグパーティの コミュニケーション
いじめられた子供を支援する 仮想世界ピグパーティの コミュニケーションいじめられた子供を支援する 仮想世界ピグパーティの コミュニケーション
いじめられた子供を支援する 仮想世界ピグパーティの コミュニケーション
 
推薦システムになにができるのか - Techcompass
推薦システムになにができるのか - Techcompass推薦システムになにができるのか - Techcompass
推薦システムになにができるのか - Techcompass
 
20221101J-Lisフェア自治体DXaoki.pdf
20221101J-Lisフェア自治体DXaoki.pdf20221101J-Lisフェア自治体DXaoki.pdf
20221101J-Lisフェア自治体DXaoki.pdf
 
mlabforum2012_okanohara
mlabforum2012_okanoharamlabforum2012_okanohara
mlabforum2012_okanohara
 
130612 ocu lecture_presentation
130612 ocu lecture_presentation130612 ocu lecture_presentation
130612 ocu lecture_presentation
 
記事分類における教師データおよびモデルの管理
記事分類における教師データおよびモデルの管理記事分類における教師データおよびモデルの管理
記事分類における教師データおよびモデルの管理
 
青木和人「オープンデータ京都実践会の活動について」,京都市まちづくりアドバイザーミーティング,京都市役所,2014年8月5日.
青木和人「オープンデータ京都実践会の活動について」,京都市まちづくりアドバイザーミーティング,京都市役所,2014年8月5日.青木和人「オープンデータ京都実践会の活動について」,京都市まちづくりアドバイザーミーティング,京都市役所,2014年8月5日.
青木和人「オープンデータ京都実践会の活動について」,京都市まちづくりアドバイザーミーティング,京都市役所,2014年8月5日.
 
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
企業における自然言語処理技術の活用の現場(情報処理学会東海支部主催講演会@名古屋大学)
 
Welcome to opendata world
Welcome to opendata worldWelcome to opendata world
Welcome to opendata world
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation
 
Social Media | Curation Tips and Trends 2013 Summer
Social Media | Curation Tips and Trends 2013 SummerSocial Media | Curation Tips and Trends 2013 Summer
Social Media | Curation Tips and Trends 2013 Summer
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
 
Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例Gunosy における AWS 上での自然言語処理・機械学習の活用事例
Gunosy における AWS 上での自然言語処理・機械学習の活用事例
 
徳島県におけるオープンデータ 推進の取り組み(20150730)
徳島県におけるオープンデータ 推進の取り組み(20150730)徳島県におけるオープンデータ 推進の取り組み(20150730)
徳島県におけるオープンデータ 推進の取り組み(20150730)
 
オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成
 

More from Shunsuke Kozawa

More from Shunsuke Kozawa (10)

Gunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテストGunosyにおける仮説検証とABテスト
Gunosyにおける仮説検証とABテスト
 
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
 
Elasticsearch in hatena bookmark
Elasticsearch in hatena bookmarkElasticsearch in hatena bookmark
Elasticsearch in hatena bookmark
 
Elasticsearchを用いたはてなブックマークのトピック生成
Elasticsearchを用いたはてなブックマークのトピック生成Elasticsearchを用いたはてなブックマークのトピック生成
Elasticsearchを用いたはてなブックマークのトピック生成
 
はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発
 
はてなブックマークの新機能における自然言語処理の活用
はてなブックマークの新機能における自然言語処理の活用はてなブックマークの新機能における自然言語処理の活用
はてなブックマークの新機能における自然言語処理の活用
 
Heady news headline abstraction through event pattern clustering
Heady  news headline abstraction through event pattern clusteringHeady  news headline abstraction through event pattern clustering
Heady news headline abstraction through event pattern clustering
 
Active learning with efficient feature weighting methods for improving data q...
Active learning with efficient feature weighting methods for improving data q...Active learning with efficient feature weighting methods for improving data q...
Active learning with efficient feature weighting methods for improving data q...
 
Joint inference of named entity recognition and normalization for tweets
Joint inference of named entity recognition and normalization for tweetsJoint inference of named entity recognition and normalization for tweets
Joint inference of named entity recognition and normalization for tweets
 
Topical keyphrase extraction from twitter
Topical keyphrase extraction from twitterTopical keyphrase extraction from twitter
Topical keyphrase extraction from twitter
 

Recently uploaded

Recently uploaded (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Gunosyにおけるパーソナライズシステム

  • 2. (C) Gunosy Inc. All Rights Reserved. PAGE |2 自己紹介 ● 小澤俊介(こざわしゅんすけ) ○ skozawa (twitter: @5kozawa) ○ 博士(情報科学) ● Gunosy データ分析部 ○ データ分析、ロジック開発全般 ● 大学時代は自然言語処理の研究に従事
  • 3. (C) Gunosy Inc. All Rights Reserved. PAGE |3 株式会社Gunosy 「情報を世界中の人に最適に届ける」 ● 情報キュレーションサービスの開発 ○ グノシー ○ ニュースパス ○ LUCRA(ルクラ) ○ オトクル ● データ分析部 ○ 記事配信アルゴリズムの改善 ○ ユーザ行動分析
  • 4. (C) Gunosy Inc. All Rights Reserved. PAGE |4 ニュース推薦の特徴 ● 更新性の高さ ○ 数千記事 / 日 ○ ユーザの興味サイクルが早い ● 価値が時間減衰 ○ 時間が経つにつれて価値は低下 ● 既存アルゴリズムを単純適用できない
  • 5. (C) Gunosy Inc. All Rights Reserved. PAGE |5 ニュース推薦の要求仕様 ● 興味を捉えられる ○ 話題は変化する ● リアルタイム性 ○ 数時間に1度のバッチ計算では間に合わない ● 時間を考慮できる 分散表現を利用し、ベクトル空間上で興味を表現 できる限りリアルタイムにスコアリング ニュースの価値、ユーザとの接触を考慮
  • 6. (C) Gunosy Inc. All Rights Reserved. PAGE |6 システムアーキテクチャ
  • 7. (C) Gunosy Inc. All Rights Reserved. PAGE |7 システムアーキテクチャ スコアリングデータ生成 推薦API 記事、ユーザベクトルの更新
  • 8. (C) Gunosy Inc. All Rights Reserved. PAGE |8 システムアーキテクチャ 記事、ユーザベクトルの更新
  • 9. (C) Gunosy Inc. All Rights Reserved. PAGE |9 アイテムベクトルとユーザベクトルの更新 記事ベクトルとユーザベクトルをリアルタイムに更新
  • 10. (C) Gunosy Inc. All Rights Reserved. PAGE |10 アイテムベクトルとユーザベクトルの更新 記事ベクトルとユーザベクトルをリアルタイムに更新 記事ベクトルの更新 ユーザベクトルの更新
  • 11. (C) Gunosy Inc. All Rights Reserved. PAGE |11 アイテムベクトルとユーザベクトルの更新 記事ベクトルとユーザベクトルをリアルタイムに更新 記事ベクトルの更新 Crawlerが新着記事を取得 ArticleVectorizerがベクトル生成し、dynamoに書き込む
  • 12. (C) Gunosy Inc. All Rights Reserved. PAGE |12 アイテムベクトルとユーザベクトルの更新 記事ベクトルとユーザベクトルをリアルタイムに更新 ユーザベクトルの更新 ユーザのクリックをトリガーに、クリックした記事IDをDynamoDBに保存 DynamoDBへの書き込みをトリガーにラムダを発火 ラムダで記事ベクトルを取得、ユーザベクトル生成して保存
  • 13. (C) Gunosy Inc. All Rights Reserved. PAGE |13 システムアーキテクチャ スコアリングデータ生成
  • 14. (C) Gunosy Inc. All Rights Reserved. PAGE |14 スコアリング ユーザの興味関心に応じたスコアリング 時間減衰 ユーザの興味に応じたスコア 興味ベクトルとユーザベクトルの距 離に応じて重み付け パーソナライズスコア
  • 15. (C) Gunosy Inc. All Rights Reserved. PAGE |15 時間減衰 ● ニュースの価値 ○ 時間が経つにつれて減衰する ○ 1度見たニュースはもう見られない ■ リスト面にだすのはできれば1度だけにしたい ■ ユーザごとの全インプレッションを保存し、リアルタイムに処理するのは難し い ● 時間減衰関数を用意 ○ 記事配信日から時間が経つにつれスコア減衰 ○ ユーザの前回リクエスト時間によってスコア減衰 イメージ
  • 16. (C) Gunosy Inc. All Rights Reserved. PAGE |16 システムアーキテクチャ 推薦API
  • 17. (C) Gunosy Inc. All Rights Reserved. PAGE |17 推薦API(リスト表示) ● ユーザのリクエストごとにスコアリング ○ 50msec or die ○ 行列演算のみ ■ データのI/Oは極力なくす ■ プロセスキャッシュ リクエスト ユーザベクトル取 得 スコアリング 記事リスト生成 興味ベクトル 記事スコア backgroundで定期的に
  • 18. (C) Gunosy Inc. All Rights Reserved. PAGE |18 推薦システム運用の課題 ● 動作検証 ○ 開発環境だとデータ数が少ない ○ パーソナライズされているのでリスト面の検証が困難 ● 分散表現のモデル更新 ○ 分散表現を更新したい場合、システム全体の更新が必要 ● Spark / EMR / presto 運用 ○ たまに終わらない ○ prestoは立て直しが必要
  • 19. (C) Gunosy Inc. All Rights Reserved. PAGE |19 推薦アルゴリズムの課題 ● コールドスタート問題 ○ 0 クリック時の推薦 ○ インプレッションの評価 ● オフライン実験 ○ パラメータ調整などをA/Bテストでするのは難しい ○ オンライン実験と必ずしも一致しない ■ Offline Evaluation to Make Decisions About Playlist Recommendation Algorithms, WSDM2019 ● 遷移 / 時系列の扱い ○ 点(クリック)での推薦になりがち、線での推薦もしたい ○ データの持ち方など実運用には工夫が必要
  • 20. (C) Gunosy Inc. All Rights Reserved. PAGE |20 まとめ ● ニュース推薦の特徴 ● リアルタイム性の高いシステム構成 ● ユーザの興味とニュース価値の時間減衰を考慮したスコ アリング ● 推薦システムの課題