>100 Views
September 07, 18
スライド概要
2018/09/07
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] “Collaborative Deep Metric Understanding (KDD2018)” Learning for Video Yoshifumi Seki, Gunosy http://deeplearning.jp/
書誌情報 ● タイトル: Collaborative Deep Metric Learning for Video Understanding ● 著者: Joonseok Lee, Sami Abu-El-Haija, Balakrishnan Varadarajan, Apostol (Paul) Natsev ○ Google AI Perception ● 投稿先 ○ KDD2018 ● 選定理由 ○ ユーザ行動と動画分析を組み合わせた研究 ■ ユーザ行動に関心が高く、どのように組み合わせていくのか気になった 2
提案手法概要 ● やりたいこと ○ 動画の近さを表現する埋め込みベクトルを生成する関数をつくる ○ 動画の近さとは? ■ ここでは同じユーザにより再生されやすい(共起行動が起こる)ものを近いと定義する ■ Metric-Learning ● 近いものは近い空間に、遠いものは遠くになるように埋め込む ● やること ○ 動画は画像と音声を別々にベクトル化 ○ 動画のco-viewでネットワークを構築 ■ しきい値で足切り ○ トリプレットLossで学習(ref: FaceNet) ■ semi-hard negative mining 3
提案手法概観 4
動画のベクトル化 ● 動画+音声でそれぞれベクトル化する ● 動画のベクトル化 ○ ○ ○ ○ Inception v3をJFT datasetで訓練したものを用意 1秒を1frameとして各フレームを特徴抽出 最終層をPCAで1500次元に圧縮 average pooling ● 音声のベクトル化 ○ ResNet50ベースの音響分類モデル[Hershey+2017] ○ 960msのフレームに分割 ■ 25ms窓のフーリエ変換で10msごとに圧縮 ○ average pooling 5
共起ネットワークの作成 ● 動画をノードとして重み付けネットワークを作る ● 動画Aと動画BがN人に共起して見られた場合、動画Aと動画Bの間にはNの重みの エッジがはられる ● エッジの重みが一定以下のものを削除する このネットワーク上での距離を埋め込む関数を学習したい 6
Triplet Loss ● 距離を学習したい ○ 近いものは近く、遠いものは遠いとして学習したい ● ベクトルをd次元に埋め込む関数: ○ 超球面上に制約する: ● 関係性を評価したいTripleを定義する ○ anchor: 対象, positive: 対象と近いもの, negative: 対象と遠いもの ○ anchorとpositiveの距離はanchorとnegativeの距離より近くなくてはならない 7
semi-hard negative mining ● Tripleをどのように選ぶか? ○ めっちゃ近いやつ(hardest positive)と、めっちゃ遠いやつ(hardest negative)を選びたい ○ だけど毎回それを考えてたら計算的にしんどい ○ なので、うまいことやる ● ミニバッチに使うTripleを使う ○ Positiveは全部使う ■ 共起ネットワークの隣接ノード ○ Negativeはランダムに選択される ○ ミニバッチ内のNegativeでネットワーク的に遠いものをNegativeとして選択 8
2つのEmbedding Network: early fusion, late fusion ● (1) visionとaudioを入力時に組み合わせてembeddingする ● (2) visionとaudioそれぞれで全結合し、embeddingする 9
3つの実験 ● 関連動画 ● 動画推薦 ● 動画アノテーション 10
関連動画 ● ある動画qが与えられたときに関連する動画を探すタスク ○ 関連する動画 => 共起が高い動画 ● 1000回以上再生された278Mの動画 ○ 7:3でtrain - evalに分ける ● 2つのコールドスタート問題タスクを考える ○ 1) T2E: train内にあったqからtrain内にない動画を関連動画として探すタスク ○ 2) E2T: train内に無いqからtrain内の動画を関連動画として探すタスク 11
関連動画 ● audioデータを使うことで、パフォーマンスが向上している 12
関連動画 ● embeddingする次元数について比較 13
14
動画推薦 Q: ユーザの視聴履歴, V: 推薦候補動画 15
動画推薦 ● MovieLensのデータを使って比較 ○ MovieLensには動画データがない ○ YoutubeからTrailerをもってくる ○ MovieLens20Mの94%のTrailerを取得 16
動画推薦 17
動画推薦 18
動画推薦 19
動画アノテーション ● Youtube8mにおけるClassificationのタスク ● Mixture of Expertを使う ○ エキスパートネットワークを組み合わせる ○ 動画embeddingベクトルをPCAで次元圧縮し、その上でエキスパートネットワークで分類 20
動画アノテーション 21
動画アノテーション 22
まとめ ● 動画をユーザ行動の類似性から埋め込みベクトルにする手法を提案 ● さまざまなタスクで有効性を確認(?) ○ 関連動画 ■ コールドスタートな問題設定でも有効に動く ● (?) 問題設定有利すぎない? ● (?) そもそも比較してないよね、、、 ○ 動画推薦 ■ スケーラブルに、既存手法とそこまで変わらない推薦ができる ● (?)embeddingならどれでもいけそうだし、普通のembeddingと比較しなくていいの? ■ コールドスタートに強い ● (?)検証してる ○ 動画アノテーション ■ CVPR2017のコンペの上位手法を上回った ■ (?) 公平のためにアンサンブルじゃないとか、video levelとか言ってるけどうーん 23