Latent Cross: Making Use of Context in
Recurrent Recommender Systems
by Alex Beutel, etc
担当: @Quasi_quant2010
WSDM2018読み会1
【WSDM2018読み会】
概要
- コンテキストは結合せずattentionとして扱う -
 行列分解系の予測をNNで近似する
 変数間の相互作用について、明示的に相関関係を与えない設定
でNNはデータから相互作用を学習するのか
 埋め込みベクトルの結合以外で予測を高める仕組みは?
 Latent Crossを提案
 提案手法を考えた背景
 コンテキストを単純に結合した埋め込みベクトルを用いるとモデルサ
イズが大きくなるので非効率
 コンテキストを主たる特徴量を調整する情報源と捉える
 主たる特徴量の埋め込みベクトル(x)とコンテキストの埋め込みベクトル
(c)の要素積をとる。つまり、xにcというattentionを作用させる
 操作自体はノイズ処理に対応
WSDM2018読み会2
実験①
- 行列分解系の予測をNNで近似する -
 行列分解系
 Matrix Factorization : 2変数間の相関
 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑖𝑗 = < 𝒖𝒊, 𝒗𝒋 >
 Tensor Factorization : 3変数間の相関
 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑖𝑗𝑡 = < 𝒖𝒊, 𝒗𝒋, 𝒘𝒕 >
 NNでもPredictionを予測する
 行列分解系の予測を近似するとは、異なるモデル(行列分解系・
NN)で同じ値(Prediction)を予測
 行列分解系は2 or 3変数間の相関を通じ相互作用を加味
 NNで行列分解系と同程度の予測ができれば、 NNが変数間の
相互作用を学習できていると解釈する
WSDM2018読み会3
実験①
- 行列分解系の予測をNNで近似する -
 m個特徴量をN回レコードとして観測する
 デザイン行列 : m * N
 ただし、m個が各々独立した特徴量とは限らない
 独立した特徴量を見つけたいという行列分解系の動機がある
 あらかじめランクr(<m)と分かっている状況で、
NNは行列分解系の予測結果を再現できるか
 データ:m * H * N
 m:特徴量の種類, H:埋め込みベクトルの次元, N:レコード数
 再現するにはどのようなパラメータが必要か
 本検証では隠れ層1層で幅CのNNを検証モデルとする
 埋め込みベクトルのサイズについて試行実験をし、サイズの大小
によって結果はあまり変わらなかった4
𝒖 ~ 𝑁(0, 1/𝑟1/2𝑚
𝐼)
実験①
- 検証モデル : 隠れ層1・幅CのNN -
 Input Layer
 𝑊𝑖𝑛 × 𝑒𝑗 ej : one-hot
 Hidden Layer
 Activation : ReLU
 𝒉 𝒄 = 𝑔 𝑉 𝒂; 𝒃 + 𝑏
 結合したあとReLUを通じ相互
作用を獲得するらしい
 Transform and Aggregation
 𝒉 = 𝑐=1
𝐶
𝛼 𝑐 𝒉 𝒄
 Ouput Layer
 𝑦 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊𝑜𝑢𝑡 𝒉 + 𝑐)
 Reference
 Split, Transform, and Aggregation
are based on [Xie.S]WSDM2018読み会5
Activati
on 1
Activati
on 2
Activati
on C
Input Layer
Output Layer
split
transform
aggregation
実験①
- NNが変数間の相互作用を学習したと解釈-
 結果
 ランク数一定で特徴量(m)が2から3に増えたとき、行列分解と同
等の性能を出すために、幅が4倍(=20/5)必要
 独立な特徴量が1で観測特徴量が2の場合を指す。つまり、
不必要な特徴量が多い場合、各隠れ層の幅を大きくとる必要がある
 特徴量一定でランク数が1から2に増えたとき、行列分解と同等の
性能を出すために、幅が3倍(=30/10)必要
 観測した特徴量の内、
