iQiyi広告ランキングシナリオにおける疎大モデルの実践

01

   戻るシーンそして現状

1. 広告分野におけるデータの特徴

広告分野のデータは、連続値の特徴と離散値の特徴に分類できます。AI画像、ビデオ、音声などの分野とは異なり、広告分野、ユーザーID、広告ID、ユーザーとインタラクションする広告IDシーケンスなどのIDの形式で提示されることがほとんどです。規模が大きく、広告フィールドを形成する高次元のスパースデータの特徴。

連続値の機能
  • 静的特性 (ユーザーの年齢など) と、ユーザーの行動に基づく動的特性 (ユーザーが特定の業界の広告をクリックした回数など)の両方があります
  • 利点は汎化能力が高いことです。 業界に対するユーザーの好みは、その業界の同じ統計的特徴を持つ他のユーザーにも一般化できます。
  • 欠点は、記憶力の欠如により識別力が低下することです。 たとえば、同じ統計的特性を持つ 2 人のユーザーの行動に大きな違いがある可能性があります。 さらに、連続値特徴量では、多くの手動特徴量エンジニアリングも必要になります。
離散値の特徴
  • 離散値の特徴は、きめの細かい特徴です。 数え切れないもの(ユーザーの性別、業界IDなど)もあれば、高次元のもの(ユーザーID、広告IDなど)もあります。
  • 記憶力が強く、識別力が高いのが利点です。 離散値の特徴を組み合わせて、横断的および協調的な情報を学習することもできます。
  • 欠点は汎化能力が比較的弱いことです。
広告は、ユーザーの強力な記憶とメディア トラフィックの強力な差別化を必要とするシナリオであるため、個別の値の特徴が広告モデルのパーソナライズされた予測と最適化の基礎となります。 広告 ID、ユーザー ID、およびそれらの組み合わせなどの高次元のスパース データを離散値の特徴として使用することで、異なる行動を持つさまざまなユーザーを特徴の観点から適切に区別できます。 一般に、離散値特徴量を使用するには 2 つの方法があります。
  • ワンホットエンコーディング
  • 特徴の埋め込み (エンベディング)
高次元の離散値特徴量のワンホット エンコーディングは、「次元の呪い」に簡単につながる可能性があり、パラメーターの爆発、モデルの収束の遅さ、汎化能力の弱さなどの明らかな欠陥として現れます。 したがって、大規模な ID を符号化する場合、高次元空間の疎な ID を特徴埋め込みにより低次元の密空間のベクトルとして表現します。

2. iQiyiの広告ランキングモデルの現状
2016 年に Google が提案した Wide & Deep モデルがレコメンデーション分野に正式に導入され、記憶と汎化機能の統合モデリングを実現し、すぐに業界検索、広告、レコメンデーションのベースラインモデルとなりました。田畑。 。 iQiyi の広告ランキング ビジネスも、2019 年にオンライン学習の FM モデルから DNN モデルに徐々に進化しました。
私たちの DNN モデルは、トレーニングと推論用のオープンソース フレームワーク TensorFlow に基づいています。 TensorFlow フレームワークでは、データを計算、保存、送信するための基本データ単位として高密度 Tensor が使用されます。 離散値 ID 特徴量 Embedding を格納するために使用される Tensor 形状は、事前に決定する必要があります。つまり、[vocabulary_size, embedding_dimension] に固定されており、vocabulary_size は ID 空間に基づいて手動で決定する必要があります。 したがって、高次元のスパース ID 特徴を導入する場合、最初に ID 特徴ハッシュをvocabulary_size 範囲にマッピングします。
現在、高次元のスパース ID 機能を使用すると、次の問題が発生します。
  • 機能の競合: 語彙サイズの設定が大きすぎると、トレーニング効率が急激に低下し、メモリ OOM が原因でトレーニングが失敗します。 したがって、10 億レベルのユーザー ID 離散値特徴量であっても、100,000 レベルの ID ハッシュ空間しか設定されません。ハッシュの競合率が高く、特徴量情報が破損し、オフライン評価による利点はありません。
  • 非効率な IO: ユーザー ID や広告 ID などの特徴は高次元で疎であるため、つまり、トレーニング中に更新されるパラメーターは全体のごく一部にすぎないため、TensorFlow の独自の静的埋め込みメカニズムでは、モデルへのアクセスを処理する必要があります。高密度 Tensor 全体は膨大な IO オーバーヘッドをもたらし、疎な大規模モデルのトレーニングをサポートできません。


