[DL輪読会]Factorized Variational Autoencoders for Modeling Audience Reactions to Movies

167 Views

January 15, 18

スライド概要

2018/1/12
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] Factorized Variational Autoencoders for Modeling Audience Reactions to Movies Makoto Kawano, Keio Univ. http://deeplearning.jp/

2.

書誌情報 2 • CVPR’17 • 引用件数:2(1/9時点) • Disney research – Zhiwei Deng (Simon Fraser University), Rajitha Navarantha, Peter Carr, Stephan Mandt, Yisong Yue (Caltech), Iain Matthews, Greg Mori (Simon Fraser University) • Techcrunchでも紹介されていた(7/27) • 映画を鑑賞している観客の表情を行列(テンソル)分解xVAEで 潜在表現を獲得する

3.

どういう研究? 3

4.

どういう研究? 4 再構成 ここを推論したい

5.

アジェンダ • 行列(テンソル)分解について(参考:林浩平「機械学習におけるテンソル」) – 行列分解 – テンソル分解(CP分解・Tucker分解) – 応用例 • Factorized Variational Autoencoders – 確率モデルとしての行列分解 – 非線形テンソル分解 • 実験 – – – – – データセット 欠損値補完 潜在因子の可視化 グループ分析 反応予測 • まとめ 5

6.

テンソルによる表現 画像 ソーシャルグラフ 時間 6 テキスト ベクトル 購買情報 行列 Cさん Bさん Aさん テンソル

7.

テンソルによる表現 7 テキスト ベクトル 行列・テンソルデータの問題 画像 表現が超高次元になりやすい ・解釈が困難 ・ファイル容量の増大 購買情報 ソーシャルグラフ 行列 仮説:世の中のデータは少数のパターンからできている 時間 Cさん Bさん Aさん テンソル

8.

行列のランクについて 8 • 元の行列を復元するのに, 最小限必要な,線型独立な基底の個数 X = UV X T = U = V + + ランク=パターン

9.

行列分解 9 • 観測データXをI x J行列とする→最小二乗誤差 argmin U 2RI⇥R ,V f (X; U, V ) 2RJ⇥R f (X; U, V ) = kX − U V T k2 • 欠損値がある場合 – Xの観測値(非欠損値)の添字集合をΩ{1,…,i,…,I}x{1,…,j,…,J}とする X f⌦ (X; U, V ) = (xij uTi vj )2 (i,j)2⌦ – Ωが全体集合のとき,元の目的関数と一致 • 非負値行列分解(Non-negative Matrix Factorization, NMF) – U, Vを非負値に制約したもの – 解釈性が上がる(トピックモデルなど) argmin f (X; U, V ) U 2RI⇥R ,V 2RJ⇥R + + R+ = {x|x 0}

10.

最適化アルゴリズム 10 • 1次交互勾配降下法 – 1.U,Vをランダムに初期化 – 2.収束するまで以下ループ U V U − ⌘rU f (X; U, V ) V − ⌘rV f (X; U, V ) • 擬似2次交互勾配降下法 – 2次勾配を使って収束時間を短くする • 確率的勾配降下法 – 要素をランダムサンプリング – 部分行列をランダムサンプリング 深層学習ライブラリでも 実装できますね!

11.

テンソル分解におけるパターン 11 時系列のパターン W V = 商品のパターン U ECサイトでのユーザの購買ログ 用語 軸:モード 軸の長さ:次元 軸の数:階数・ランク・次数 ユーザのパターン

12.

Canonical Polyadic分解 12 行列分解の一般化 W =U V = + 観測データXをIxJxKテンソルとすると argmin g(X; U, V, W ) U 2RI⇥R ,V 2RJ⇥S ,W 2RK⇥T ,Z2RR⇥S⇥T �2 � R � � X � � g(X; U, V, W ) = �X − ur ◦ v r ◦ w r � � � r=1 +…+

13.

Tucker分解 13 • CP分解とは分解の仕方が違う X = Z コアテンソルZ W V U argmin U 2RI⇥R ,V 2RJ⇥S ,W 2RK⇥T ,Z2RR⇥S⇥T h(X; U, V, W ) � �2 � � X � � zrst (ur ◦ vr ◦ wr )� h(X; U, V, W, Z) = �X − � � r,s,t

14.

CP分解 v.s. Tucker分解 • CP分解はR個のパターンで表現 – 各パターンを構成する規定はモードごとに全て異なる • Tucker分解はR*S*T個のパターンで表現 – 各モードごとの規定の全ての組み合わせを考慮 • R=S=TかつZが対角テンソルの時,Tucker分解=CP分解 14

15.

