dely Tech Blog

クラシル・TRILLを運営するdely株式会社の開発ブログです

『Deep Neural Networks for YouTube Recommendations』を紹介します

www.youtube.com

はじめまして。
dely, Inc. の @sakura です。

この記事は Google Products Advent Calendar 2019 - Adventar の20日目の記事です。 昨日は新坂さんのGoogle Homeの記事でした。Google Homeに関する様々な実体験が書かれており、とてもほっこりするエントリでした。

polasleep.hateblo.jp


本記事では、YouTubeのレコメンドの仕組みについて書かれている論文『Deep Neural Networks for YouTube Recommendations』を紹介します。

なぜ読んだのか

YouTubeは普段から利用するサイトの一つであり、興味があったからです。
また、社内では「サーベイチャレンジ」という試みがありせっかくの機会なので読んでみました。

tech.dely.jp

本論文について

f:id:sakura818uuu:20191219173446p:plain
本論文の1ページ目

論文へのリンク 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のレコメンドに関する技術について書かれています。

イントロダクション

さっそく本論文の内容に入っていきます。

※ここから先は書き言葉になります。そうしないと〇〇らしいです。〇〇そうです。の文章のオンパレードになってしまい読みくいため

f:id:sakura818uuu:20191219173222p:plain:w200
イントロダクションには、YouTubeのレコメンドは3つの大きな挑戦があると書いている。

1.スケールの問題

既存のレコメンドアルゴリズムの多くは小さな問題ではうまく機能することが証明されているが、YouTubeの規模では機能しない
YouTubeの規模になるとユーザーデータも莫大にあるからそこをどう対処していくか。

2.新鮮さの問題

毎秒何時間もの大きな動画がアップロードされるのでレコメンドシステムはこれに耐えうる性能でなければならない。
また、ユーザーは新しいコンテンツを好むことはわかっているがそれと引き換えに適合度(関連性)や既存のコンテンツとのバランスは慎重に考慮する必要がある。

3.ノイズの問題

YouTubeでの過去のユーザー行動は、スパース性(まばらという意味)と色んな観測不能な外部要因があるから予測がかなり困難。
加えて、各ビデオのメタデータの構造が不十分である。
従って、アルゴリズムを作るにあたってこのような特性を十分に加味しておかなければならない。

わかったこと

論文を読んでわかった部分のいくつかを紹介します。
全てについては解説していないのでご了承ください。

レコメンドシステムの2層のニューラルネットワーク

f:id:sakura818uuu:20191219174303p:plain
Figure 2: Recommendation system architecture demonstrating the “funnel” where candidate videos are retrieved and ranked before presenting only a few to the user.

レコメンドシステムには2層ニューラルネットワークを使用している。
1つはレコメンド群の候補たちを生成するもの、もう1つはそれらをランキングのように並び替えるものである

前者には特徴量行列としてユーザーのYouTubeアクティビティ履歴を使用しているとのこと。
また、前者には協調フィルタリングも使用していてパーソナライズを実現している。協調フィルタリングにはアイテムの類似度のみならず、ユーザー同士の関係性も必要になってくるがそこはどんなビデオを見ているか、どんな検索クエリを入力しているか、あとは一般的な人口統計などの情報を使っているらしい。

暗黙的フィードバック

f:id:sakura818uuu:20191219174447p:plain
YouTubeのGood/Badボタン

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]」

と引用して記載されている部分がある。

レコメンド群の候補たちを生成するモデル

f:id:sakura818uuu:20191219174638p:plain
Figure 3: Deep candidate generation model architecture showing embedded sparse features concatenated with dense features. Embeddings are averaged before concatenation to transform variable sized bags of sparse IDs into fixed-width vectors suitable for input to the hidden layers. All hidden layers are fully connected. In training, a cross-entropy loss is minimized with gradient descent on the output of the sampled softmax. At serving, an approximate nearest neighbor lookup is performed to generate hundreds of candidate video recommendations.

図はレコメンド群の候補たちを生成するモデルを説明しているものだ。

視聴履歴や検索履歴をベクトル化して、そこにユーザーの地理的な情報や年齢、性別などの情報をベクトル化してくっつけている。
それをReLU関数に3回かけてsoftmaxでトレーニングしてクラスの確率を推定してる。(多クラス分類なので
最後に、上記でやった結果を最近傍探索して上位N件を取り出している。

まとめ

YouTubeのレコメンドに関する論文
Deep Neural Networks for YouTube Recommendations』を紹介しました。

YouTubeってついつい見て時間経っちゃってる時ありますよね。
その裏ではこんなことが起こっているんだな、と一端を知ることが出来ました。

機械学習に詳しいわけではないので理解できない部分も多々ありましたが、
YouTubeのレコメンドの仕組みが少しでも理解できて感動しました。

もし、YouTubeに興味がある方がいれば読んでみると面白いかもしれません。

さいごに

最後に告知です。delyではエンジニアを絶賛募集中です。
ぜひお気軽にご連絡ください。

https://www.wantedly.com/projects/329047