02

   広告がまばらな大規模モデルの実践

前述したように、離散値特徴は、パーソナライズされた予測をさらに実現するためのモデルの基礎です。また、高次元のスパース ID 離散値特徴を使用する場合にも問題が発生しました。そのため、2023 年には業界の主流であるオープンソース テクノロジーを使用して、疎な大規模モデルのトレーニングと推論構築を実行します。
1. アルゴリズムフレームワーク
過去数年間、業界は疎な大規模モデルを推奨するための TensorFlow のサポートについて多くの調査を実施し、実際のビジネス シナリオに実装してきました。私たちが TFRA 動的埋め込みオープン ソース コンポーネントを選択するのは、主に次の理由からです。
  • TFRA API は Tensorflow エコシステムと互換性があり (オリジナルのオプティマイザーとイニシャライザーを再利用し、API は同じ名前と一貫した動作を持ちます)、TensorFlow がよりネイティブな方法で ID タイプの疎な大規模モデルのトレーニングと推論をサポートできるようにします。 学習と使用のコストは低く、アルゴリズム エンジニアのモデリング習慣を変えることはありません。
  • 動的なメモリの拡張と縮小により、トレーニング中のリソースが節約され、 ハッシュの競合が効果的に回避され、特徴情報のロスレスが保証されます。
TensorFlow 2.6.0 および TFRA 0.6.0 フレームワークに基づいて、次の反復を実行しました。
  • 静的埋め込みは動的埋め込みにアップグレードされます。 離散値特徴の人工ハッシュ ロジックの場合、TFRA 動的埋め込みはパラメーターの保存、アクセス、更新に使用されます。これにより、すべての離散値特徴の埋め込みがアルゴリズム フレームワーク内で競合しないことが保証され、すべての離散値を保証する 特徴のロスレス学習。
  • 高次元スパース ID 機能の使用: 前述したように、TensorFlow の静的 Embedding 機能を使用する場合、ユーザー ID と広告 ID 機能は、ハッシュの競合によりオフライン評価では利益がありません。 アルゴリズム フレームワークがアップグレードされた後、ユーザー ID と広告 ID の機能が再導入され、オフラインとオンラインの両方でプラスのメリットが得られます。
  • 高次元のスパース結合 ID 機能の使用: ユーザー ID と業界 ID およびアプリ パッケージ名とのそれぞれの組み合わせなど、ユーザー ID と広告の粗粒 ID の結合離散値機能を導入します。 同時に、機能アクセス機能と組み合わせて、よりスパースなユーザー ID と広告 ID の組み合わせを使用する個別の機能が導入されます。


2. モデルのアップデート

疎な大規模モデルを実装する過程で、トレーニング推論とデプロイメントの更新で多くの問題に遭遇しました。実装プロセス中にさまざまな問題について詳細な分析と最適化を実施し、最終的に、疎な大規模モデルの効率的かつ安定したトレーニング、推論、デプロイの更新を達成しました。
TensorFlow Serving を使用してスパースな大規模モデルをホット アップデートする場合、メモリの割り当てと解放の競合により推論の遅延が発生します。 TensorFlow のメモリ割り当てと解放の使用シナリオには、主に 2 つの部分があります。
  • モデルが復元されるときの Tensor 変数自体の割り当て。つまり、モデルがロードされるときにメモリが割り当てられ、モデルがアンロードされるときにメモリが解放されます。
  • 中間出力 Tensor のメモリは、RPC リクエスト中のネットワーク転送計算中に割り当てられ、リクエスト処理の完了後に解放されます。