応用例 • 多国間の関係性の解析[Schein+KDD2015] – 国x国x時点x行動 – 「イギリスとアメリカは一緒に行動しやすい」 • 言語データの解析[Kang+KDD2012] – 主語x動詞x目的語 – 単語のクラスタリング • 脳情報[Cichozki+ジャーナル2009] – チャネルx周波数x時間 – 「このタスクの時は,この脳部位が活発化しやすい」 • 医療データなど… 15

16.

行列分解・テンソル分解の限界 • 表現可能な領域はあくまでも線形な関係 – 非線形への拡張もあるが大規模で動くものはほぼ皆無 – 今回発表する論文はこれへの挑戦? – PCAやAutoencoderとの関係性は? • 低ランク表現はそもそも「ベスト」な表現か? – 数学的には正しいが,現実の仮定にあっているのか? – 何が「ベスト」かは応用による • 5階以上のテンソルは扱いきれない(らしい) – 例:IxIx…xIのM階テンソルがあったとき Rank-R Tucker分解は: • 計算複雑性がO(MIR2 + MRM+1) • 空間複雑性がO(MIR + RM) 16

17.

高階テンソルに対しては: • テンソル分解をさらに一般化したテンソルネットワーク – テンソルを(多重)線形で表現するモデルクラス – 構造をテンソルネットワークダイアグラムで記述 気になる人はググって見てください" 17

18.

機械学習での流行の兆し(があるらしい) • ICML2014 • NIPS2015 • COLT2016 • ICML2016 • NIPS2016 • ICLR2017 • NIPS2017 18 – Putting MRFs on a tensor train. A. Novikov, et al. – Tensorizing Neural Networks. A.Novikov, et al. Deep learningと関係 – On the Expressive Power of Deep Learning: A Tensor Analysis. N. Cohen, O.Sharir and A. Shashua. – Convolutional Rectifier Networks as Generalized Tensor Decompositions. N. Cohen and A.Shashua. – Supervised Learning with Tensor Networks. E. Stoudenmire, D.J.Schwab – Exponential Machines. A. Novikov, Mikhail Trofimov, Ivan Oseledets. – Inductive Bias of Deep Convolutional Networks through Pooling Geometry. N. Cohen and A. Shashua. – On Tensor Train Rank Minimization: Statistical Efficiency and Scalable Algorithm. Imaizumi et al.

19.

問題設定 19 • 映画観賞している観客の表情から潜在表現を獲得したい – 各映画(Tフレーム)において,N人の客の表情を観測する • 表情:顔のランドマーク68点のx, y座標D=136 136 時刻tにおけるユーザiの表情: xit = R 観測データX 2 RN ⇥T ⇥D からK次元のパターンを推定する

20.

ベースライン:CP分解 X をU 2 RN ⇥K , V 2 RT ⇥K , F 2 RD⇥K に分解する ・U:ユーザのアーキタイプ行列(非負値) ・V:時系列動作のアーキタイプ行列 ・F:潜在空間因子(=顔の表情)変換行列 xitd = K X Uik Vtk Fdk k=1 xit = (Ui Vt )F T はアダマール積(要素積) 潜在因子の線形結合としてモデリング→表現力が低い 20

21.

確率モデルとしての行列(テンソル)分解 21 仮定:観測データXはガウス分布に従っている log P (X|U, V) = 最尤推定 I Y J Y i=1 j=1 N (xij |uTi vj , 1) X IJ 1 log 2⇡ − log P (X|U, V) = − log kxi,j − uTi vj k2 2 2 i,j MAP推定 1 UとVの事前分布をガウス分布と仮定:U, V ⇠ N (0, log P (X|U, V)P (U)P (V) = − IJ log 2⇡ − 2 X⇢ i,j 1 log kxi,j − uTi vj k2 2 � − I) λ (kUk2 + kVk2 ) 2

22.

非線形テンソル分解 22 ui U ⌘ e ただし ui ⇠ N (0, I) • Uiは対数ガウス分布に従う: i • Vtはガウス分布に従う:Vt ⇠ N (0, I) • 観測データはガウス分布に従う: xij ⇠ N (f✓ (Ui ◦ Vt ), I) – ただし,fθはニューラルネットワーク L(U, V, ✓) = log p✓ (x|U, V) + log p(U) + log p(V) X X X ui 2 2 = kxit − f✓ (e ◦ Vt )k2 + kui k2 + kVt k22 it i t 実験の結果,十分な精度を得ることができなかった つまり,NNによる非線形変換後も線形分解は難しい 提案手法(非線形テンソル分解+VAE)へ

23.

