TikTok のフィードが中毒性があるのはなぜですか? TikTok が最も優れたソーシャル メディア プラットフォームの 1 つになったのは、まさにそのためです。 フィードはあなたの心を読み、アプリであなたをより長く保護することができると言われています. 現在のところ、TikTok は各人に秘密を打ち明け、そのモデル Monolith を次のタイトルの論文でリリースしました: “Monolith: True-Time Advice Procedure With Collisionless Embedding Table”.
オンライン アドバイス メソッドは、基本的に顧客の興味や好みに基づいてパーソナライズされた提案を保持するための古いアルゴリズムです。 これらの方法は、オンライン小売業者やメディア企業が商品を示したり、顧客に資料を発したりするために古いものであることがよくあります. この投稿では、TikTok の素晴らしいアドバイス システムの内部の仕組みに飛び込み、自己鍛錬の中で本質的に最も活気のあるシステムの 1 つになっている理由を学びます!
建物スケーラブルで正確なアドバイス方法は、多くの企業が自社の商品やネット サイトで膨大な体験を生み出すための鍵です。 一方で、最新の深層探索フレームワーク (TensorFlow または PyTorch) は、正確な時間の本番インスタンスでは正常に機能しません。 ここに理由があります:
- 基本的に静的パラメータと高密度の計算に基づいてデバイスを更新することは、適切なデバイスにとってはひどいものです。
- 全体的なアプローチは、バッチ実行段階とサービング段階 (全体を通して) で設計されています。特定の人の製品との相互作用) 完全に分離され、モデルが正確な時間で購入者のフィードバックと相互作用するのを停止します.
TikTok のチームは、3 つのステップで解決策を説明しています:
- 彼らは 衝突のない埋め込みテーブル 一方、有効期限付きの埋め込みと周波数フィルタリングを組み合わせてメモリ消費を切り分けることで、さらに最適化し、顧客への展開に対して環境を安全かつ倫理的にします;
- 彼らは、本番環境ですぐに使用できるオンライン練習用アーキテクチャーに、高い耐障害性を備えています
- )
- 彼らは実験的に、システムの信頼性は、正確な時間の発見とトレードオフされる可能性があることを証明しました
威圧的に聞こえますか? 苦しみを避けるために、私たちはそれぞれの要素を経験してそれを破壊することができます. 準備?
TikTok の研究者は、アドバイス方法 について、ヒントはほとんど指示されていない とコメントしています。 これは、埋め込みを監視するような ML アプローチを使用してヒントを埋め込む場合、アドバイスの知識が与える珍しい要素の量を止める準備ができていないことを意味します。制限された語彙次元から生じる。 YouTube や Instagram のアドバイス方法の中から適切な方法を利用して ハッシング トリック
- を修正し、最適なアプローチにすることを決意しました。大規模なアドバイスシステム用。 Monolith の古いものの詳細に飛び込みましょう。
ハッシュドローは、アンコモンの計画による非常に高速なマッピングを可能にする知識構造です。ハッシュ機能 は、一部の知識を有料で共有します。
ハッシュ マップは高速であり、巨大なプラットフォームによって古くなっているため、ヒントをうまくエンコードできます。それをより大きく保持しますか? ハッシュ マップには、衝突.
- として知られるこの知識構造の通常の影響を含む固有のトレードオフがあります。
カッコウ ハッシュ ドローでは、ヒストリカル ハッシュ ドローと同じように有効です。配列。 スペースがすでに別の知識の共有によって占有されている場合、現在の知識は「追い出され」(巣に卵がある場合のカッコウの正確な生活のカッコウの行動と同じ)、ブランドの現在のスペースを取得する必要があります。配列、2D ハッシュ機能の利用。 このプロセスは、知識全体が配列に効率的に挿入されるか、反復回数が最大になるまで続きます。 例を上に示します。 ここでは、ハッシュされた知識を販売するための 2 つのハッシュ テーブル $T_0$ と $T_1$old があります。 料金 $A$ はハッシュされ、$T_0$ に挿入されますが、$B$ が既にこの状況を占めているため、削除され、$T_1$ に挿入しようとします。このプロセスは、すべての値が挿入されるか、再ハッシュは、循環挿入をクリアするために発生します。 このプロセスは衝突の回避を可能にし、生産モデルのパフォーマンスに価値のある操作をもたらします.命令でプロセスをさらに最適化して、ハッシュに必要なメモリ要件を切り分けます:
- 確率論的filter を使用して、ハッシュマップ内の ID をフィルター処理します。 不可欠な解説は、TikTok ID からの知識では、ロングテールが支払われるということです。有名な ID はおそらく何百回も発生する可能性がありますが、人気のない ID は 10 回しか表示されません。最終的なモデルの品質に影響を与えることはないと想定されているため、おそらくクリアされる可能性があります.
- 古い ID と従来の ID の消去を制御する ID 存在タイマー。 これは、もはやアクティブではない特定の人、または時代遅れの短いビデオから発生する可能性があります. これらの ID の埋め込みを保存することは、おそらくモデルをまったく緩和しない可能性があるため、メモリを確実に整理する必要があります.
これで、ヒントが全体にどのように表されているかがわかったので、今までにどんなモデルに仕立て上げていく予定なのか知りたいです。 Monolith のオンライン プラクティス アーキテクチャの最終的な計画は、
洗練されているように見えますが、実際にはすべて、より大きなアーキテクチャの前提であり、
TensorFlow の分散 Worker-ParameterServer (または単に PS)モデルは、以下に示すように、多数のマシン (または単一のマシン上のプロセス) がモデルを教えるために集合的に動作する分散スタイルでデバイスを見つけるマシンを練習する 1 つの計画です:
- オン-ライン練習段階。 モデルがオンライン サービスに展開された後、練習は終了せず、オンライン練習の段階に入ります。 ストレージから非常に多くのミニバッチの例を見つけることで、練習中の従業員はホバーで正確な時間の知識を消費し、練習中の PS を更新します。 練習中の PS は定期的にそのパラメータをサービス中の PS に同期し、すぐに実際の人物の面に影響を与える準備ができています
このモデルには、次の 2 つの形式のプロセスがあります: employees と parameter servers. 従業員は有料です。 勾配の計算またはモデルパラメータの更新に対応する、モデルを教えるために必要な計算。 パラメータサーバーは、モデルの重みやバイアスなどの理由で、モデルの現在の肯定を保存するために料金がかかります.
練習はバッチ練習 および オンライン練習 レベル:
- バッチ練習ステージ。 この段階は次のように機能します。すべての練習ステップで、練習中の従業員はストレージから練習例の 1 つのミニバッチを読み取り、PS からパラメーターを要求し、前方循環と後方循環を計算し、最後に現在のパラメーターをPS練習中。 モデル アーキテクチャを調整し、モデルを再トレーニングする必要がある場合、歴史的知識を実践するために、バッチの実践は非常に貴重です;
ネットの正確な時間の特定の個人のフィードバックを可能な限り公開して、分析チームの古い練習を追加しました Kafka キュー、1 つのキューは実際の人のアクション (クリック、いいね、その他の読み込み) をログに記録します。モデルサーバー。 次に、Apache Flink joiner を利用して 2 つを結合します。 、パックされたこの知識は、さらに別の Kafka キューによって読み取られる実践的な知識に作り直されます。これらの実践的な例は、バッチの実践とオンラインの実践の両方で古いものです:
- バッチの実践のあるレベルでは、Kafka キューからの知識が Hadoop Disbursed File Storage (HDFS) にダンプされます。明らかな量の実践的な知識が収集され、それが実践的な従業員に送られます
- オンラインで実践する場合、プロセスはそれほど複雑ではありません: ヒントは有効ですKafka キューから直接読み取ります
練習操作が実行された後、PS はパラメーターを収集し、選択された同期アジェンダは、実際の人物ファセットのモデルを順番に更新するサービス PS を更新します。
- オンライン ジョイナー
ジョイナー p プロセスは事実上、より洗練されたミニチュアであり、常にそれに関するいくつかの問題を提示する必要があります:
メモリ内キャッシュおよびKV(Key-Impress )-retailer は、特定の人物のアクションとサーバーからの要素との間の待ち時間を安定させる 2 つの部分です。これは、さまざまな人の到着時間に関係なく、両方が近くにあるという実際の事実から生じているため、キャッシングはそれらを正確にペアリングする必要があります。 しかし、実際の人物が動きを合計するのに実際に長い時間がかかる場合はどうなるでしょうか? その場合、キャッシングはこの形式の巨大な実現ではないため、いくつかの値がディスクに保持され、再びペアになります。 特定の人物のモーション ログが到着すると、最初にメモリ内キャッシュが起動され、その後、キャッシュが欠落している場合に備えて最も不可欠な費用がかかるストレージが起動されるようです。
また、有害なサンプリングである 1 つの終了ステップを示します。 確かにと不利な例が練習中にあります。 アドバイスシステムでは、確かな例は、特定の人が好きである、または情熱を持っていることが証明されているアイテムですが、逆の例は、実際の人が好きではない、または情熱を証明していないアイテムです。バランスが取れていないため、データセット内のこのバイアスを偏見なくすることは深刻です.
そして、それだけです! Monolith のすべての部分について理解しました。 ここで、研究者がホバーでオンラインで発見することの有効性を示す 1 つの最後のセクションに進みます。パフォーマンスを確認してください:
として 上記のオンライン練習は、動的なフィードバックを備えたレコメンデーション システムのパフォーマンスを向上させるために重要であることがわかります.
TikTok の正確な時間のアドバイス システムがどのように機能するかについて、私の詳細な情報を見つけてくれてありがとう。 私はあなたがそれをアニメ化して、最新のことを学んだことを願っています. 質問がある場合、または正確な時間のアドバイス システムを確認することを選択する場合は、自由に Formed チーム (hi there@fashioned.ai- ) に連絡してください。 )
𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺
- 彼らは実験的に、システムの信頼性は、正確な時間の発見とトレードオフされる可能性があることを証明しました