独立成分がより多い場合も各隠れ層の幅を大きくとる必要がある
WSDM2018読み会6
引用[Beutel.A, etc]
問題設定
- 動画推薦タスク -
 データ
 各ユーザーの動画視聴履歴をセッションとして保持
 セッションは30分とかではなく、全セッションを繋げたものだと思われる
 言語モデルで言えば単語が動画IDに対応
 その他に、コンテキストとして以下のデータがある
 直前見終わった時間と見始める時間間隔
 デバイスタイプ(iOS, Android,etc)
 Referer:ユーザーが自発的に流入したかレコメンドから流入したか
 予測値:動画ID
 前処理
 5Mの人気動画のみを計算対象
 少なくともセッション中、50種類の動画をみているユーザに限る
7
Simple Technique for RNN
- コンテキストを結合せずattentionとして扱う -
 実験①から、不必要な特徴量が多い場合、各隠れ層の幅
を大きくとる必要がある
 例えばRNNの隠れ層に幅を導入することも可能ではあるが、モデ
ルサイズが肥大することが実験①から分かる
 コンテキストは種類が多くなる傾向があり、結合でない観点から新
たな計算方法(それがLatentCross)を考える必要がある
 本論文では以下のような調整(LatentCross)を行う
 𝒉 = 1 + 𝑐=1
𝐶
𝒂 𝒄 ∗ 𝒉
 h : 隠れ層の埋め込みベクトル
 ac : c-thコンテキストの埋め込みベクトル
 結合する場合、𝑔(𝑉 𝒙; 𝒂 𝟏; 𝒂 𝟐 … ; 𝒂 𝒄 + 𝒃)とかになる
WSDM2018読み会8
Proposed Model
- アーキテクチャ -
 通常のRNNと異なる点
 : LatentCross(LC)
 LCを作用させた埋め込みベク
トルを一旦ReLU入れる
 実験①より、ReLUを通すことで
、NNが変数間の相互作用を
学習すると解釈する
 入力層 : Pre-fusionと呼ぶ
 出力層 : Post-fusionと呼ぶ
 Pre-fusion
 隠れ状態に影響を与える
 Post-fusion
 予測に影響を与える
WSDM2018読み会9
Input Layer
LSTM
ReLU
ReLU
Output Layer
実験②
- ProposedModel vs SOTA -
 RNNwithConcatenated < RNNwithLC
 RNNwithoutConcatenated < RNNwithConcatenated
WSDM2018読み会10
引用[Beutel.A, etc]
実験③
- ProposedModel with various context -
 実験②より提案モデルがSOTAより性能が高い
 ただし、使用したコンテキストは時間のみ
 よって、より多くのコンテキストを使用する事で予測性能が向
上するかを追加実験
 追加実験①
 コンテキストを時間からリファラーに変更
 追加実験②
 Pre-fusion
 時間間隔・リファラー
 Post-fusion
 デバイス・リファラー
WSDM2018読み会11
実験③・①
- コンテキストを時間間隔からリファラーへ変更 -
 結合したRNNよりもLatenCrossしたRNNの方が高い性能
 ただ、ほとんど変わらないともいえる
 もしRNN with LatenCrossの方が安定してパラメータを推
定出来るならgood news
 実際はよくわならない・・・
WSDM2018読み会12
実験③・②
- 使えるコンテキスト全てを使用 -
 全てもコンテキストを結合した場合よりもLatenCrossの方が
、実験③・①と比べ性能差が高い
WSDM2018読み会13
感想
- 変数間相互作用とノイズ処理をNNで -
 NNが変数の相互作用を学習するか
 行列分解系の予測をNNで再現出来れば分からなくもない
 ノイズ処理
 LatentCrossの背景
 モデルサイズの効率性という点もあろうが、隠れ層の埋め込みを調整し、ノ
イズ処理をしたいんだろう
 Pre(Post)-fusionは、明示的なノイズ処理
 CNNでノイズ処理を行い、RNNの入力とする最近の流行を連想する
 筆者はこれにより変数間相互作用を獲得できると主張しているが
 ノイズ処理についてはCNN+RNN
との比較実験をした方がよいのでは
WSDM2018読み会14
参考文献
 [Beutel.A, etc] Latent Cross : Making Use of Context in
Recurrent Recommender Systems, WSDM 2018
 [Xie.S, etc] Aggregated Residual Transformations for Deep
Neural Networks, arXiv:1611.05431
WSDM2018読み会15