Variational Autoencoders 23 K次元の潜在変数zからxが生成されていると仮定 8i,t : zit ⇠ N (0, I), xit ⇠ N (f✓ (zit ), I) Y q (z|x) = N (µ (xit ), ⌃ (xit )) 変分下限: L(✓, φ) = it X i,t Eq (zit |xit ) [log p✓ (xit |zit )] − DKL (qφ (zit |xit )kp(zit )) VAEを使うことで再構成はうまくいく 一方,VAEはメンバ間・時系列を考慮することはできない 予測(補完)に使うことができない

24.

Factorized Variational Autoencoders 24 • 各表情xitの潜在表現zitとzの分解を同時に学習する – VAE:局所的な潜在表現のみ • 時刻tにおけるユーザiの情報 – FVAE:局所的+大局的な潜在表現 • 他の時刻・他ユーザの情報 – 強い制約 zit = Ui Vt にガウスノイズを加えて弱める zit ⇠ N (Ui ◦ Vt , I) L(U, V, ✓, φ) = Eq (z|x) [log p✓ (x|z)] − DKL (qφ (z|x)kN (U ◦ V, I)) + log p(U) + log p(V)

25.

FVAEによる予測(補完)と生成 25 • 行列予測(補完) – 時刻tにおけるユーザiの表情 • UiとVtのアダマール 積でzitを求める • zitをdecoderに入力 • 行列生成 – 時刻tにおける未観測ユーザiの表情 • UiとVtを事前分布からサンプリング • アダマール 積をdecoderに入力

26.

映画観客のデータセット • 映画上映中,観客をIRカメラで撮影 – 2750x2200ピクセル,12FPSで撮影 • 後方座席の顔:15x25ピクセル • 前方座席の顔:40x55ピクセル • 後ろ3列とそれ以外に分ける – 上映時間:90-140分 – 観客数:30-120人 26

27.

映画観客のデータセットの前処理 • 顔検出 – Histgram of Gradientsを学習するMax-Margin Object Detectionを 適用(DLibを利用) Precision Recall – 0.5秒おきに検出 前方座席 99.5% 92.2% – 800枚で学習 後方座席 98.1% 71.1% – 10000枚で検証 • ランドマーク検出 – 回帰木のアンサンブル学習 27

28.

映画観客のデータセットの前処理 • 顔の正面化 – 検出した68点のランドマークをもとに3Dモデリング xit = [x1,t , y1,t , . . . , x68,t , y68,t ] – Face Warehouseを利用 • データ調査 – ランドマーク:視聴覚刺激に条件づけられている – 全ての観客の全時間の平均顔と時刻tの平均顔の比較 28

29.

実験 • 前述のデータセットを映画ごとにNxTxDテンソルにする – 欠損率は13% – 1秒ごとに分析 – False-Positive(顔じゃないところを顔と検出?)を除去 – 短い軌跡(短い時間しかない?)も除去 – 最終的:9個の映画で3179人の観客の約1600万のランドマーク • NNについて – バッチサイズ:10 – Adam – 3層のFCxReLU – 16エポック 29

30.

欠損値の補完 • 各ユーザの観測を5:1に分割 • Kの値を決めるため4つの映画を利用 – Inside Out, The Jungle Book, The Good Dinosaur, Zootopia – K = {2, 4, 8, 10, 16, 32} – TF最悪,NTFも学習時は似てるがテスト時は多少改善 – K = 16の時,FVAEは最も良い • 他の映画でも検証 – TF: K=10 – NTF, FVAE: K=16 30

31.

潜在因子の可視化 • K=16のうちの二つ – 笑いと笑顔の二つとわかる • Inside Out上映時の二つの様子 – よりわかりやすくするため 31

32.

グループの行動分析 • ユーザをクラスタリング – 行列Uの行を利用 – 笑いと笑顔の2因子利用 – 01と06が笑顔の強弱 – 03-05が笑いの強弱 – 02は笑いも笑顔もない 32

33.

リアクション(表情)の予測 • ユーザの80%を学習に使い,20%を予測する – 80%のユーザたちのUiとVtを学習する – 20%のうち最初の数分を使ってUiを推定 • 数分の割合={0.001, 0.01, 0,.05, 0.1, 0.2, 0.4, 0.6, 0.8} – 全体の10%を使えば大体収束する • 最初の10分で観客を話に引き込む論に一致 33

34.

まとめ • テンソル分解とVAEを組み合わせたFVAEを提案 – 従来のテンソル分解では扱いきれない聴衆データに対応 • 映画を見ている数十人の観客の表情 – 従来のテンソル分解や非線形テンソル分解よりも性能が良い – 笑顔と笑いを表現する潜在因子を学習 – 映画の最初10分程度の観測で,残り時間の反応を予測 • +行列分解~テンソル分解の簡単な解説 – 基本的なCP分解やTucker分解の説明 – 行列分解の応用例 – 行列分解の最近 34