[DL輪読会]Collaborative Deep Metric Learning for Video Understanding(KDD2018)

>100 Views

September 07, 18

スライド概要

2018/09/07
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] “Collaborative Deep Metric Understanding (KDD2018)” Learning for Video Yoshifumi Seki, Gunosy http://deeplearning.jp/

2.

書誌情報 ● タイトル: Collaborative Deep Metric Learning for Video Understanding ● 著者: Joonseok Lee, Sami Abu-El-Haija, Balakrishnan Varadarajan, Apostol (Paul) Natsev ○ Google AI Perception ● 投稿先 ○ KDD2018 ● 選定理由 ○ ユーザ行動と動画分析を組み合わせた研究 ■ ユーザ行動に関心が高く、どのように組み合わせていくのか気になった 2

3.

提案手法概要 ● やりたいこと ○ 動画の近さを表現する埋め込みベクトルを生成する関数をつくる ○ 動画の近さとは? ■ ここでは同じユーザにより再生されやすい(共起行動が起こる)ものを近いと定義する ■ Metric-Learning ● 近いものは近い空間に、遠いものは遠くになるように埋め込む ● やること ○ 動画は画像と音声を別々にベクトル化 ○ 動画のco-viewでネットワークを構築 ■ しきい値で足切り ○ トリプレットLossで学習(ref: FaceNet) ■ semi-hard negative mining 3

4.

提案手法概観 4

5.

動画のベクトル化 ● 動画+音声でそれぞれベクトル化する ● 動画のベクトル化 ○ ○ ○ ○ Inception v3をJFT datasetで訓練したものを用意 1秒を1frameとして各フレームを特徴抽出 最終層をPCAで1500次元に圧縮 average pooling ● 音声のベクトル化 ○ ResNet50ベースの音響分類モデル[Hershey+2017] ○ 960msのフレームに分割 ■ 25ms窓のフーリエ変換で10msごとに圧縮 ○ average pooling 5

6.

共起ネットワークの作成 ● 動画をノードとして重み付けネットワークを作る ● 動画Aと動画BがN人に共起して見られた場合、動画Aと動画Bの間にはNの重みの エッジがはられる ● エッジの重みが一定以下のものを削除する このネットワーク上での距離を埋め込む関数を学習したい 6

7.

Triplet Loss ● 距離を学習したい ○ 近いものは近く、遠いものは遠いとして学習したい ● ベクトルをd次元に埋め込む関数: ○ 超球面上に制約する: ● 関係性を評価したいTripleを定義する ○ anchor: 対象, positive: 対象と近いもの, negative: 対象と遠いもの ○ anchorとpositiveの距離はanchorとnegativeの距離より近くなくてはならない 7

8.

semi-hard negative mining ● Tripleをどのように選ぶか? ○ めっちゃ近いやつ(hardest positive)と、めっちゃ遠いやつ(hardest negative)を選びたい ○ だけど毎回それを考えてたら計算的にしんどい ○ なので、うまいことやる ● ミニバッチに使うTripleを使う ○ Positiveは全部使う ■ 共起ネットワークの隣接ノード ○ Negativeはランダムに選択される ○ ミニバッチ内のNegativeでネットワーク的に遠いものをNegativeとして選択 8

9.

2つのEmbedding Network: early fusion, late fusion ● (1) visionとaudioを入力時に組み合わせてembeddingする ● (2) visionとaudioそれぞれで全結合し、embeddingする 9

10.

3つの実験 ● 関連動画 ● 動画推薦 ● 動画アノテーション 10

11.

関連動画 ● ある動画qが与えられたときに関連する動画を探すタスク ○ 関連する動画 => 共起が高い動画 ● 1000回以上再生された278Mの動画 ○ 7:3でtrain - evalに分ける ● 2つのコールドスタート問題タスクを考える ○ 1) T2E: train内にあったqからtrain内にない動画を関連動画として探すタスク ○ 2) E2T: train内に無いqからtrain内の動画を関連動画として探すタスク 11

12.

関連動画 ● audioデータを使うことで、パフォーマンスが向上している 12

13.

関連動画 ● embeddingする次元数について比較 13

15.

動画推薦 Q: ユーザの視聴履歴, V: 推薦候補動画 15

16.

動画推薦 ● MovieLensのデータを使って比較 ○ MovieLensには動画データがない ○ YoutubeからTrailerをもってくる ○ MovieLens20Mの94%のTrailerを取得 16

17.

動画推薦 17

18.

動画推薦 18

19.

動画推薦 19

20.

動画アノテーション ● Youtube8mにおけるClassificationのタスク ● Mixture of Expertを使う ○ エキスパートネットワークを組み合わせる ○ 動画embeddingベクトルをPCAで次元圧縮し、その上でエキスパートネットワークで分類 20

21.

動画アノテーション 21

22.

動画アノテーション 22

23.

まとめ ● 動画をユーザ行動の類似性から埋め込みベクトルにする手法を提案 ● さまざまなタスクで有効性を確認(?) ○ 関連動画 ■ コールドスタートな問題設定でも有効に動く ● (?) 問題設定有利すぎない? ● (?) そもそも比較してないよね、、、 ○ 動画推薦 ■ スケーラブルに、既存手法とそこまで変わらない推薦ができる ● (?)embeddingならどれでもいけそうだし、普通のembeddingと比較しなくていいの? ■ コールドスタートに強い ● (?)検証してる ○ 動画アノテーション ■ CVPR2017のコンペの上位手法を上回った ■ (?) 公平のためにアンサンブルじゃないとか、video levelとか言ってるけどうーん 23