WSDM2018 読み会 Latent cross making use of context in recurrent recommender systems.slide

  • 1.
    Latent Cross: MakingUse of Context in Recurrent Recommender Systems by Alex Beutel, etc 担当: @Quasi_quant2010 WSDM2018読み会1 【WSDM2018読み会】
  • 2.
    概要 - コンテキストは結合せずattentionとして扱う - 行列分解系の予測をNNで近似する  変数間の相互作用について、明示的に相関関係を与えない設定 でNNはデータから相互作用を学習するのか  埋め込みベクトルの結合以外で予測を高める仕組みは?  Latent Crossを提案  提案手法を考えた背景  コンテキストを単純に結合した埋め込みベクトルを用いるとモデルサ イズが大きくなるので非効率  コンテキストを主たる特徴量を調整する情報源と捉える  主たる特徴量の埋め込みベクトル(x)とコンテキストの埋め込みベクトル (c)の要素積をとる。つまり、xにcというattentionを作用させる  操作自体はノイズ処理に対応 WSDM2018読み会2
  • 3.
    実験① - 行列分解系の予測をNNで近似する - 行列分解系  Matrix Factorization : 2変数間の相関  𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑖𝑗 = < 𝒖𝒊, 𝒗𝒋 >  Tensor Factorization : 3変数間の相関  𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛𝑖𝑗𝑡 = < 𝒖𝒊, 𝒗𝒋, 𝒘𝒕 >  NNでもPredictionを予測する  行列分解系の予測を近似するとは、異なるモデル(行列分解系・ NN)で同じ値(Prediction)を予測  行列分解系は2 or 3変数間の相関を通じ相互作用を加味  NNで行列分解系と同程度の予測ができれば、 NNが変数間の 相互作用を学習できていると解釈する WSDM2018読み会3
  • 4.
    実験① - 行列分解系の予測をNNで近似する - m個特徴量をN回レコードとして観測する  デザイン行列 : m * N  ただし、m個が各々独立した特徴量とは限らない  独立した特徴量を見つけたいという行列分解系の動機がある  あらかじめランクr(<m)と分かっている状況で、 NNは行列分解系の予測結果を再現できるか  データ:m * H * N  m:特徴量の種類, H:埋め込みベクトルの次元, N:レコード数  再現するにはどのようなパラメータが必要か  本検証では隠れ層1層で幅CのNNを検証モデルとする  埋め込みベクトルのサイズについて試行実験をし、サイズの大小 によって結果はあまり変わらなかった4 𝒖 ~ 𝑁(0, 1/𝑟1/2𝑚 𝐼)
  • 5.
    実験① - 検証モデル :隠れ層1・幅CのNN -  Input Layer  𝑊𝑖𝑛 × 𝑒𝑗 ej : one-hot  Hidden Layer  Activation : ReLU  𝒉 𝒄 = 𝑔 𝑉 𝒂; 𝒃 + 𝑏  結合したあとReLUを通じ相互 作用を獲得するらしい  Transform and Aggregation  𝒉 = 𝑐=1 𝐶 𝛼 𝑐 𝒉 𝒄  Ouput Layer  𝑦 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊𝑜𝑢𝑡 𝒉 + 𝑐)  Reference  Split, Transform, and Aggregation are based on [Xie.S]WSDM2018読み会5 Activati on 1 Activati on 2 Activati on C Input Layer Output Layer split transform aggregation
  • 6.
    実験① - NNが変数間の相互作用を学習したと解釈-  結果 ランク数一定で特徴量(m)が2から3に増えたとき、行列分解と同 等の性能を出すために、幅が4倍(=20/5)必要  独立な特徴量が1で観測特徴量が2の場合を指す。つまり、 不必要な特徴量が多い場合、各隠れ層の幅を大きくとる必要がある  特徴量一定でランク数が1から2に増えたとき、行列分解と同等の 性能を出すために、幅が3倍(=30/10)必要  観測した特徴量の内、 独立成分がより多い場合も各隠れ層の幅を大きくとる必要がある WSDM2018読み会6 引用[Beutel.A, etc]
  • 7.
    問題設定 - 動画推薦タスク - データ  各ユーザーの動画視聴履歴をセッションとして保持  セッションは30分とかではなく、全セッションを繋げたものだと思われる  言語モデルで言えば単語が動画IDに対応  その他に、コンテキストとして以下のデータがある  直前見終わった時間と見始める時間間隔  デバイスタイプ(iOS, Android,etc)  Referer:ユーザーが自発的に流入したかレコメンドから流入したか  予測値:動画ID  前処理  5Mの人気動画のみを計算対象  少なくともセッション中、50種類の動画をみているユーザに限る 7
  • 8.
    Simple Technique forRNN - コンテキストを結合せずattentionとして扱う -  実験①から、不必要な特徴量が多い場合、各隠れ層の幅 を大きくとる必要がある  例えばRNNの隠れ層に幅を導入することも可能ではあるが、モデ ルサイズが肥大することが実験①から分かる  コンテキストは種類が多くなる傾向があり、結合でない観点から新 たな計算方法(それがLatentCross)を考える必要がある  本論文では以下のような調整(LatentCross)を行う  𝒉 = 1 + 𝑐=1 𝐶 𝒂 𝒄 ∗ 𝒉  h : 隠れ層の埋め込みベクトル  ac : c-thコンテキストの埋め込みベクトル  結合する場合、𝑔(𝑉 𝒙; 𝒂 𝟏; 𝒂 𝟐 … ; 𝒂 𝒄 + 𝒃)とかになる WSDM2018読み会8
  • 9.
    Proposed Model - アーキテクチャ-  通常のRNNと異なる点  : LatentCross(LC)  LCを作用させた埋め込みベク トルを一旦ReLU入れる  実験①より、ReLUを通すことで 、NNが変数間の相互作用を 学習すると解釈する  入力層 : Pre-fusionと呼ぶ  出力層 : Post-fusionと呼ぶ  Pre-fusion  隠れ状態に影響を与える  Post-fusion  予測に影響を与える WSDM2018読み会9 Input Layer LSTM ReLU ReLU Output Layer
  • 10.
    実験② - ProposedModel vsSOTA -  RNNwithConcatenated < RNNwithLC  RNNwithoutConcatenated < RNNwithConcatenated WSDM2018読み会10 引用[Beutel.A, etc]
  • 11.
    実験③ - ProposedModel withvarious context -  実験②より提案モデルがSOTAより性能が高い  ただし、使用したコンテキストは時間のみ  よって、より多くのコンテキストを使用する事で予測性能が向 上するかを追加実験  追加実験①  コンテキストを時間からリファラーに変更  追加実験②  Pre-fusion  時間間隔・リファラー  Post-fusion  デバイス・リファラー WSDM2018読み会11
  • 12.
    実験③・① - コンテキストを時間間隔からリファラーへ変更 - 結合したRNNよりもLatenCrossしたRNNの方が高い性能  ただ、ほとんど変わらないともいえる  もしRNN with LatenCrossの方が安定してパラメータを推 定出来るならgood news  実際はよくわならない・・・ WSDM2018読み会12
  • 13.
    実験③・② - 使えるコンテキスト全てを使用 - 全てもコンテキストを結合した場合よりもLatenCrossの方が 、実験③・①と比べ性能差が高い WSDM2018読み会13
  • 14.
    感想 - 変数間相互作用とノイズ処理をNNで - NNが変数の相互作用を学習するか  行列分解系の予測をNNで再現出来れば分からなくもない  ノイズ処理  LatentCrossの背景  モデルサイズの効率性という点もあろうが、隠れ層の埋め込みを調整し、ノ イズ処理をしたいんだろう  Pre(Post)-fusionは、明示的なノイズ処理  CNNでノイズ処理を行い、RNNの入力とする最近の流行を連想する  筆者はこれにより変数間相互作用を獲得できると主張しているが  ノイズ処理についてはCNN+RNN との比較実験をした方がよいのでは WSDM2018読み会14
  • 15.
    参考文献  [Beutel.A, etc]Latent Cross : Making Use of Context in Recurrent Recommender Systems, WSDM 2018  [Xie.S, etc] Aggregated Residual Transformations for Deep Neural Networks, arXiv:1611.05431 WSDM2018読み会15