Más contenido relacionado La actualidad más candente (20) Similar a WSDM2018 読み会 Latent cross making use of context in recurrent recommender systems.slide (20) Más de Takanori Nakai (18) WSDM2018 読み会 Latent cross making use of context in recurrent recommender systems.slide1. Latent Cross: Making Use 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 for RNN
- コンテキストを結合せず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 vs SOTA -
RNNwithConcatenated < RNNwithLC
RNNwithoutConcatenated < RNNwithConcatenated
WSDM2018読み会10
引用[Beutel.A, etc]
11. 実験③
- ProposedModel with various context -
実験②より提案モデルがSOTAより性能が高い
ただし、使用したコンテキストは時間のみ
よって、より多くのコンテキストを使用する事で予測性能が向
上するかを追加実験
追加実験①
コンテキストを時間からリファラーに変更
追加実験②
Pre-fusion
時間間隔・リファラー
Post-fusion
デバイス・リファラー
WSDM2018読み会11
12. 実験③・①
- コンテキストを時間間隔からリファラーへ変更 -
結合したRNNよりもLatenCrossしたRNNの方が高い性能
ただ、ほとんど変わらないともいえる
もしRNN with LatenCrossの方が安定してパラメータを推
定出来るならgood news
実際はよくわならない・・・
WSDM2018読み会12
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