こんにちは。MS統括本部の宋です。自然言語処理分野において、GPT-3やChatGPTなどの大規模言語モデルが次々開発され自然な文書が生成できることで話題になっています。私が所属するデータインテリジェンス部では大規模言語モデルを使った広告文の自動生成に取り組んでいます。本記事では広告文自動生成の仕組みと業務で活用できるように工夫した点についてお話しします。
取り組みの背景
検索連動広告(検索したキーワードに連動して表示される広告)を利用している広告主はユーザーが興味を持ってくれる広告文を日々考え、改善しています。私たちのチームは広告効果の改善を目的としたソリューションをData Marketing Solution(DMS)として数多く提供しています。その中の一つである検索TD最適化は配信実績から、機械学習を用いて効果的な単語及びフレーズを抽出し、レポートとして提供しています。以下の表では分析結果のイメージを載せており、広告効果の予測値が高い程よい単語、フレーズであることを表しています。
要素 | 広告効果の予測値 |
---|---|
お得な | 0.71 |
格安プランの | 0.65 |
キャンセル無料 | 0.54 |
多数 | 0.51 |
たっぷり | 0.49 |
現状、提案した単語やフレーズの分析結果をもとに広告文は人が作成しています。自動で広告文の生成ができれば、効果の高い広告文の導入のハードルが下がることが期待できます。このような背景から現在、広告文の自動生成機能の開発に取り組んでいます。
広告文自動生成向けのモデル作成
テキスト生成モデル
この記事を作成した時点で、以下のテキスト生成モデルが公開されています。モデルの規模や利用した学習データの数に差はありますが、要件に合わせてモデルを選ぶことができます。他にLINEのHyperCLOVAやOpenAIのGPT-3、ChatGPTなど一般公開されていないモデルがあります。特に直近のChatGPTは人間らしく応答できることで話題になっています。
モデル名 | パラメーター数 | 学習用のデータセット | ライセンス |
---|---|---|---|
EleutherAI/gpt-neox-20b | 20B | Pile | Apache 2.0 |
naclbit/gpt-j-japanese-6.8b (公開予定) | 6.8B | C4, CC-100, OSCAR, Wikipedia, Books, News, etc. | Apache 2.0 |
EleutherAI/gpt-j-6B | 6B | Pile | Apache 2.0 |
abeja/gpt-neox-japanese-2.7b | 2.7B | CC-100, Wikipedia, OSCAR | MIT |
nlp-waseda/gpt2-xl-japanese | 1.5B | CC-100, Wikipedia | CC BY-SA 4.0 |
rinna/japanese-gpt-1b | 1.3B | C4, CC-100, Wikipedia | MIT |
yellowback/gpt-neo-japanese-1.3B | 1.3B | CC-100, OSCAR, Wikipedia | Apache 2.0 |
abeja/gpt2-large-japanese | 750M | CC-100, Wikipedia, OSCAR | MIT |
rinna/japanese-gpt2-medium | 336M | CC-100, Wikipedia | MIT |
rinna/japanese-gpt2-small | 110M | CC-100, Wikipedia | MIT |
colorfulscoop/gpt2-small-ja | 110M | Wikipedia | CC BY-SA 3.0 |
nlp-waseda/gpt2-small-japanese | 110M | CC-100, Wikipedia | CC BY-SA 4.0 |
rinna/japanese-gpt2-xsmall | 37M | CC-100, Wikipedia | MIT |
モデルの再学習
大規模言語モデルではWikipediaなどのWebページで学習しており、そのまま使うだけでは広告らしくない文章が多数生成されます。以下の例では「転職するなら、」という文章の後に続く文章をモデルにて生成しています。
公開モデルの結果 |
---|
自分がなぜ就職したいのか? なぜ今転職が必要か? どうなりたいのか? |
私は20年代の半ばに結婚。それから現在まで独身だがこの年になるまで、 |
派遣される社員やアルバイトとして働く薬剤師には、就職先によって大きな違いが出ます。 |
「転職したい気持ちはあるけれどうまくいかない。」と愚痴ばかり言っていても、何一つ解決の糸口は見いだせないのではないでしょうか? そうした人は、どのような職業が存在するかすら認識していない |
経験・実績・スキルが優れていることが入社後の定着や将来のキャリアアップにつながります。 |
広告らしい文章を生成できるように、過去の広告配信実績を利用して生成モデルを再学習しました。生成結果を以下の表に載せています。今度は広告文として活用できそうな文章が生成できています。学習データには全業界の広告文ではなく、生成したい広告文に関連する文書のみ学習データとして使っています。そうすることで望む広告文を生成でき、再学習時間も短縮できます。
配信データで再学習した後の結果 |
---|
転職支援で年収1000万円以上の高待遇を目指す! |
職務中の方等、転職に役立つ情報が満載! |
看護スキルを高めて高待遇を目指す! |
【年収】月給20万円〜30万円以上の高待遇を目指す方必見! |
保育士・幼稚園教諭・理学療法士などの職種別に、高待遇で年収600万円以上の求人が満載! |
実用化できるように工夫したところ
広告文データで再学習したあと、生成した文書は広告らしくなりましたが、実業務で応用できるようにいくつか課題があります。
- 生成文書が多くて、どれを選んだら良いかがわからない
- 競合情報など配信してはいけない単語が生成文の中に出現する可能性はある
- 多様な広告文を生成したい
それぞれの課題に対して、解決方法を検討しました。
広告効果の評価
自動生成は大量の文書を生成できますが、生成した文書の質にばらつきがあります。広告文を提案するために生成した全ての文章から目視で良い文書を選び出すのは大変な作業です。ある程度自動で優劣を判断する評価値を出せないと、業務上で利用するのは難しいです。こちらを解決するために過去の配信実績を使い、機械学習により自動生成文書の広告配信効果を評価します。以下は評価結果の例です。
自動生成文 | 広告効果の予測値 |
---|---|
職務中の方等、転職に役立つ情報が満載! | 4.09072 |
【年収】月給20万円〜30万円以上の高待遇を目指す方必見! | 4.05165 |
保育士・幼稚園教諭・理学療法士などの職種別に、高待遇で年収600万円以上の求人が満載! | 2.49629 |
転職支援で年収1000万円以上の高待遇を目指す! | 2.05786 |
看護スキルを高めて高待遇を目指す! | 1.08097 |
他にBLEU(BiLingual Evaluation Understudy)スコアやROUGE(Recall-Oriented Understudy for Gisting Evaluation)スコアなど機械翻訳や要約などでよく使われている評価手法も検討しています。
除外したいワードの対応
生成モデルは差別発言や問題になる文書を生成することがあります。広告文で再学習した結果、生成文書は広告らしくなりますが、競合情報など、広告に含めてはいけない要素が出ることがあります。この課題を解決するために以下の方法を検討しました。
- 生成後のワード含有判定による除外
- 生成過程での除外
- 固有表現抽出によるマスキング
1番目は生成した後に特定の除外ワードを含む文章を除くというシンプルな方法です。2番目ではHuggingFace transformersに備わっている除外ワードの指定機能を利用します。この機能を利用すると生成過程において指定したワードをモデルが選択することを禁止し、指定ワードを含まない文章の生成が可能になります。ただ、注意点として日本語の場合では一つのワードに対しては考慮すべきtokenが複数存在する可能性があります。例えば、“データ”を除外ワードとして指定したい場合に、“データ”に対応するtoken idが710番のもの以外にも、以下の表のように“データ”を含むtoken idは複数存在します。このような場合、あらかじめ除外したいワードを含むtoken idの情報を事前に確認し、指定する必要があります。
token id | ワード |
---|---|
710 | データ |
5033 | データを |
9227 | データの |
14901 | データが |
20935 | ▁データ |
36497,1334 | デー ター |
15145 | データは |
36434 | のデータ |
最後に固有表現抽出を利用したマスキングです。生成文書の中で他社情報はマスキングすべき情報の一つです。すでに述べた2つの方法は除外したいワードを事前に準備し、入力する必要がありますが、すべての除外したい他社情報の入力は負荷が高く現実的ではありません。そこで固有表現抽出により企業名やサービス名の位置を特定し、以下のようにマスキングをかける方法を検討しました。※印の箇所がマスキング箇所です。
マスキング後のワード |
---|
*****転職サービスなら業界最大級の求人 |
生成文書の多様性
同じような広告文が生成されることがあり、多様な文章を生成させるため以下の2点を検討しました。
- 多様な文章を入力する
- Decoding方法の選択
1番目の方法はシンプルに多様な文章を入力文書として与えることで生成文書の種類も増やすものです。例えば、以下はこちらで試した例です。
例1 | 例2 | |
---|---|---|
入力 | ハイクラス人材のそばに | 年収1000万円以上の求人多数 |
出力 | 優秀な人材の採用・育成・活用に。 | 年収1000万円以上を目指す転職。 |
入力文章の多様性以外に、decodingの方法を変えれば生成文書も変わります。よく使われているdecoding方法として、beam search, top-k sampling, nucleus samplingがあります。また昨年Contrastive Search(※1)が新しく提案されており、発表した論文によると長文でも自然言語らしく生成できるようです。これらのdecoding方法はtransformersから簡単に利用可能ですので、生成タスクに合わせてdecoding方法を選べます。
まとめ
本記事では広告文自動生成の実現に向けた課題と工夫をご紹介しました。近年生成モデルの技術発展が早い中、今後も引き続き新しい技術をキャッチアップしてさらなる改善をしていく予定です。
私のチームで開発しているソリューションの他の記事も、ぜひご覧ください。
- 数千万ユーザーのビッグデータに機械学習モデルを適用するには(広告配信ソリューション実現の工夫紹介)
- 協力ゲーム理論を活用した広告効果分析(シャープレイ値で広告貢献度の公正な分配を実現)
- 機械学習でコンバージョンにつながるキーワードを予測する(学習データ不足でも推論可能にする工夫)
参考資料
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました
- 宋 静
- データアナリスト
- Yahoo!広告のデータマーケティングソリューションを開発しています。