したがって、疎な大規模モデルが更新されると、新しいモデルがロードされるときに大量のメモリが Restore OP に割り当てられ、古いモデルがアンロードされるときに大量のメモリが解放されます。 このプロセス中、RPC 推論リクエストは中断されません。このとき、2 つのメモリの割り当てと解放が競合して競合し、推論の不具合が発生します。 上記の分析に基づいて、メモリ割り当ての分離を設計することで、モデル パラメータのメモリ割り当てと RPC リクエストのメモリ割り当てを分離し、異なる独立したメモリ空間に割り当ておよび解放することで、スパース大規模メモリのホット アップデートの遅延を解決します。モデルの不具合。
最後に、モデルの配布には、疎な大規模モデル ファイルの断片化と同じコンピュータ ルーム内での P2P 送信が使用されます。これにより、ストレージ バックエンドとネットワークの専用回線への負荷が軽減され、疎な大規模モデルの頻繁な更新によって引き起こされるストレージと帯域幅の問題が解決されます。

03

   全体的な利益

現在、深層学習プラットフォームは、10 億レベルのパラメーター モデルのトレーニング、推論、展開の更新を効率的かつ安定的にサポートしています。パフォーマンス広告の CVR および DCVR シナリオで 3 つのまばらな大規模モデルを本格的に開始しました。これにより、推論遅延は基本的に同じでありながら、パフォーマンス広告ビジネスの収益が 4.3% 増加しました。


04

   今後の展望

現在、大規模な広告スパース モデル内の同じ特徴のすべての特徴値には、同じ埋め込みディメンションが与えられます。実際のビジネスでは、高次元特徴のデータ分布は非常に不均一であり、非常に少数の高頻度特徴が非常に高い割合を占め、すべての特徴値に対して固定の埋め込み次元を使用すると、ロングテール現象が深刻になります。埋め込み表現の学習能力が低下します。つまり、低周波の特徴の場合、埋め込み次元が大きすぎるため、モデルは過剰適合の危険にさらされます。高周波の特徴の場合は、表現して学習する必要がある情報が豊富にあるため、埋め込みの次元が大きすぎます。寸法が小さすぎるため、モデルがアンダーフィッティングになる危険性があります。したがって、将来的には、モデル予測の精度をさらに向上させるために、特徴の埋め込み次元を適応的に学習する方法を検討します。

同時に、モデルの増分エクスポートのソリューションを検討します。つまり、増分トレーニング中に変更されるパラメーターのみを TensorFlow Serving にロードすることで、モデル更新中のネットワーク送信とロード時間を削減し、分単位の更新を実現します。疎な大規模モデルの構築と、モデルのリアルタイム性の向上。


また5月あなた戻る考える見て

メモリ爆発の秘密を明らかにする: 大規模モデルの分散トレーニングの OOM 問題を解決する

iQIYI パフォーマンス広告の二重入札最適化プロセス

iQIYI データ レイクの実践 - データ レイク アプリケーションの広告

この記事は、WeChat パブリック アカウント - iQIYI テクノロジー製品チーム (iQIYI-TP) から共有されたものです。
侵害がある場合は、削除について [email protected] までご連絡ください。
この記事は「OSC ソース作成計画」に参加していますので、読んでいる方もぜひ参加して共有してください。

仲間のニワトリがDeepin-IDE を 「オープンソース」化し、ついにブートストラップを達成しました。 いい奴だ、Tencent は本当に Switch を「考える学習機械」に変えた Tencent Cloud の 4 月 8 日の障害レビューと状況説明 RustDesk リモート デスクトップ起動の再構築 Web クライアント WeChat の SQLite ベースのオープンソース ターミナル データベース WCDB がメジャー アップグレードを開始 TIOBE 4 月リスト: PHPは史上最低値に落ち、 FFmpeg の父であるファブリス ベラールはオーディオ圧縮ツール TSAC をリリースし 、Google は大規模なコード モデル CodeGemma をリリースしました 。それはあなたを殺すつもりですか?オープンソースなのでとても優れています - オープンソースの画像およびポスター編集ツール
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4484233/blog/11045480