最終更新日:
現在では世界的なシュートビデオアプリの代表と見なされているTikTokの魅力は、ユーザを虜にするコンテンツのレコメンデーションシステムにあります。Wang氏は公表されている技術ブログ記事やリバースエンジニアリングを試みたギークたちの知見に基づいて、同アプリのレコメンデーションアルゴリズムの仕組みを以下のように推測しました。
学習データの生成と学習に関しては、その要点を以下のようにまとめることができます(翻訳記事前編で詳述)。
- TikTokの学習データの素材となるのは、日々投稿されるコンテンツ、生年月日や職業といったユーザ情報、そしてユーザの行動履歴の3つ。この3つの素材からさまざまな特徴量を抽出して、学習データを生成している。
- 学習データの生成とレコメンデーションAIモデルへの投入は、リアルタイムに実行されている。それゆえ、ひとつの動画の閲覧が即座にレコメンデーションに影響する。
- 有害コンテンツの検出のようなAIモデルの学習だけでは対応するのが困難なタスクに関しては、AIと人間が協働する体制を採用して遂行している。
レコメンデーションのワークフローに関しては、以下のようにまとめることができます(翻訳記事後編で詳述)。
- 有害コンテンツ審査を通過したコンテンツは、200~300人のアクティブユーザに閲覧される初期トラフィックプールに投入される。この段階では、新規クリエイターの動画とインフルエンサーのそれが区別されることなく平等に処理される。
- 初期トラフィックプールにおける閲覧にもとづいて、動画が評価される。評価が高い上位1%はあらゆるユーザが閲覧できるトレンディプールに投入される。また、動画を評価する過程で、ユーザの嗜好と動画の内容が合致するようにユーザ情報が更新される。
- 平均的なクリエイターの動画が、突然バズることがある。こうしたことが起こるのは、古くても高品質な動画を発掘したり、トレンド入りした動画に類似した動画の露出を増やしたりするアルゴリズムが働いているからである。
- 投稿された動画が各種トラフィックループに投入される期間は、せいぜい1週間以内である。1週間後には、バズった動画とその関連動画の露出は急激に低下する
以上のような仕組みを構築したことにより、TikTokは特定のジャンルに偏ることなく多様な動画をレコメンドするのと同時に、新規クリエイターとインフルエンサーに平等にバズる機会を提供しているのです。こうした巧妙に設計されたアルゴリズムこそが、TikTokが世界的なアプリに成長した原動力なのでしょう。
前編にあたる以下の記事本文では、TikTokの概要と学習データの生成とAIモデルの学習について解説します。
なお、以下の記事本文はCatherine Wang氏に直接コンタクトをとり、翻訳許可を頂いたうえで翻訳したものです。また、翻訳記事の内容は同氏の見解であり、特定の国や地域ならび組織や団体を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
Tick Tokが世界を席巻している。Sensor Towerによると、このショートビデオアプリはApp StoreとGoogle Playにおいて、全世界で20億回以上ダウンロードされたそうだ。このセンセーショナルなアプリの背後にある魔法とは何なのか?驚くべきことではないが、その答えは機械学習を背景にしたレコメンデーションエンジンなのだ。
・・・
目次(この記事の推定閲覧時間は、15分です(※訳註1))
1.TikTokの一般的概要
2.TikTokのレコメンデーションシステム設計の原則(データ、特徴量、目標、アルゴリズム、そして学習メカニズムを解説)
3.TikTokのレコメンデーションのワークフロー(リアルタイム実行、必読)
・・・
OK、まずは正直に言っておこう。犬のおふざけやかわいい猫の動画が嫌いな人などいるだろうか。特にこの世界的に悲嘆にくれているロックダウンの期間中に(※訳註2)。
しかし、かわいい犬猫動画はTikTokの前例のないサクセスストーリーの一部を説明しているに過ぎない。2年足らずで、このアプリは小さなファンコミュニティの「リップシンク」アプリから、2020年には8億人近い月間アクティブユーザを持つバイラルアプリへと成長したのだ。加えて、#coronavirusでタグ付けされたTikTokの動画は530億回も視聴されている。
TikTokは、バイラルソングやかわいいマイム動画を大量に生み出して有名になった。
一般的に人々は1日のうち52分をTikTokの使用に費やし、その他のアプリの1日当たりの利用時間はSnapchatが26分、Instagramが29分、Facebookが37分となっている。
グロースハック戦略の話を脇に置いて見れば、60秒のショートビデオアプリであるTikTokにはミーム、お笑い、ダンス、タレント動画などがあふれている。業界最高クラスのレコメンデーションエンジンを搭載しているので、検索したり、誰を見ればいいのかを知ったりする必要がない。ワンクリックでパーソナライズされたフィードが提供されるのだ。
このような終わりがなく簡単に手に入る幸せな刺激が、TikTokでのブラウジングを止められなくさせた。一部の人々はこのアプリを暇な時間を吸う究極のタイムキラーと呼び、このアプリが生み出す時間の歪みは「TikTokでの5分は実際の生活の中の1時間に等しい」などと言われるようにもなった。
この記事では、TikTokがどのように機械学習を利用して、アプリとの相互作用からユーザの興味や嗜好を分析し、様々なユーザにパーソナライズされたフィードを表示するのかを論じていく。
・・・
レコメンデーションエンジンは、データサイエンスの世界では目新しいものではない。むしろ、画像認識や言語生成のような目まぐるしい効果がないため、旧世代のAIシステムと考える人もいる。
それでも、レコメンデーションはほぼすべてのオンラインサービスやプラットフォームに最も幅広く実装されている優秀なAIシステムのひとつであることに変わりはない。例えば、YouTubeの動画サジェスト、Amazonから届いたキャンペーンメール、Kindleストアを閲覧しているときに気になる本などにレコメンデーションAIは使われているのだ。
実際、Gomez-UribeとNetflixのプロダクト部門チーフであるNeil Huntが発表した研究論文によると、パーソナライゼーションとレコメンデーションの複合効果により、Netflixは年間10億ドル以上を節約している。さらに、加入者の80%がエンジンが出力するサジェストリストから動画を選んでいるのだ。
それでは、TikTockがどのように他のアプリと違うのかを見ていこう。
1.レコメンデーションエンジン入門
(このトピックについてすでに馴染みのある読者は、次の見出しにジャンプしてください。)
レコメンデーションエンジンに関する有益な記事やオンライン講座が多すぎて、私としても車輪の再発明はしたくはない。
以下に、レコメンデーションエンジンの基礎知識を構築するための資料を2つご紹介する。
- レコメンデーションエンジンをゼロから構築するための完全ガイド [LINK] (読むのに約35分、Pythonのコードを複製するのに約40~60分かかる)
- アンドリュー・ンによるレコメンデーションエンジン[LINK](動画を見るのに1時間かかる)
基本的なことは別として、商用のレコメンデーションエンジンには、堅牢なバックエンドと統合のために設計されたアーキテクチャが必要となる。以下に代表的なものを示す。
リアルタイムシステムは、様々なビジネス上の問題に対応する複数の抽象層(アルゴリズム層、サービング層、アプリケーション層)をサポートするために、(データ収集と保存のために)強固なデータ基盤を持っている必要がある。
2.TikTokのレコメンデーションシステム設計の原則
「ユーザ中心設計」は、設計原則のコアであることに変わりはない。簡単に言うと、TikTokはコールドスタート(※訳註4)における調整からアクティブユーザへの明示的なレコメンドにいたるまで、ユーザが好きなコンテンツだけをレコメンドする。
もしユーザがダンスの動画をクリックすると、そのユーザのフィードは最初にエンターテイメントカテゴリにカスタマイズされ、その後、ユーザをフォローアップするメカニズムがさらなる分析のためにユーザの行動を追跡する。こうして実行される分析によって、最終的には個々のユーザのためだけの正確なレコメンデーションを提供するのだ。
ハイレベルなワークフローを図示すると、以下のようになる。
TikTokの設計原則には、1)コンテンツのタグ付け、2)ユーザプロファイルとユーザシナリオの作成、3)レコメンデーションアルゴリズムの訓練と提供という3つの主要なビルディングブロックがある。
以下の見出しで、設計原則のそれぞれの要素に関して検討してく。
2.1 データと特徴
まずはデータだ。レコメンデーションモデルを正式に説明すると、ユーザが生成したコンテンツに対して、そのコンテンツを閲覧するユーザの満足度を一致させる機能であると言える。この機能を提供するためには、3つに次元のデータを入力する必要がある。
コンテンツデータ – TikTokは膨大なユーザ生成コンテンツを持つプラットフォームである。コンテンツにはそれぞれ特徴があり、システムは信頼性の高いレコメンドのためにそうした特徴を同定して区別できなければならない。
ユーザデータ – このデータには、関心ラベル、職業、年齢、性別、人口統計などが含まれる。また、機械学習ベースの顧客クラスタリングによる潜在的な特徴も含まれる。
シナリオデータ – このデータは、さまざまなシナリオに基づいて利用シナリオとユーザの嗜好の変化を追跡する。例えば、ユーザが仕事中、旅行中、あるいは通勤中にどのような動画を見るのが好きなのか、といったことが追跡される。
以上のレコメンデーションに関連するデータが収集されると、巧妙に設計された4つのタイプの重要な特徴が導出され、レコメンデーションエンジンに渡される。そうした4つの特徴とは、以下の通り。
- 相関特徴:コンテンツ属性とユーザタグの間の相関関係を表し、キーワードマッチング、分類タグ、ソースマッチング、テーマタグ、ユーザとコンテンツの間のベクトル距離のような潜在的な特徴を含んでいる。
- ユーザシナリオ特徴:地理的位置、時刻、イベントタグなどを含むシナリオデータから設計されている。
- トレンド特徴:ユーザのインタラクションに基づいて、グローバルトレンド、ホットトピック、トップキーワード、トレンドテーマなどを表現する。
- 協調特徴:協調フィルタリング技術に基づいた特徴量。狭いレコメンデーション(バイアス)とコラボレーションレコメンデーション(一般化)のバランスをとっている。より正確には、単一のユーザの履歴だけでなく、(クリック、興味、キーワード、テーマに基づいた)類似のユーザグループの共同行動を考慮する。
モデルは、上記の特徴から学習することで、任意のシナリオの中でユーザに適したコンテンツかどうかを予測する。
2.2 無形の目標
レコメンデーションモデルにおいては、クリックスルー率、閲覧時間、いいね、コメント、リポストはすべて数値化可能な目標である。こうした目標が最終的な予測に適合するように、モデルやアルゴリズムを利用することができる。
しかし、他の無形な目標は、定量化可能な目標では評価できない。
例えば、健全なコミュニティやエコシステムを維持するために、TikTokでは暴力、詐欺、ポルノ、誇張を含むコンテンツを抑制し、ニュースのような事実に基づいた高品質なコンテンツを重視することを目指している。
以上のような定量化が難しい目標のために、定量化可能なモデルの目標を超えて、何らかの境界を管理できるフレームを定義する必要がある(そうしたフレームこそ、コンテンツ監査システムである)。
2.3 アルゴリズム
レコメンデーションの目標は古典的な機械学習の問題に定式化することができる。それゆえ、その目標は協調フィルタリングモデル、ロジスティック回帰モデル、因数分解機、GBDT、およびディープラーニングを含むアルゴリズムによって解決される。
商用レベルのレコメンデーションシステムには、様々なモデルを迅速に訓練するのに使う実験用パイプラインを構築するために、柔軟で拡張性の高い機械学習プラットフォームが必要である。そして、訓練した様々なモデルを積み上げてリアルタイムでサービスを提供する。(例:ロジスティック回帰モデルとディープニューラルネットワークの組み合わせ、CNNとサポートベクターマシンの組み合わせ)
メインのレコメンデーションアルゴリズムとは別に、TikTokではコンテンツ分類アルゴリズムとユーザプロファイリングアルゴリズムを訓練する必要がある。以下にコンテンツ分析のための階層的分類アーキテクチャを示す。
階層的分類アーキテクチャでは、コンテンツをマスタールートからドリルダウンしていく。各レイヤの上位-下位関係は、メインカテゴリとサブカテゴリとなっている。別々の分類器を使って比較しながら、階層的な分類メカニズムを使用することで、データの歪みの問題をよりよく解決することができる。
2.4 トレーニングの仕組み
TikTokはリアルタイムのオンライントレーニングプロトコルを使用しており、そのプロトコルは少ない計算リソースしか必要とせずに高速なフィードバックを提供する。こうした設計は、ストリーミングや情報フロー製品にとって重要だ。
高速なトレーニングプロトコルによってユーザの行動やアクションを瞬時にキャプチャし、モデルにフィードバックして次のフィードに反映させることができる。(例:新しい動画をクリックすると、最新のアクションに基づいてフィードが素早く変化する)
ほとんどの場合、TikTokはApache Storm(※訳註5)のクラスタを使用して、クリック、閲覧、コンテンツ収集、いいね、コメント、シェアなどのリアルタイムのサンプルデータを処理していると思われる。
TikTokは、レコメンデーションモデルのパラメータ更新機能と学習データの供給機能から構成されるハイパフォーマンスなシステムを構築している(フィーチャーストアとモデルストア)。フィーチャーストアは、数千万個のオリジナルな学習データの特徴と加工されたそれを保存し、学習データをモデルストアに供給する。そして、モデルストアはモデルを維持したり、チューニングされたパラメータをモデルに供給したりする。
全体的なトレーニングプロセスは、1)オンラインサーバがリアルタイムデータをキャプチャし、(Apache)Kafka(※訳註6)にそれらを格納し、2)Apache StormのクラスタはKafkaデータと製品の特徴を消費し、3)フィーチャーストアは、新しい学習データセットを構築するために新しい特徴とレコメンデーションラベルを収集し、4)オンライントレーニングパイプラインはモデルパラメータを再訓練し、再訓練したパラメータをモデルストアに渡し、5)クライアント側のレコメンデーションリストを更新し、新しいフィードバック(ユーザの行動)をキャプチャする。そして、こうしたプロセスが再循環するのだ。
(後編につづく...)
原文
『Why TikTok made its user so obsessive? The AI Algorithm that got you hooked.』
著者
Catherine Wang
翻訳
吉本幸記(フリーライター、JDLA Deep Learning for GENERAL 2019 #1取得)
編集
おざけん