Share
Embed
【情報科学若手の会 2023秋 軽井沢】大規模言語モデル(BERT)を用いたニュース推薦のPyTorchによる実装と評価
このセッションでは言語モデルの実応用の一例として大規模言語モデル(BERT)を用いたニュース推薦に関する内容を発表します。ニュース推薦分野において高い性能を出すことで知られるNRMS(BERT)というモデルをPyTorchで実装し、nDCGやMRRといった指標で評価を行いました。モデルの学習には、Microsoft Newsの行動ログとニュースデータから構築されたMINDというデータ
セットを用いています。
なお、本発表に関連するコードと学習済みモデルはGithubに一般公開済みです: https://github.com/YadaYuki/news-recommendation-llm
Yuki Yada
October 08, 2023
Transcript
30 slides
-
所属 🤗 • 早稲田大学 M2 山名研究室所属 • ML Engineer Internship
at Gen AI/LLM (来春入社予定) 興味領域 💕 • 最近は言語モデルの応用 • 元々、Webフロント好きだったが、なんか気づいたらMLerに。 • 緩〜く車輪の再発明するのも好き ◦ 自作コンパイラ: YadaYuki/nand2tetris-golang ◦ 自作検索エンジン: YadaYuki/omochi ◦ 自作Transformer: YadaYuki/en_ja_translator_pytorch ◦ 自作ニューラルネット (written in Go/TypeScript): YadaYuki/deeplearning-golang , YadaYuki/neural_net_typescript 矢田宙生 @arr0w_swe yyada.jp -
TL;DR TL;DR • ChatGPTをはじめ、大規模言語モデルの社会実装は急速に進んでいる . → Embedding(テキストや単語の意味合いを表現したベクトル)を活用した推薦・検索分 野も同様 。 •
PyTorchを使って、大規模言語モデル(BERT)を用いたニュース推薦の実装・評価を行っ た。 • 実装したのNRMS(BERT)[1,2]というAttention機構を用いた手法. • Microsoft News Dataset (MIND-small)というMS発のデータセットを使って、V100 GPU で学習・評価 → 論文と比較し、小規模なデータセットではあったが、論文記載の結果と近く、高い性能 が得られた。 • コードと学習済みモデルは一般公開済み: yadayuki/news-recommendation-llm -
• 近年、LLMの大躍進でChatGPTをはじめ、様々な社会実装が進んでいる。 → LLMから得られるEmbedding (単語や文章情報を表現したベクトル)を 活用した推薦・検索システムも。 ◦ RAG(Retrieval Augmented Generation,
検索拡張生成)とか • (ChatGPT以前から、)ニュース推薦システムへの言語モデル応用は進ん でいる。 ◦ Microsoft News ◦ Yahoo News ◦ Smart News 実装の背景 -
• 2021年、Microsoft の研究者らによって提案・検証がされた深層学習ベースな ニュース推薦の手法 • ニュースベクトルとユーザベクトルの獲得に言語モデル(BERT)を用いて、網羅的に 検証・評価を行った。 • MIND(Microsoft News
Dataset)[4] を用いたオフライン評価でその時点での一番 高い性能を記録。 • 言語モデルを活用したニュース推薦を実際にMicrosoft Newsにリリース PLM-NR[1]: 大規模言語モデル(BERT)を用いたニュース推薦手法 -
• 2021年、Microsoft の研究者らによって提案・検証がされた深層学習ベースな ニュース推薦の手法 • ニュースベクトルとユーザベクトルの獲得に言語モデル(BERT)を用いて、網羅的に 検証・評価を行った。 • MIND(Microsoft News
Dataset)[4] を用いたオフライン評価でその時点での一番 高い性能を記録。 • 言語モデルを活用したニュース推薦を実際にMicrosoft Newsにリリース → クリック率が10.68%, ページビュー率が6.04%向上した PLM-NR[1]: 大規模言語モデル(BERT)を用いたニュース推薦手法 -
• ニュースベクトル h: ニュースのタイトルやカテゴリ情報から、ニュー ス記事の内容をベクトルで数値的に表現 • ユーザベクトル u: 過去にそのユーザが読んだ記事のリストか ら、ユーザの興味・嗜好をベクトルで数値的に
表現 • h と u の類似度: ユーザuが記事hを嗜好する度合い. 類似度が高いほど、ユーザが記事 hを好む傾 向にある ( ~= クリック率 y ) 深層学習を用いたニュース推薦(概要) * [1]から引用 -
1. News Encoder: ニュース記事のコンテンツ情報をベクトルh に変換する. 2. User Encoder: 過去にユーザが読んだニュース記事から、 ユーザの嗜好をベクトルuに変換する
3. Click Predictor: ニュースベクトルuとユーザベクトルhの内積 (類似度)を計算しクリック率を予測 深層学習を用いたニュース推薦(概要) * [1]から引用 -
• News Encoder: ニュースDのタイトルテキスト(title)をBERT + Attention機構でベクトルh に変換。 • Encoding Process(ベクトル化):
1. ニュースのタイトルをBERTに入力 2. 1.からの出力をMultihead Attentionに 入力 3. 2からの出力をAdditive Attentionで 加重平均 → ベクトルhに集約 News Encoder -
• User Encoder: ユーザが過去に読んだ記事T本をNews Encoderでベクトル化し、Attention機構 でベクトルu に集約する。 • Encoding Process(ベクトル化):
1. ユーザが直近で読んだ記事T本を News Encoderでベクトル化(h) 2. 1.からの出力をMultihead Attention に入力 3. 2からの出力をAdditive Attentionで 加重平均 → ベクトルuに集約 User Encoder -
Click Predictor • Click Predictor: News Encoderでベクトル化された推薦候補となるN本の記事リスト(h 1 ~ h
N )と User Encoderでベクトル化されたユーザベクトルuの内積を計算 -
Click Predictor • Click Predictor: News Encoderでベクトル化された推薦候補となるN本の記事リスト(h 1 ~ h
N )と User Encoderでベクトル化されたユーザベクトルuの内積を計算 → 推薦候補となる各記事のクリック率(y 1 ~ y N )を予測. 推薦時は、y 1 ~ y N の高 い順にユーザに推薦していく. -
• Microsoft Newsの実際の行動ログ・ニュースデータを収集することにより作成さ れたデータセット ◦ 約16万件の英文ニュース記事データ ◦ 約100万のユーザから収集された1500万件以上の行動ログ → 公開されて以降、多くのニュース推薦研究で活用されている
[3] • 行動ログにはユーザが各ニュース記事をクリックしたか、どうか 、が 格納されてい る • MINDにはユーザ数を50,000人分のみに限定したsmallサイズのデータセットも存 在: MIND-small ( 今回はこちらを使用 ) MIND: Microsoft News Dataset [4] -
実装・訓練環境 • 事前学習済みのBERT-base[5], DistilBERT-base[6]を用いて検証 • 技術スタック: PyTorch, transformers • Pythonの仮想環境作成にRyeを使用
• GCPのV100(GPU)インスタンス上で学習: ◦ gradient accumulationでメモリ量の制 約を回避 -
Model AUC MRR nDCG@5 nDCG@10 Random 0.5 0.201 0.203 0.267
DistilBERT-base 0.674 0.297 0.322 0.387 BERT-base 0.689 0.306 0.336 0.400 PLM-NR[1](参考) 0.695 0.347 0.380 0.437 評価結果 -
4. まとめ • 大規模言語モデルを用いたニュース推薦をPyTorchにより実装・訓練・評価を行っ た • データセットにはニュース推薦分野で頻繁に用いられるMicrosoft News Dataset を使用。評価の結果、先行研究に近い性能が得られた。
• コードと学習済みモデルは一般公開: yadayuki/news-recommendation-llm • 直近の国際会議では、ニュース推薦のためのPrompt LearningやGPT系モデルを 応用した事例も増えている[7,8] ( 今後はそちらが主流になるかも? ) → ニュース推薦をはじめとした推薦分野へのLLM応用は今後ますます発展してい くことが期待される! -
[1] "Empowering News Recommendation with Pre-Trained Language Models." Wu, C.,
Wu, F., Qi, T., & Huang, Y. https://doi.org/10.1145/3404835.3463069 [2] "Neural News Recommendation with Multi-Head Self-Attention" Wu, C., Wu, F., Ge, S., Qi, T., Huang, Y., & Xie, X. https://doi.org/10.18653/v1/D19-1671 [3] "Personalized News Recommendation: A Survey." Wu, C., Wu, F., & Huang, Y. https://arxiv.org/abs/2106.08934. [4] "MIND: A Large-scale Dataset for News Recommendation" Wu, F., Qiao, Y., Chen, J.-H., Wu, C., Qi, T., Lian, J., Liu, D., Xie, X., Gao, J., Wu, W., & Zhou, M. https://aclanthology.org/2020.acl-main.331 [5] "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. https://aclanthology.org/N19-1423 [6] "DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter" Sanh, V., Debut, L., Chaumond, J., & Wolf, T. https://arxiv.org/abs/1910.01108 [7] "Prompt Learning for News Recommendation" Zhang, Z., & Wang, B. arXiv preprint arXiv:2304.05263 [8] "ONCE: Boosting Content-based Recommendation with Both Open- and Closed-source Large Language Models." Liu, Q., Chen, N., Sakai, T., & Wu, X.-M. arXiv:2305.06566. 参考文献 -
ネガティブサンプリング • ニュース推薦モデル(クリック率の予測モデル)の学習時、ニュースをクリックした (=1), クリックしなかった(=0)の2値分類ではない。 → ネガティブサンプリングで多値分類として訓練. • ネガティブサンプリングでは、 ◦
ユーザがクリックしたニュース1本(正例,label=1) ◦ ユーザがクリックしなかったニュースK本(負例,label=0) の(1 + K)クラスの多値分類として学習を行う. • 今回はK=4の5値分類としてモデルの学習を行った。 -
MINDにおけるニュース記事 (news.tsv) カラム名 説明 具体例 Impression ID インプレッションのID 123 User
ID ユーザーの匿名ID U131 Time インプレッションの時間。形式は “MM/DD/YYYY HH:MM:SS AM/PM” 11/13/2019 8:36:57 AM History このインプレッションの前のユーザーの ニュースクリック履歴(クリックされたニュー スのIDリスト) N11 N21 N103 Impressions このインプレッションで表示されたニュース のリストと、それらのニュースに対するユー ザーのクリック行動(1はクリック、0は非ク リック) N4-1 N34-1 N156-0 N207-0 N198-0 -
MINDにおけるユーザログ (behavior.tsv) カラム名 説明 具体例 News ID ニュースのID N37378 Category
カテゴリ sports Subcategory サブカテゴリ golf Title タイトル PGA Tour winners Abstract 要約 A gallery of recent winners on the PGA Tour. URL URL - Title Entities このニュースのタイトルに含まれるエンティ ティ - Abstract Entities このニュースの要約に含まれるエンティティ - -
ハイパーパラメータ・訓練時間・学習済みモデル Model epoch Learning Rate batch size K(npratio) history size
Trained Model Time to Train DistilBERT 3 1E-04 128 4 50 Google Drive 15.0h BERT 3 1E-04 128 4 50 Google Drive 28.5h