Astroの光線のサムネイル。

pubDate: 2024-06-05

author: sakakibara

astro

公開学習

後退

コミュニティ

YouTubeの検索システム

YouTubeでは何億もの動画がアップロードされ、その中から検索によって目的の動画を見つけることができる。 大量の動画を効率的に扱うためにはそれなりの検索システムが必要となる。

検索システムの仮定

MLタスクの枠組み

MLタスクの目的

ユーザーは入力したテキストにたいして、関連性が高く、見たい動画を表示することを期待している。これをMLのタスクとして落とし込むにはテキストクエリに対する関連性をベースに動画をランク付けする問題として定式化することができる。

入力と出力

Diagram

ML技術の選定

動画とテキストの関連性を決めるために、動画の内容と動画のテキストデータ(タイトル、説明文)を使う。

Diagram

Visual Searchではテキストを入力として受け取って、動画のリストを出力する。 出力された動画は入力テキストと動画の内容の類似度によってランク付けされる。

動画の内容を処理し、動画を検索する方法として一般に表現学習が使われる。 入力テキストと動画は別個に2つのエンコーダーを使ってそれぞれ埋め込みベクトルに変換される。 動画とテキストの埋め込みベクトルの類似度はコサイン類似度などを使って計算される。

外見的にも文脈的にも入力テキストと似ている動画をランク付けするために、埋め込み空間の入力テキスト(ベクトル)と埋め込み空間の動画(ベクトル)の内積を計算する。 ここで注意すべきは入力テキストは一つのベクトルに対して、動画のベクトルは複数あるため、意味としては各動画に対するテキストの類似度を計算してベクトルとして考えることになる。

”dogs playing indoor”のような入力テキストを受け取るText Searchがどのように動くかの外観は以下の通りである。

Diagram

転置インデックス(逆引き索引)はデータベースから全文検索を行うためによく使われる効率的な方法である。

なお、普通の索引は文書Aの中に単語がどの場所Xにあるかを記録するが、 転置インデックス(逆引き索引)はどの単語がどの文書Xにあるかを記録する。

転置インデックスは機械学習ベースでは無いために学習コストは無い。 よくElasticsearchやSolrなどが使われる。

Data準備

データエンジニアリング

特徴量エンジニアリング

テキストデータの前処理

テキスト正規化

Tokenization

Token to ID

動画データの前処理

Modelの構築

モデルの選定

テキストエンコーダー

統計的手法

ML的方法

動画エンコーダー

モデルの学習

評価

Offline Metrics

Online Metrics

デプロイ

推論パイプライン

動画indexingパイプライン

テキストindexingパイプライン