Deep Karmaning

技術系の話から日常のことまで色々と書きます

【論文メモ】Deep Neural Networks for YouTube Recommendations

読んだ論文

今回読んだ論文は以下。

Deep Neural Networks for YouTube Recommendations

間違い等ありましたら、ご指摘お願いいたします。

実務で真似したい点

  • ランキング候補の生成と実際のランキングスコアの算出をモデルを分けて実施している点

概要

YouTubeにおけるDeep Neural Netを用いた新しいレコメンデーションに関する論文。

ランキング候補の生成とランキングスコアの算出を分けてモデルを作りレコメンデーションをする方法を提案している。

方法

システム

システムの構成としては以下の図のようにしている。

f:id:rf00:20180507204126p:plain

ビデオの数が何百万かあってその中から、候補生成モデルを通して何百かに絞る。そしてランキング算出し何十かをレコメンドするという流れになっている。

候補生成

モデルの構造は以下の通り。

f:id:rf00:20180507204739p:plain

閲覧したビデオや、検索の履歴を埋め込みでベクトル化して平均をとって特徴量としている。

最後userのベクトルとvideoのベクトルをknnで近いものからN個絞って候補としてるようだが、videoのベクトルの生成がどうなっているのかいまいち理解できていない。

ランキング算出

ランキング算出のモデル構造は以下。

f:id:rf00:20180507205958p:plain

いくつかの埋め込みをベクトルを作って特徴量としている。

連続量の変数は3つのやり方で変換している。

  • [0, 1)で累積分布に変換

  • 2乗する

  • ルートをとる

予測のためのラベルは表示されてクリックされたらポジティブ、クリックされなかったらネガティブとしている。

ただし、この論文では重み付きロジスティック回帰というのを提案していて、

{\displaystyle \frac{\Sigma T_i}{N-k}}

という式で重みを付けているらしい。 ここでNは学習サンプルサイズ、kはポジティブインプレッションの数、Tiが視聴回数のi回目のインプレッションとのこと(イマイチ理解できていないです、おそらく視聴されなかった回数に対する視聴された回数の割合みたいな感じでしょうか)。

結果

ネットワークの層を深くした際にlossが下がることが示されている。

f:id:rf00:20180504190940p:plain

所感

感想は以下の通り

  • ランキング候補生成とランキングスコアを分けている点は実務でも真似したいアイディアだと感じた

  • 候補生成のknnでどういったuserとvideoのベクトルの生成がいまいち理解できなかった

  • 実際に本文で提案されている手法をプロダクトに載せてどれだけパフォーマンスが改善したのが書かれていないのが物足りなかった