Prompt Learning for News Recommendation
https://gyazo.com/94cefa0748c6cbae507c8b396c4129a2
なぜ読んだか
LLM関連かなと思って読んでみた
ちょっと違っていた
INTRODUCTION
既存のニュース推薦モデル(Figure 1a)
既存の多くのニューラルニュース推薦では、ニュースとユーザー表現をエンコードすることに集中していることが多い
これらのモデルでは、静的な単語埋め込み(Word2VecやGlove)が学習の初期化として適用されている
ニュース推薦データセット内のドメイン情報のマイニングに集中しており、実世界の大規模なコーパスからの意味的・言語的な情報は無視されている
PLM-based モデル(Figure 1b)
ニュース表現の学習に事前学習済み言語モデル(Pre-train Language Model)を導入
ニュースのエンコーダーのみに利用されており、ユーザーのエンコードには利用されていない
ニュース推薦の目的と、言語モデルの学習目的とが異なるため、言語モデルの知識を十分に活かせていない
Prompt4NR / Prompt Learning(Figure 1c)
近年、NLPの様々なドメインでPrompt Learningが顕著な成果を上げている
このパラダイムの基本は、タスクに関連したプロンプトテンプレートと回答語を設計することにより、下流タスクをPLMの学習タスクに再定式化すること
ニュース推薦ドメインにも有効かどうかを検証する
https://gyazo.com/1b82085e826a373c6f5af1c7a3566259
THE PROMPT4NR FRAMEWORK
https://gyazo.com/dbd30ed3de7d8a2b6750861a9d705692
D: 𝑇𝑖𝑡𝑙𝑒 = {𝑤1,𝑤2, ...,𝑤𝑀 }
Click History: 𝐻𝑢 = {𝐷1, 𝐷2, ..., 𝐷𝐿}
NR Data Format Conversion
クリック履歴 Hu と候補記事 Dc を <USER>と<CANDIDATE>に変換
<USER>: クリック履歴の記事タイトルを仮想トークン[NCLS]で結合
<USER> = [NCLS]Title1[NCLS]TitleL
<CANDIDATE>: 候補記事のタイトル
<CANDIDATE> = Title
Prompt Template
Prompt4NRのコアコンポーネント
ニュース推薦タスクを、マスクを予測するための穴埋めタスクとして変換すること
入力(<USER>, <CANDIDATE>)、テンプレート𝑇 (·)
T(<User>, <CANDIDATE>, [MASK])
ニュース推薦にPrompt Learningを利用する初めての研究として、どのようなテンプレートが推薦性能に貢献するかに興味がある
ユーザーと候補記事とのマッチ度合いをどのように捉えるかという異なる観点からテンプレートを用意
4つの観点(relevance, emotion, action, utility)
3種類のテンプレート(discrete, continuous, hybrid)
Discrete Templates
Prompt Learningの一般的なテンプレート
自然言語で人間が解釈可能な形
経験知が必要
ユーザーの興味と候補記事のマッチ度合いを調べるためのテンプレートを4つの異なる観点から設計
Semantic Relevance
ニュースの内容がユーザーがニュースを読む動機のコアとなっているかどうか
すなわち、ユーザーがニュースのトピックや内容に対して持続的な関心を持っているか
<USER>と<CANDIDATE>の関連性を判定、回答単語には related と unrelated を利用
User Emotion
ユーザーがニュースに対して感情的な反応をするかどうか、感情的な欲求を満たすかどうか
回答単語にはinterestingとboringを利用
User Action
マスク言語モデルでダイレクトにクリックを予測するためのテンプレート
ユーザーがニュース記事をクリックするか
回答単語にはyesとno
Recommendation Utility
候補記事を推薦するメリットとデメリットをマスク言語モデルに判断できるか
回答単語はgoodとbad
上記のテンプレートはテンプレート文と回答単語がわずかに違うだけに見えるが、事前学習済み言語モデルに埋め込まれた意味的、言語的知識の使い方が異なることを期待している
これはPrompt Learningのコアな考え方である
タスク固有の入力文が大規模コーパスに挿入されているかのように、事前学習済み言語モデルから回答単語の確率を予測する
一方、人手で設計されているため、すべてのケースをカバーできるわけではない。
仮想トークンを使って、さらにいくつかのケースをカバーするテンプレートを利用する(continuous template)
https://gyazo.com/17f54999318786bcdd62f2103515a213
Continuous Template
<USER>、<CANDIDATE>、[MASK]の前に仮想トークンを追加
仮想トークン:[P1]...[Pn1]、[Q1]...[Qn2]、[M1]...[Mn3]
回答単語とトークン位置については離散(discrete)テンプレートのものと同様
連続テンプレートはモデルに自由を与えるが、仮想トークンはランダムに初期化されるため、曖昧性が生まれ、言語モデルの知識を十分に活かせない可能性がでる
離散テンプレートと連続テンプレートをハイブリッドしたテンプレートを設計
Hybrid Template
適切なフォーマット自動で探すため、<USER>、<CANDIDATE>、仮想トークン[Pi][Qj]を前に持ってくる
仮想トークン[Mk]は自然言語とMASKで置き換えて、回答予測に利用
[SEP]トークンで結合
連続テンプレートの仮想トークンが選択肢を増やす効果をもたらしつつ、離散テンプレートによって回答の方向性が示されることが期待される
Answer Prediction And Verbalizer
クリック履歴 Hu と候補記事 Dcが与えられたときに、ユーザーが候補記事をクリックするかどうかを反映する
y = 1 or 0 (click or not)
2つの回答単語をラベルにマッピングする
https://gyazo.com/e8f9078c19df5fe403718e52f8b7ec2c
ニュース推薦タスクは穴埋めタスクとして変換され、マスク言語モデルが回答単語の確率を予測する
https://gyazo.com/8b14fe888434a6d3597cedf0dd001ff0
このスコアを推薦リストのランキングスコアとして利用する
本研究では2単語のシンプルな回答単語スペースとしたが、より複雑な回答空間も考えられる
Training
特定のタスクのニューラルモデルの事前学習やファインチューニングと比べ、Prompt4NRでは事前学習済みモデルのパラメータのチューニングだけである
クロスエントロピーロスを利用
https://gyazo.com/d30c0c85906312c545f7d98a2016919d
AdamWとL2正規化を利用
Multi-Prompt Ensembling
テンプレートごとに言語モデルの意味的、言語的な知識の利用の仕方が異なるため、異なる利点がある
それぞれの結果をアンサンブルする
どのテンプレートが優れているかの予備知識はないため、単純に予測確率を合計する
2種類のアンサンブル
同種のテンプレートのアンサンブル(relevance + emotion + action + utility)
異なる種類のテンプレートのアンサンブル: cross-type ensemblingと呼ぶ
EXPERIMENT SETTINGS
Dataset
パブリックなニュース推薦データセット MIND
Microsoft News Platformの2019年10/12〜11/22までのデータ
5%を検証データに
https://gyazo.com/825164a3b1f3cdec2ded6153a2beff96
Parameter Settings
事前学習済み言語モデルには BERT (12 layers, bert-base-uncased) を利用
AdamW optimizerを利用、学習率は 2e-5
8 NVIDIA RTX-A5000 GPUで学習
バッチサイズ16で並列化(バッチサイズ128と同等)
他のベースラインと同じ割合でネガティブサンプリング
直近の50クリックをクリック履歴として利用
クリック履歴の最大タイトル長は10単語まで、候補記事は20単語まで
AUC、MRR、NDCG@5、NDCG@10を評価指標として利用
Baselins
2種類のベースラインを用意
Neural NR models
NPA: アテンションを利用したパーソナライズニュース推薦モデル
LSTUR: 短期と長期興味を利用したモデル
NRMS: multi-head self-attentionを利用したモデル
FIM: 階層的畳み込みネットワークを利用したモデル
BERT-enhanced models
BERTをニュースエンコーダーとして利用。ユーザーエンコーダーはそのまま
NPA, LSTUR, NRMSに対して適用
EXPERIMEN RESULTS
Main Experimen Results
Table3に結果を示す
青文字 & 太字: 全体1位
太字: テンプレート内での1位
下線: テンプレート内での2位
1. BERTを使ったモデルはニューラルモデルより良い性能
ex. BERT-NRMSはNRMSより良い
2. Prompt4NRはどのテンプレートでもBERT-enhancedモデルよりほとんどで良い性能
ニュース推薦タスクをサポートするために事前学習済みのBERTに埋め込まれた知識を利用するPrompt Learningの効果
3. テンプレートでのベストの比較では、Discrete-Utility < Continuous-Utility < Hybrid-Action という順番だった
離散テンプレート内の4つプロンプトでは差はあまりなかったが、連続、ハイブリッドテンプレード内では差が見られた
仮想トークンの影響
4. アンサンブルによって性能が向上
複数のプロンプトをアンサンブルすることでより良い判断ができる
ハイブリッドテンプレートではアンサンブルがrelevance, emotion, utilityよりは良いが、Actionよりは良くなかった
アンサンブルの前提条件として、各プロンプト間の性能差が大きすぎないことがあることを示唆
クロスタイプアンサンブル
Discrete-Utility、Continuous-Utility、Hybrid-Actionの3つを利用
ベストの性能となった
4つのプロンプトのうち、UtilityとActionが良い性能であった
ニュース推薦タスクと直接的に関連のあるプロンプト
RelevanceとEmotionは関連性がダイレクトではない
https://gyazo.com/3ef4014689e563b54e072ca921c2c14b
Hyperparameter Analysis
Prompt4NRの主要なハイパーパラメータとして、仮想トークンの数がある
連続テンプレートのn1, n2, n3
ハイブリッドテンプレートのn1, n2
n1, n2, n3は同じ値としつつ、値を0〜5で変化させて性能を検証
連続テンプレートでもハイブリッドテンプレートでも同じ傾向
n を大きくするにつれて、性能が途中まで上がって、その後下がっていく
仮想トークンが少なすぎると言語モデルがサポートできず、大きすぎると曖昧性が増し効果が落ちる
https://gyazo.com/93084eb35fe2a43fe14581bb563c2812
Impact of PLM
BERTの大きさによってどの程度性能が変わるか
BERT-Tiny (2 layers), BERTSmall (4 layers), BERT-Medium (8 layers) and BERT-Base (12 layers)で比較
大きいほど良い性能に
想定外だったとのこと
性能へのインパクトと運用コストを鑑みてサイズを選ぶ必要がある
https://gyazo.com/14028e372d9db97f5536dd608bab4e8f
異なるPLMだと性能はどうなるか
BERTの他に、RobertaとDeBertaを検証
ともにBERTを改善したLM
Roberta: next sentence predictionを削除、より大きなバッチサイズ、コーパスで学習
DeBerta: アテンションを導入しマスクデコーダーを改善
どちらもBERTより良い性能だった
RoBertaが一番良かった
事前学習のプロセスを改善することで、下層タスクのニュース推薦も改善する
https://gyazo.com/203f553c8c52d4c0178792f1cd4cb27c
Performance of Few-shot Learing
Prompt LearningはいくつかのNLPタスクでは、few-shot でも頑健であるという結果がでている
Prompt4NRでも同様の結果が得られるか検証
学習データをダウンサンプリング
図4
点線はベースラインのメソッド
すべてのモデルでデータが小さくなると、性能も悪化
Prompt4NRがベースラインよりも良い性能
データが少ないときは離散テンプレートが連続テンプレートより良い性能になる
データが少ないと仮想トークンの学習が難しくなるためだと思われる
https://gyazo.com/a5dbf126a0cf7f3dd4ecb5096e3b15ab
Visualization
Prompt4NRでBERTがどのように学習されたかを調査
BERTのアテンションの重みを可視化
BERTは12層と各層に12のHEADがある。最初の層と最後の層を可視化
最初の層ではMASKの周辺にアテンションが集中しているが、最後の層では異なっている
MASK周辺(Head1)
<CANDIDATE>周辺(Head4, Head5, Head9)
<USER>周辺
Head6, Head8は特定のトークン
Head2, Head3, Head7, Head10, Head11は NCLS トークンの周辺
ニュースレベルアテンション
NCLS仮想トークンはクリック履歴のニュースの始まりを意味する
Head0は文中に分散している
最初の層に比べ、最後の層では明確なアテンションポイントが存在
これはPrompt4NRで学習されたBERTがマスク予測や推薦のために有用な情報を識別できていることを示している
https://gyazo.com/9760a4199480d008938a8b2077fb06ec
Case Study
Pormpt4NRの効果をみるためにケーススタディーを実施
Discrete-{Relevance, Emotion, Action, Utility}とDiscrete-Ensemblingで生成したそれぞれのトップ5の推薦リストを提示
39のクリック履歴をもつユーザーU56800に対して60の候補ニュースをランキング
スペースの都合上39記事は載せられないので、カテゴリの分布とワードクラウドを提示
"Meghan, Duchess of Sussex, Prince Harry, Duke of Sussex, Duchess of Cambridge" が頻出
ロイヤルファミリーへの興味があるが、それだけではなく多様
候補ニュースは14カテゴリをカバーしているので、その中から正しい推薦をするのは簡単なタスクではない
5つの推薦リストはすべて実際にユーザーがクリックしたニュースを含んでいる
Discrete-Relevanceは正解が多いが、多様性が低い
Discrete-Emotionはバラバラの5カテゴリのニュースを推薦している(travelが重複している?)
healthカテゴリはクリック履歴には存在しない
Discrete-Actionはロイヤルファミリーが多く2つが正解
Discrete-Utilityはエンタメカテゴリのニュースが多く、2つ正解
これらの結果から、わずかなテンプレートの違いだけで、言語モデルの異なる知識を利用していることがわかる
さらに、Discrete-Ensemblingでは1つのテンプレートと比べwin-winの状況を達成できている
3つの正解であり、ランキングの順位としても改善している
4カテゴリ推薦しており多様性もある
4つのテンプレートでは、ユーザーの興味を完全にはカバーできていない
スポーツ記事(Baker Mayfield quick to condemn teammate Myles Garrett for brawl, attack on Mason Rudolph)をクリックしているが、スポーツ記事を推薦できていない
より洗練されたテンプレートの設計は課題である
https://gyazo.com/582d76037e3bbad1df1e7628847e0148
所感
テンプレートはだいぶシンプルなのに、そこそこの結果がでているのは面白い
Case Studyはだいぶ良いユーザーを取っていそうには見えるけど
全候補に対してやろうとすると、速度的にはかなり厳しそう
リアルタイムな推薦は難しい、カテゴリ分類とかだと使い勝手がよいかも