【論文解説】Large Language Model Simulator for Cold-Start Recommendation

# はじめに

- 出典: WSDM2025

Large Language Model Simulator for Cold-Start Recommendation という、WSDMに提出された論文を紹介します。

- [[2402.09176] Large Language Model Simulator for Cold-Start Recommendation](https://arxiv.org/abs/2402.09176)

この論文は中国の大学とAlibaba Group(おそらくtaobao.com)の研究者が取り組んだ、Cold Start商品推薦の論文です。
# 論文を選んだ動機

E-Commerceサイトでは日々新商品が入荷します。既存の主な推薦手法は、ユーザーの行動ログ（クリックや購入履歴）や商品情報を基にモデルを学習することに重きを置いています。しかし、新商品には行動ログがないため、既存の手法では適切な推薦が難しく、性能が低くなることが知られています。
一方で、新商品であっても購入される可能性は十分にあります。例えば、人気ブランドの新商品（Apple製品など）はログがなくても、多くのユーザーが購入する可能性が高いです。このように新商品を適切に推薦できれば、ユーザーの購買体験をより良くすることができます。
以上の理由から、新商品（Cold Startアイテム）の推薦精度を改善したいと考え、この論文を選びました。
# どんなもの?

- Figure 1 のように、Cold StartとWarm Startの違いは、対象商品をインタラクション(クリックや購入)したユーザーがいるか、いないかである。
- 提案手法は、Cold Itemの推薦に必要なembeddingを取得するために、embeddingに計算が必要なuserの行動ログをシミュレーターで生成する。行動ログがあれば、Warm Start と全く同じその生成した行動ログで一般的な Collaborative Filtering を適用し、embeddingを得ることができる。
- 一般的な Collaborative Filteringとは、NeuMFやNGCF, LightGCNなどを指しており、後述を参照。

![figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/158582ad-e4d5-4531-9fd4-28017d716b69.png)

- 手法の概要はFigure 3 のようになっている。新商品(Cold Item)が追加されるたびに、提案手法: Coupled Funnel ColdLLM でインタラクションしうるユーザーをシミュレーションし、データを作成
- 作成したデータでオンライン学習し、モデルを更新しつつ、Cold Itemのembeddingを作成
- 作成したembeddingを用いて、Collaborative Filtering手法で商品を推薦していく

![figure_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/40d477d7-fabf-45fb-966a-fb366156ee83.png)


# 先行研究と比べてどこがすごい?

## Collaborative Filtering の先行研究

- Collaborative Filteringの先行研究としては、以下が挙がる。
	- NeuMF: [[1708.05031] Neural Collaborative Filtering](https://arxiv.org/abs/1708.05031)
	- NGCF: [[1905.08108] Neural Graph Collaborative Filtering](https://arxiv.org/abs/1905.08108)
	- LightGCN: [[2002.02126] LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation](https://arxiv.org/abs/2002.02126)
- NeuMFは一般的に広く使われるベースラインであり、Matrix FactorizationをNNで高度化した手法である。以下がコード付きでわかりやすく解説している
	- [Neural Collaborative Filtering for Personalized Ranking - Dive into Deep Learning](https://d2l.ai/chapter_recommender-systems/neumf.html)

![neu_mf](https://recbole.io/docs/_images/neumf.png)

- NGCFとLightGCNはそれぞれuser x item間の2部グラフにGNNを適用した手法である。これらは、対象のuser x itemだけでなく、「推薦対象userが他にどのような商品をインタラクションしていたか」や「推薦対象itemは、他にどんなuserからインタラクションされていたか」といったneighborを考慮することができ、NeuMFよりも性能が高いことが分かっている。NGCFはCollaborative Filteringに対して、GNNを始めて適用した手法であり、LightGCNはNGCFの計算を簡略化しつつ性能改善ができる手法である。
- LightGCNは以下の記事がわかりやすい
	- [【論文要約】LightGCN: 推薦システムのためのシンプル化したGCN](https://zenn.dev/kami/articles/ef5970a6553938)

![light_gcn](https://storage.googleapis.com/zenn-user-upload/7e6db3878760-20230515.png)

## Cold-Startの先行研究

- Cold-Startの先行研究の方向性は以下の2つがある
	1. Generative-based Models 
	2. Dropout-based Models
- Generative-based Modelsは、Cold-Start 商品の商品情報(content)から得られたembeddingを、対応するWarm-Start商品のembeddingへ変換する関数(=NN)を学習する手法である。代表的な先行研究は以下の手法が挙がる。
	-  DeepMusic: [Deep content-based music recommendation](https://papers.nips.cc/paper_files/paper/2013/hash/b3ba8f1bee1238a2f37603d90b58898d-Abstract.html)
	- ALDI: [Aligning Distillation For Cold-start Item Recommendation | Proceedings of the 46th International ACM SIGIR Conference on Research and Development in Information Retrieval](https://dl.acm.org/doi/10.1145/3539618.3591732)
- Dropout-based Modelsは、Cold-StartとWarm-Startの両方を一度に学習する手法である。Warm-Startのuserとitemのペアのうち、ランダムにどちらか一方を欠損させ(Dropoutし)、Warm-StartからCold-Startのペアを作成する。完全なペアのembeddingと不完全なペアのembeddingを近づけるように学習する。代表的な先行研究は以下の手法が挙がる。
	- DropoutNet: [DropoutNet: Addressing Cold Start in Recommender Systems](https://papers.nips.cc/paper_files/paper/2017/hash/dbd22ba3bd0df8f385bdac3e9f8be207-Abstract.html)
	- CLCRec: [[2107.05315] Contrastive Learning for Cold-Start Recommendation](https://arxiv.org/abs/2107.05315)
## Cold-Start先行研究よりも提案手法が優れている点

- ただし、Generative-based ModelとDropout-based Modelsの方向性は以下の3つの課題がある。
	1. **Content-behavior gap**: Generative-based Modelで得られるembeddingは商品情報(content)のみから作成される。このembeddingは、ser行動(behavior)から作られるembeddingとは大きな乖離がある。
	2. **Suboptimal cold recommendation performance**: 現在のCold Startモデルは、Warm-Start Item(=商品)に大きな影響を与えることなく、Warm Itemと一緒にCold Itemを推薦することに重点を置いていることが多い。つまり、Cold Start Itemへ対象することで、Warm Start Itemの推薦パフォーマンスを向上させることはあまり考慮されていない。
	3. **Conflation of content-based and behavior-based recommendations**: 既存のコールドスタートモデルは通常、商品情報(content)から作られたembeddingとuser行動(behavior)から作られたembeddingの両方を混ぜ合わせた混合レコメンデーションを行う。

:::note warn
3つめの「Conflation of content-based and behavior-based recommendations」　は正直何が問題のかはよく分かっていないです。contentとbehaviorの2つの情報を使用したほうがより良いモデルができるのでは？と感じています。
:::

- 本論文では、上記課題をLLMを用いたデータシミュレーションで解決する。
- 本論文の貢献は主に以下の3つである
	1.  behaviorシミュレーション問題を定義し、Cold-Start 推薦問題に根本的に対処する新しいLLMシミュレータフレームワークを提示した。
	2. シミュレーション専用の学習方法を提案した
	3. 大規模なオフライン実験を行い、先行研究よりもCold-Start推薦で21.69%の改善を確認した。また、データをシミュレーションすることで学習データが増え、それによりWarm-Startの性能も改善することを確認した。また2週間のABテストで、実際のECサイトにおいて先行研究手法よりも性能が良いことを示した。

# 技術や手法のキモはどこ?

## 概要

- 新商品が追加されるたびに、提案手法(Coupled Funnel ColdLLM) でユーザー行動シミュレーションデータを作成する。提案手法はCold-Start商品に対して直接データを作成することで、Cold-Start問題を解消する。提案手法のキモはCoupled Funnel ColdLLMである。

![figure_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/40d477d7-fabf-45fb-966a-fb366156ee83.png)

- Coupled Funnel ColdLMはFigure2のように2つのパートに分かれる。Filtering SimulationとRefining Simulationである。

![figure_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/477d64e8-c257-4809-aa0e-9ee6e7ac891e.png)

## Filtering Simulation

- Filtering Simulationでは、全ユーザーから対象Cold-Start商品をインタラクションしそうなユーザー: K人(数十から数百程度)に絞る。
- まず、Cold-Start商品のコンテンツ（商品名やカテゴリなど）からembeddingを式(5)のように作成する。$LLM_{emb}$ はLLMを用いたembedding抽出関数であり、$c_i$ はコンテンツ情報である。得られたembeddingを下に $\mathcal{F}_I$ でuser embeddingと同じ空間に写像する。
- $LLM_{emb}$は式(6)のようになり、コンテンツ情報の$j$番目のトークンに対するLLMの$L$ 番目の出力ベクトル $\mathcal{E}^{(L)}(c_i)[j]$  を取得し、全トークンの平均プーリングをコンテンツ情報のLLMベクトルとしている。

![eq_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/121c5647-e5fb-44b9-8972-2116029fa6ca.png)

![eq_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/352c222c-fd3e-4137-80be-f449989de63b.png)


- また、user embeddingは $\mathcal{F}_{\mathcal{U}}(\boldsymbol{e}_u | \boldsymbol{C}_u)$  で取得し、userのインタラクションした商品コンテンツ群 ($\boldsymbol{C}_u$) を下にユーザーベクトルを取得している。
- Cold-Start item embeddingとuser embeddingを取得したあとは、Cold-Start itemに興味があるユーザーK人をベクトル検索で取得し、全ユーザーから対象Cold-Start商品をインタラクションしそうなユーザー: K人に絞る。

![eq_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/655947be-8390-4878-a023-e7bbc67b516d.png)

:::note warn
$\mathcal{F}_I, \mathcal{F}_U$ はおそらくNNで作成された変換関数だと思われる
:::

## Refining Simulation

- Refining Simulationでは、絞られたユーザーに関する情報とCold-Start Itemの情報を与えて、LLMでユーザーがインタラクションするのかどうかを判定させ、更にユーザーを絞り込む。

- ユーザーに関する情報として、ユーザーが過去にインタラクションした商品情報を使うが、対象Cold-Start Itemと無関係な商品まで与えるとノイズになってしまうため、item embeddingを用いて、以下のようにフィルタリングする

![eq_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/9b624fc0-e32c-4981-8688-4e5229018956.png)


- その後、得られた商品群 $C_u^{(f)}$ とCold-Start item $c_i$ それぞれのコンテンツ情報を以下のプロンプトに入れ、LLMにuser $u$ が商品 $i$ をインタラクションするかどうかを予測させる。

![prompt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/49c52bc7-c1fd-45e1-8795-672161af10af.png)

- そして、最終的にLLMがYesと答えたユーザーのみを、Cold-Start Itemをインタラクションするユーザー群 $s_i^{(r)}$ とする。このユーザー群をもとに一般的なCollaborative Filteringモデルで学習し、Cold-Start itemに対応するベクトルを作成する。

![eq_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/7ed64b2a-56a3-4e1d-b8e4-3ba3d278f008.png)

![eq_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/dbf74e9d-7f87-4b7d-b3e8-046202086459.png)

##  Simulator Training
- LLMを学習させるときは、パラメータすべてではなく、Low-Rank Adaptation (LoRA)を用いて、追加学習を容易にした。
- 具体的には、以下のように、TransformerのAttention部分$Q, K, V$とFFN部分についてLoRAを適用した。ここで、$W_{Q}, W_{K}, W_{V} \in \mathbb{R}^{d \times g}$ それぞれはLLMのもとの重みであり、 $\Delta W_{Q}, \Delta W_{K}, \Delta W_{V}$ は追加の重みである。$\Delta W$は、$BA$ に分解でき、$B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times g}$ であり、もとの重みを低ランク近似したものです。そのため、追加のパラメータ数は非常に少なくできる。

![eq_12_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/8184ecdb-8697-4596-a160-d09950524cc4.png)

![eq_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/7e5df890-3a86-47d1-bfc6-cf17881f98e8.png)

- 以下の2つのロス  $L_{BPR}, L_{coupled}$ を組み合わせたロスで学習する。
- $L_{BPR}$ は userとitemのそれぞれのembeddingの内積で推定したscoreをもとにしたpair-wiseロスである。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/68a4409f-c21e-4cfc-a9f2-a68a30270ca0.png)

- で推定したscoreをもとにしたpair-wiseロスである。
- $L_{coupled}$　は、上記のscoreとLLMが判定したYes/NoをもとにしたBCEである。
- これらを同時に最適化することで、embeddingを作成する関数 $\mathcal{F}_I, \mathcal{F}_U$  と LLMを同時に学習する。

![eq_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/661000c5-9373-43ef-a1d1-6a483624f404.png)

![eq_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/f5c0d4da-1805-4da6-898a-f2f613c65a1e.png)

# どうやって有効だと検証した?

- 以下のResearch Questionに対する検証を行った。
	- **RQ1**: Does ColdLLM outperform contemporary state-of-the-art cold-start recommendation models in overall, warm, and cold recommendations?
	- **RQ2**: What is the effect of different components in ColdLLM?
	- **RQ3**: How do key hyperparameters impact the performance of ColdLLM?
	- **RQ4**: How does ColdLLM perform in real-world industrial recommendations?
- 上記RQを検証するため、Offline ExperimentとOnline Experimentを行った
- Offline Experiment
	- 以下2つのデータセットにおいて先行研究との性能を比較し、提案手法 ColdLLM が最も性能が良いことを把握した。
		- CiteULike
		- MovieLens
	- RQの1 - 3までを検証した
- Online Experiment
	- ECサイトに実際に提案手法とベースライン手法の推薦結果を表示し、ABテストで性能を確認した。
	- RQの4を検証した
## Offline Experiment
### データセット
- 以下2つのデータセットを使用
	- CiteULike1:  5,551 users, 16,980 articles, 204,986
	インタラクション
	- MovieLens2: 6,040 users, 3,883 items, 1,000,210 インタラクション
- 全商品のうち、20%をcold-start itemとし、さらに、それらitemに対するインタラクションを1:1でcold-start の validationとtestに分割する。残りの80%の商品を8:1:1でtraining, validation, testに分割した。
### 比較手法
- Cold-Startのベースライン手法として、Dropout-basedとGenerative-basedの手法を取り上げる。更に、提案手法と同じ方針のUser Behaviorをシミュレーションする手法も取り上げる。具体的には以下の通りである。
	1. Dropout-based embedding simulation models:
		- DropoutNet
		- MTPR
		- CLCRec
	2. Generative-based embedding simulation models
		- DeepMusic
		- MetaEmb
		- GNP
		- GAR
		- ALDI
	3. User behavior simulation models
		- UCC
		- MIGCN
- Cold-Startの裏側で使われるCollaborative Filteringのbackborn手法としては、以下の3つを取り上げ、backborn手法によらず性能が改善するかを検証する
	- MF
	- NGCF
	- LightGCN
### 実装詳細
- Filtering Simulation部分について。itemやuserのembeddingを作成するfiltering部分は、batch sizeを128とし、AdamWで学習率を$1 \times 10^{-5}$ を用いた。またフィルタリングするTop-Kは20とした。
- Refining Simulationでは学習率を $5 \times 10^{-5}$ とした。
- また、全Backbornモデルについては、embeddingの次元数を200とし、Adamを用いて、学習率を$1 \times 10^{-3}$ とした。またearly stoppingでvalidationに対するNDCGが下がったところで学習を止めた。
### 実験結果
#### Main Results (RQ1)
- 実験結果は以下の通りである。Overall RecommendationはCold-StartとWarm-Startの合わせた全商品の性能を表し、Cold RecommendationはCold-Startの商品のみの性能を、Warm RecommendationはWarm-Startのみの性能を表す
- 提案手法 ColdLLMは、LightGCNを用いたとき、どのデータセットでもoverallとcoldどちらもNDCGが 平均して10.79% - 37.10% まで改善している。
- generative-based手法はdropout-based手法よりも、overallとwarmそれぞれにおいて性能が上回っている。しかし、coldにおいては同じような性能を示している。このことから、generative-basedでは、user behaviorから作成したwarm embeddingと、商品コンテンツのみから作成したcold embeddingの間に性能乖離があることがわかる。これは同じembedding layerでwarmとcoldのembeddingを作成することが難しいことを示している
- 既存のBehavior-simulation basedの手法は、overallとwarmで良い性能を出しているが、coldでは性能が一段落ちてしまう。原因としては、商品content情報のみをもとにDNNでbehavior ログをシミュレーションしていることが可能性として挙げられる。提案手法では、LLMを用いることでLLMが獲得したknowledgeを活用できた結果、そのようなことが起こっていないと考えられる。

![table_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/bd87d6e9-1a13-432b-8430-af153d998811.png)


#### Ablation Study (RQ2)
- ColdLLMのどのモジュールが性能に寄与したのかのAblation Studyを行った
	- **w/o LSF & R**:  coupled ColdLLM filtering($LLM_{emb}$) と Refine Simulationを除外したもの
	- **w/o BF & R**:  behavior filtering module($\mathcal{F}_I, \mathcal{F}_U$) と refining simulationを除外したもの
	- **w/o LSF**:  coupled ColdLLM filtering($LLM_{emb}$) をskipしたもの
	- **w/o BF**: behavior filtering module($\mathcal{F}_I, \mathcal{F}_U$) をskipしたもの
	- **w/o R**:  refining simulationをskipしたもの
- 結果はFigure 4の通りである。この結果から以下のことがわかる
	- w/o LSF と w/o BFは、ColdLLMと比べて大きく性能が落ちていることから、Filtering Simulationの重要性がわかる。さらに、w/o LSFのほうが性能が悪化していることからLLMのknowledgeを活用することがより重要とわかる
	- また、w/o Rの性能から、Refining simulationの重要性もわかる。さらに、w/o LSF & R & w/o BF & R と、w/o LSF & w/o BF を比べると、Refining simulationがなくなることで著しく性能が悪化していることからもRefining simulationと組み合わせて使用することの重要性がわかる。

![figure_4_table_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/ce7f9431-0db3-40c1-ac72-518997e44131.png)



#### Parameter Study (RQ3)
- Filtering Simulationにおける $K$ とBackbornの学習率のチューニング結果を示す。
- $K$ は、OverallとWarmの場合は比較的小さい値10程度で最高値になっている。対して、Coldではより大きい50くらいが最適である。ただし、それ以上数を多くした場合、興味のないユーザーがノイズとしてまじり、性能が悪化する。
- 学習率はどのタスクでも同じような値が最適であり、タスクに依存しないことがわかる

![figure_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/0aa08fce-73f3-48f3-a7a1-22242cbeda5b.png)


## Online Evaluation (RQ4)
- 大規模なECサイト(おそらくtaobao.com?)において、2週間のABテストを行った。
- A/Bそれぞれにおいて全userの5%ずつを割り当て、性能を比較した。
- 比較した手法は以下の3つである
	- Random
	- MetaEmb
	- ALDI
- 評価指標は、以下の3つを採用した。ここで、cold期間とは、商品が公開されてから2時間の期間である。
	- **Cold-PV(Page View数)**: cold期間のユーザーのクリック数
	- **Cold-PCTR**: cold期間のクリック率
	- **Cold-GMV**: cold期間の売上
- 結果はTable 3の通りである。どの手法と比較しても大きく性能が改善している。さらに、Cold-GMVを見ると今回の手法が大きなビジネスインパクトを与えていることがわかる。

![table_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200359/7406c08d-9cfe-447f-ab7d-80abbb5c51fb.png)


# 議論はある?

- 今回の手法が想定しているECサイトは毎時間新しい商品が採用される状況である。そのようなplatformではより早くcold-start 商品を適切に推薦する価値があるため、オンラインでembeddingを計算している。しかし、現実的にはオフラインでバッチ処理により日次でembeddingを計算しても良いだろう。
- この手法はLLMとしてLLaMA-7Bを採用している。毎時間8,640個の新商品を処理するため、A100を合計24枚使用して並列計算している。LLaMA-7Bは単精度であれば、12.34 Gで済むので、LLM自体は現実的なものに思える。
# 次読むべき論文は?

- ALDI: [Aligning Distillation For Cold-start Item Recommendation | Proceedings of the 46th International ACM SIGIR Conference on Research and Development in Information Retrieval](https://dl.acm.org/doi/10.1145/3539618.3591732)
	- これは先行研究として取り上げられていた、generative-basedモデルである。
	- ここで取り上げていた aligning lossは本手法でも補助ロスとして導入していたので興味がある。
- LoRA: [GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models"](https://github.com/microsoft/LoRA)
	- LoRAは広く使われるFine-tuning手法であり、上記のようにライブラリもあるので一度学んでおくと、今後色々な場所で活用できそう。
# まとめ

本記事では、ColdLLMと呼ばれる、LLM（LLaMA-7B）を活用したCold-Start推薦手法について紹介しました。
ColdLLMの大きな特徴は、Cold-Startアイテムに対して直接embeddingを生成するのではなく、ユーザーの行動ログそのものをシミュレーションによって生成する点にあります。これにより、まるでWarm-Startアイテムのように、生成した行動データを用いてembeddingを作成することが可能になります。
さらに、シミュレーションによって作成されるデータの精度が高いため、単なる補完ではなく、質の高いデータ拡張として機能します。その結果、Cold-Startの推薦精度が大きく向上するだけでなく、データのスケール則に従い、Warm-Startの商品に対する推薦性能まで改善されるというメリットもあります。
実際に行われたオフライン・オンライン両方の実験においても、ColdLLMは従来手法と比較して大幅な性能向上を達成しています。