はじめまして。
dely, Inc. の @sakura です。
この記事は Google Products Advent Calendar 2019 - Adventar の20日目の記事です。 昨日は新坂さんのGoogle Homeの記事でした。Google Homeに関する様々な実体験が書かれており、とてもほっこりするエントリでした。
本記事では、YouTubeのレコメンドの仕組みについて書かれている論文『Deep Neural Networks for YouTube Recommendations』を紹介します。
なぜ読んだのか
YouTubeは普段から利用するサイトの一つであり、興味があったからです。
また、社内では「サーベイチャレンジ」という試みがありせっかくの機会なので読んでみました。
本論文について
論文へのリンク https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/45530.pdf
タイトル: Deep Neural Networks for YouTube Recommendations
著者:Covington, Jay Adams, Emre Sargin
これは2016年に発表された論文で、YouTubeのレコメンドに関する技術について書かれています。
イントロダクション
さっそく本論文の内容に入っていきます。
※ここから先は書き言葉になります。そうしないと〇〇らしいです。〇〇そうです。の文章のオンパレードになってしまい読みくいため
イントロダクションには、YouTubeのレコメンドは3つの大きな挑戦があると書いている。
1.スケールの問題
既存のレコメンドアルゴリズムの多くは小さな問題ではうまく機能することが証明されているが、YouTubeの規模では機能しない。
YouTubeの規模になるとユーザーデータも莫大にあるからそこをどう対処していくか。
2.新鮮さの問題
毎秒何時間もの大きな動画がアップロードされるのでレコメンドシステムはこれに耐えうる性能でなければならない。
また、ユーザーは新しいコンテンツを好むことはわかっているがそれと引き換えに適合度(関連性)や既存のコンテンツとのバランスは慎重に考慮する必要がある。
3.ノイズの問題
YouTubeでの過去のユーザー行動は、スパース性(まばらという意味)と色んな観測不能な外部要因があるから予測がかなり困難。
加えて、各ビデオのメタデータの構造が不十分である。
従って、アルゴリズムを作るにあたってこのような特性を十分に加味しておかなければならない。
わかったこと
論文を読んでわかった部分のいくつかを紹介します。
全てについては解説していないのでご了承ください。
レコメンドシステムの2層のニューラルネットワーク
レコメンドシステムには2層ニューラルネットワークを使用している。
1つはレコメンド群の候補たちを生成するもの、もう1つはそれらをランキングのように並び替えるものである。
前者には特徴量行列としてユーザーのYouTubeアクティビティ履歴を使用しているとのこと。
また、前者には協調フィルタリングも使用していてパーソナライズを実現している。協調フィルタリングにはアイテムの類似度のみならず、ユーザー同士の関係性も必要になってくるがそこはどんなビデオを見ているか、どんな検索クエリを入力しているか、あとは一般的な人口統計などの情報を使っているらしい。
暗黙的フィードバック
YouTubeにはGood/Badボタンなど様々な明示的フィードバックがあるが、モデルをトレーニングする時は暗黙的なフィードバックを使う。
暗黙的なフィードバックとはなにかの説明については以下のブログがわかりやすかったです。
この記事では,ユーザの行動履歴をフィードバックと呼びます.一言にユーザからのフィードバックと言っても様々な種類があります.例えば,ユーザがアイテムに対して点数(rating)をつけたものや,like・dislikeのようにそのアイテムを好きか嫌いかを表すものがあります.このタイプは,ユーザがそのアイテムを好きかどうかがはっきりとわかるので,明示的フィードバック(explicit feedback)と呼ばれます.一方で,単なる閲覧・購入履歴などのデータも存在します.このデータからは,閲覧したけど好きだったかどうかはわかりませんし,購入したけど満足したかどうかはわかりません.したがって,このタイプは暗黙的フィードバック(implicit feedback)と呼ばれます.
「推薦」の定式化から推薦システムを理解する | カメリオ開発者ブログ
アルゴリズムに使われている情報
論文中に記載されていただけでもこれだけの情報がレコメンドアルゴリズムに使用されている可能性があることがわかった。
3.3 Heterogeneous Signalsなどに記載されている。
・ユーザーのYouTubeアクティビティ履歴
・ユーザー間の類似度
・ビデオ間の類似度
・ユーザーの視聴履歴
・ユーザーの地域
・ユーザーの性別
・ユーザーのログイン情報
・ユーザーの年齢
・ユーザーはいくつこのチャンネルの動画を見ているか
・ユーザーがこのトピックに関するビデオを最後に見たときはいつか
(・もしレコメンドした動画をユーザーがみなかったらその動画は降格させる
など
CTRより視聴時間
Ranking by click-through rate often promotes deceptive videos that the user does not complete (“clickbait”) whereas watch time better captures engagement [13, 25].
[13] E. Meyerson. Youtube now: Why we focus on watch time. http://youtubecreator.blogspot.com/2012/08/ youtube-now-why-we-focus-on-watch-time.html. Accessed: 2016-04-20.
[25] X. Yi, L. Hong, E. Zhong, N. N. Liu, and S. Rajan. Beyond clicks: Dwell time for personalization. In Proceedings of the 8th ACM Conference on Recommender Systems, RecSys ’14, pages 113–120, New York, NY, USA, 2014. ACM.
「CTRで測定するランキングはしばしばdeceptive(こすい、詐欺的)なビデオを促進するものだ。それよりも視聴時間を見るほうがユーザーのエンゲージメントをよく捉えているといえるだろう。[13,25]」
と引用して記載されている部分がある。
レコメンド群の候補たちを生成するモデル
図はレコメンド群の候補たちを生成するモデルを説明しているものだ。
視聴履歴や検索履歴をベクトル化して、そこにユーザーの地理的な情報や年齢、性別などの情報をベクトル化してくっつけている。
それをReLU関数に3回かけてsoftmaxでトレーニングしてクラスの確率を推定してる。(多クラス分類なので
最後に、上記でやった結果を最近傍探索して上位N件を取り出している。
まとめ
YouTubeのレコメンドに関する論文
『Deep Neural Networks for YouTube Recommendations』を紹介しました。
YouTubeってついつい見て時間経っちゃってる時ありますよね。
その裏ではこんなことが起こっているんだな、と一端を知ることが出来ました。
機械学習に詳しいわけではないので理解できない部分も多々ありましたが、
YouTubeのレコメンドの仕組みが少しでも理解できて感動しました。
もし、YouTubeに興味がある方がいれば読んでみると面白いかもしれません。
さいごに
最後に告知です。delyではエンジニアを絶賛募集中です。
ぜひお気軽にご連絡ください。