2020Tencent広告アルゴリズムコンペティションの速報

1.問題の説明

このアルゴリズムの競争のトピックは、重要で興味深い質問から来ています。ご存知のとおり、ユーザーの年齢や性別などの人口統計学的特性は、広告プラットフォームを自然に含むさまざまなレコメンデーションシステムの重要な入力特性です。この背後にある前提は、広告に対するユーザーの好みは年齢や性別によって異なるということです。多くの業界の実務家は、この仮説を繰り返し検証してきました。ただし、ほとんどの検証方法では、人口統計属性を入力として使用して推奨結果を生成し、これらの入力がある場合とない場合の推奨パフォーマンスをオフラインまたはオンラインで比較します。このコンテストのトピックでは、この仮説を別の方向から検証します。つまり、広告システムでのユーザーのインタラクティブな行動を入力として、ユーザーの人口統計属性を予測します。

このコンテストの質問の「逆思考」自体には、実用的な価値と挑戦に加えて、研究の価値と関心があると信じています。たとえば、ユーザー情報が不足している開業医の場合、自分のシステムデータに基づいてユーザー属性を推測することで、より幅広いグループの人々の間でインテリジェントなターゲティングやオーディエンス保護を実現できます。同時に、参加者は、より正確な見積もりを達成するために、機械学習の分野でさまざまなテクノロジーを使用する必要があります。

具体的には、コンテスト中に、トレーニングデータセットとして91日(3か月)の時間枠でユーザー広告クリック履歴レコードのセットを参加者に提供します。各レコードには、日付(1〜91)、ユーザー情報(年齢、性別)、クリックされた広告に関する情報(マテリアルID、広告ID、製品ID、製品カテゴリID、広告主ID、広告主業界)IDなどが含まれます。 )、およびユーザーがその日に広告をクリックした回数。テストデータセットは、別のユーザーグループの広告クリック履歴になります。出場者に提供されるテストデータセットには、これらのユーザーの年齢と性別の情報は含まれません。この質問では、参加者はテストデータセットに表示されるユーザーの年齢と性別を予測し、合意された形式で予測結果を提出する必要があります。

2.データセットの概要

トレーニングデータには、ユーザーの91日間の広告クリックログのセットが含まれ、3つのテーブルに編成され、ヘッダー行(BOMなしでUTF-8を使用してエンコード)を含むCSVファイルの形式で提供されます。 user.csv、ad.csv。テストデータには、トレーニングデータと同じ方法で整理された、別のユーザーグループの91日間の広告クリックログが含まれていますが、user.csvは含まれていません。各表の詳細な形式を以下に説明します。

click_log.csv:

  • 時間:日単位の時間粒度、整数値、値の範囲[1,91]。
  • user_id:ランダムに番号が付けられた1からNまで生成された一意の暗号化されたユーザーID。ここで、Nはユーザーの総数(トレーニングセットと
    テストセット)です。
  • Creative_id:user_idと同様の方法で生成された、ユーザーがクリックしたクリエイティブのID。
  • click_times:ユーザーがその日にクリエイティブをクリックした回数。

user.csv:

  • ユーザーID
  • age:セグメントで表されるユーザーの年齢。値の範囲は[1-10]です。
  • 性別:ユーザーの性別、値の範囲[1,2]。

ad.csv:

  • Creative_id
  • ad_id:user_idと同様の方法で生成された、マテリアルが属する広告のID。各広告には、複数の
    表示可能な資料が含まれる場合があります
  • product_id:広告で宣伝されている商品のID。user_idと同様の方法で生成されます。
  • product_category:広告で宣伝されている商品のカテゴリID。user_idと同様の方法で生成されます。-Advertiser_id:user_idと同様の方法で生成される広告主のID。
  • 業界:user_idと同様の方法で生成される広告主の業界のID。

3.解決策

合計creative_idは444wであるため、onehotを直接実行してから埋め込むと、パラメーターが大きすぎてトレーニングが困難になります。したがって、Word2vecのアイデアを使用して、各ユーザーの過去のクリックレコードを文として扱います。たとえば、アクセスしたすべてのcreative_idを「文」として扱い、各広告を「単語」として扱います。ユーザー1234の場合:[ '821396'、 '209778'、 '877468'、 '1683713'、 '122032'、…]。このようにして、さまざまな長さの合計90wのシーケンスを形成し、Word2vecモデル(自己監視モデル)を介してそれらをトレーニングし、各creative_idでK次元のベクトルを形成できます。最初にidを単語と見なし、次にidを文に連結します。これにより、タスクは感度低下シナリオでの複数入力テキスト分類の問題になります。

ネットワーク構造の設計

LSTMに基づくマルチクラステキスト入力分類モデルのネットワーク構造:

モデル全体は、入力層、LSTM層、プーリング層、および完全に接続された層の4つの部分で構成されています。

1.入力レイヤー(単語埋め込みレイヤー):
入力テキストとして「creative_id」、「ad_id」、「advertiser_id」、「product_id」を選択しました。事前トレーニングモデルを使用します。つまり、各IDのword2vecモデルを事前トレーニングし、事前トレーニングされたword2vecモデルを埋め込みレイヤーに埋め込み、パラメーターを修正してから、トレーニング中にこのレイヤーのパラメーターを調整しません。各idテキスト入力は、100ワードの固定長のテキストシーケンスであり、埋め込まれた事前トレーニング済みのword2vecモデルの埋め込みレイヤーを介して100ワードのベクトルで構成される文ベクトルに変換されます。

2. LSTMレイヤー:
複数のidセンテンスベクトルがスプライシングされた後、それらはLSTMレイヤーに入力され、双方向LSTMを使用してテキストの特徴を抽出します。入力された固定長のテキストシーケンスから、ローカル語順情報を使用して主要な特徴を抽出します。主な機能は高度な機能に統合されています。

3.プーリングレイヤー:
平均プーリングが使用されます。これにより、モデルのパラメーターが削減され、可変長ボリュームベースレイヤーの出力で固定長の完全に接続されたレイヤー入力が確実に取得されます。

4.完全接続層:完全接続層
の機能は分類器です。分類には隠れ層のある完全接続ネットワークを使用し、最後にlog_softmaxが分類結果を出力します。
ネットワーク構造を図1に示します。
ここに画像の説明を挿入

損失関数の設計
損失関数はCrossEntropyLossを使用します:クロスエントロピー損失関数
オプティマイザーはAdamを使用します

ソースリンク

4.まとめ

初めてデータコンテストに参加したとき、今ではたくさんのことを学びました。自分でコードトレーニングを書いたので、スコアの取得速度は比較的遅いですが、nlpテキスト分類の知識も学びました。最後に、モデルは30%割引でトレーニングされ、予備コンテストで200位にランクされました。彼は準決勝に出場できなかったが、それでもゲーム中に能力を向上させた。ゲーム後の最前列のボスのオープンソースコードを学び、ギャップを探し、自己能力を向上させるためのフォローアップの準備。

おすすめ

転載: blog.csdn.net/qq_32505207/article/details/106923336