Recformerによるシーケンシャルレコメンデーションの解説
Text Is All You Need: Learning Language Representations for Sequential Recommendation
― Recformer による新たなシーケンシャルレコメンデーションの詳細解説
本記事では、KDD ’23 で発表された論文
"Text Is All You Need: Learning Language Representations for Sequential Recommendation"
に基づき、従来のアイテム ID 依存型シーケンシャルレコメンデーションの課題と、それを克服するために提案された新手法 Recformer について解説します。
1. はじめに
従来のシーケンシャルレコメンデーションでは、ユーザーの行動履歴から次に好むアイテムを予測する際、各アイテムを固有の ID として扱い、ID 埋め込みによって表現を学習していました。しかし、ID に依存する手法では、学習時に登場しなかった新規アイテム(cold-start)や、異なるドメイン間での知識転移が難しいという問題がありました。
本論文では、アイテムの属性(例:タイトル、ブランド、色など)を自然言語テキストとして扱い、それをひとつの「文」としてフラット化することで、自然言語処理の豊富な知識を活用しながらレコメンデーションを行う新手法 Recformer を提案しています。
2. 背景と問題設定
2.1 従来手法とその課題
従来のシーケンシャルレコメンデーション手法は、大きく以下の3種類に分けられます。
-
ID-Only 手法
例:GRU4Rec、SASRec、BERT4Rec
ユーザーのアイテムIDシーケンスを直接モデル化しますが、訓練データに含まれない新規アイテムへの対応(cold-start)が困難です。 -
ID とテキストの併用手法
例:FDSA、S3-Rec
アイテムIDに加えて、タイトルや説明文などのテキスト情報を利用しますが、テキストはあくまで補助的な情報として扱われるため、統一的な表現の学習が難しいです。もう少し具体的に...
- 一貫性のある統合表現の難しさ
問題の本質:
アイテムIDは、各アイテムに固有の番号やコードとして扱われ、ユーザーの行動履歴からパターンを学習するために利用されます。一方、テキストはタイトルや説明文などの補助情報ですが、これらは自然言語であり、語彙や表現が多様です。
具体例:
例えば、映画推薦システムで映画のIDが「12345」として与えられており、補助情報として「感動的なストーリーと見事な演技」があるとします。モデルは主にID「12345」からユーザーの好みを学習しますが、このIDには直接意味がないため、同じ映画でも新たな説明文(例えば、リメイク版や追加情報が含まれる場合)との整合性を取るのが難しくなります。つまり、IDから学んだ表現とテキストから得られる意味的な情報とを統一的に扱うことが難しいのです。 - コールドスタート問題
問題の本質:
コールドスタートとは、新規アイテムがシステムに追加された際に、そのアイテムのIDは過去のデータに存在しないため、十分な学習ができず、推薦精度が低下する問題です。
具体例:
あるECサイトで、新商品の「最新型スマートフォン」が発売されたとします。既存のモデルでは、長い期間の取引履歴からIDに対して効果的な表現が学習されています。しかし、新商品のIDは未知のため、履歴がなく、テキスト情報(商品名、仕様、説明文など)に頼らざるを得ません。もしテキストがあくまで補助情報にとどまっていると、新商品の推薦が難しくなります。 - 異なるドメイン間での知識転移の難しさ
問題の本質:
モデルがある特定のドメイン(例えば、家電製品)で学習したIDとテキストの統合表現は、他のドメイン(例えば、ファッションアイテム)にそのまま転用すると、テキスト表現の特徴や用語が大きく異なるため、十分に機能しないことがあります。
具体例:
家電製品の推薦システムでは、「解像度」「スペック」「ブランド」といったテキスト特徴が重要視され、IDもその環境に最適化されています。しかし、ファッションアイテムの場合、重要な情報は「デザイン」「素材」「トレンド」といった異なる語彙になります。IDに依存した表現では、これらの異なるドメイン固有の意味を十分に捉えられず、知識転移がうまくいかない可能性が高いです。 - モデルの学習効率と表現力のギャップ
問題の本質:
IDは学習効率が高く、シンプルな離散値として扱えますが、意味情報はほとんど含まれません。一方、テキストは豊富な意味を持っていますが、言語モデルとして十分に活用するためには、膨大なデータと計算資源が必要です。
具体例:
あるオンライン小売店で、過去の購買履歴からIDを中心に学習した場合、頻繁に購入されるアイテムのパターンは捉えられるものの、新しく追加された商品の詳細な説明文の意味まで学習できず、ユーザーの潜在的なニーズ(たとえば、特定のデザインや雰囲気に対する嗜好)を反映しにくい状況が生じます。
- 一貫性のある統合表現の難しさ
-
Text-Only 手法
例:ZESRec、UniSRec
アイテムを全てテキストから表現します。大規模言語モデルの知識を活用できる一方で、一般的な自然言語コーパスで学習された表現と、アイテム特有の情報とのギャップが問題となる場合があります。もう少し具体的に...
一般的な言語モデルとアイテム固有情報のギャップ:
事前学習済みの言語モデルは、主にWikipediaやニュース記事などの一般的なコーパスで学習されているため、日常的な言葉の意味や文脈はよく捉えます。しかし、特定のドメイン固有の知識や細かな属性情報については十分にカバーされていない場合があります。具体例 1:
ファッションアイテムの場合、例えば「クラシックなレザージャケット」という商品説明があったとします。一般的な言語モデルは「レザー」や「ジャケット」という単語の意味は理解できますが、ブランド固有のカッティング、季節感、流行の要素など、ファッション業界特有のニュアンスを十分に反映できない可能性があります。つまり、「クラシック」という表現が、実際のスタイルや品質をどの程度反映しているかを捉えにくいという問題があります。具体例 2:
電子製品の推薦の場合、「最新の5Gスマートフォン」というテキストから、5G通信や画質、プロセッサ性能などの重要な技術的特徴を抽出する必要があります。一般的な言語モデルは「スマートフォン」という概念や「5G」の意味は理解できても、特定ブランドの技術的優位性や細かな製品スペックの違い(例:Snapdragon vs. Exynosなど)を十分に学習していないと、似たような製品間での微妙な差異を反映しにくくなります。
2.2 自然言語を用いたアイテム表現のアプローチ
本論文では、各アイテム
ここで、
という「アイテム文」として扱います。この手法により、アイテムは自然言語として一元的に表現され、cold-start や異なるドメイン間での知識転移が容易となります。
Figure 1:
この図は、従来の単一のアイテムID系列と、各アイテムが「キー・バリュー属性ペア」からなるテキスト(アイテム文)として表現される方式の違いを示しています。左側では単一の ID 列、右側では「Title」「Brand」「Color」など複数の属性が並んだテキスト情報を確認でき、Recformer の入力データの根幹をなす部分です。
Figure 2:
各アイテムの属性辞書を「キー・バリュー」ペアとしてフラット化し、アイテム文に変換するプロセスを示しています。例えば、アイテム「2020 MacBook Air」は、「Title: 2020 MacBook Air」「Brand: Apple」「Color: Gold」といった情報が連なり、ひとつの文として表現される様子が描かれています。これにより、各アイテムの多様な属性が統一的に扱われる基盤が構築されます。
3. Recformer の設計とアーキテクチャ
Recformer は、ユーザーの行動シーケンスとアイテムのテキスト情報を統合的に扱い、Transformer ベースのエンコーディングで表現を学習するモデルです。以下、その詳細な設計と各プロセスについて解説します。
3.1 入力データの構造と前処理
ユーザーのインタラクションシーケンス
[CLS]トークンは、入力シーケンスの先頭に固定的に配置され、自己注意機構を通じてシーケンス全体の情報を集約します。
なぜシーケンス全体の情報を集約できるのか...?
1. 固定位置による一貫性:
[CLS]トークンは常にシーケンスの先頭に配置されるため、モデルはこのトークンを「全体の要約」として扱うよう学習します。位置エンベディングによって、先頭という固定位置の情報が与えられ、後続のトークンがどのような順序にあっても、[CLS]は常にグローバルな代表情報を受け取るようになります。
2. 自己注意機構の特性:
Transformerの自己注意機構は、各トークンが他のすべてのトークンと情報をやり取りする仕組みです。このとき、[CLS]トークンは全てのトークンから情報が送られてくるため、シーケンス内の局所的な情報から全体の文脈まで、幅広い情報を集約できます。
3. グローバル・アテンションの効果:
Longformerは、各トークンが固定サイズの近傍(例えば±64トークン)に対してのみ注意を計算する「ローカルウィンドウ注意」を採用しています。これにより、全体の計算量を大幅に削減し、長いシーケンスでも効率的に処理できます。
一方、[CLS]トークンはグローバルアテンションを受けるように設計されています。これは、[CLS]がシーケンス中のすべてのトークンから情報を直接受け取れるという意味で、局所的なウィンドウ制限を受けないため、全体の文脈をより効果的に反映できるという利点があります。
[CLS]トークンに近い位置に配置されたほうが自己注意機構によってより直接的に参照されやすくなる?なぜ...?
Transformerは各トークンに位置埋め込みを加えるため、[CLS]トークンとその直後にあるトークンは、位置情報の面で密接な関係にあります。これにより、学習中に「先頭にあるトークンは重要な要約情報を持つ」というパターンが強化され、[CLS]は直後のトークンの情報(=直近のアイテム)をより強く反映するようになります。
3.2 埋め込み層 (Embedding Layer) の詳細
Recformer では、入力された各トークンに対して4種類の埋め込みを適用します。
-
トークン埋め込み
A - 単語ごとに語彙サイズ
と埋め込み次元V_w の行列d からベクトル化されます。A
- 単語ごとに語彙サイズ
-
トークン位置埋め込み
B - 単語のシーケンス内の位置情報を表現するため、各位置
に対してi を割り当てます。B_i \in \mathbb{R}^{d}
- 単語のシーケンス内の位置情報を表現するため、各位置
-
トークンタイプ埋め込み
C - 各トークンが [CLS]、属性キー、または属性値のどれに属するかを示すため、3種類の埋め込み
を利用します。C_{[CLS]},\, C_{\text{Key}},\, C_{\text{Value}}
- 各トークンが [CLS]、属性キー、または属性値のどれに属するかを示すため、3種類の埋め込み
-
アイテム位置埋め込み
D - ユーザーシーケンス内の各アイテムの順序情報を反映するために、各アイテムに対して
を付与します。D_k \in \mathbb{R}^{d}
- ユーザーシーケンス内の各アイテムの順序情報を反映するために、各アイテムに対して
これらの埋め込みは和として合成され、Layer Normalization により安定化されます。
最終的な入力系列は、
となり、これがエンコーダに入力されます。
3.3 エンコーダ部分:Longformer の採用
長大なシーケンスを効率的に処理するため、Recformer は Longformer に基づく双方向 Transformer を採用しています。Longformer は、局所的なウィンドウ付き注意機構を活用し、従来の Transformer よりも計算効率を向上させます。入力系列
3.4 次アイテム予測の仕組みと数式の解説
Recformer は、ユーザーシーケンスの表現
まず、コサイン類似度は以下のように計算されます。
ここで、
4. 学習フレームワークと事前学習
Recformer の学習は、2つの主要フェーズで構成されます。まずは、広範なデータで自然言語理解とレコメンデーションの両面を学習する 事前学習 (Pre-training)、次に、下流タスクに特化する 2段階ファインチューニング (Two-Stage Finetuning) です。
4.1 事前学習 (Pre-training) のタスク
事前学習では、主に以下の2つのタスクを同時に最適化します。
マスク付き言語モデル (Masked Language Modeling)
MLM タスクでは、入力系列の約 15% のトークンをランダムに選び、以下のルールに従って置換します。
- 80% → [MASK]
- 10% → ランダムなトークン
- 10% → そのまま
これにより、文脈に応じた単語予測能力が向上します。具体的な計算は以下の通りです。
まず、中間表現
次に、ソフトマックス層で各単語の出現確率
そして、正解分布
を定義します。
アイテム間コントラスト学習 (IIC)
IIC タスクは、ユーザーシーケンス表現
ここで、
総合損失は、これら 2 つのタスクの損失を組み合わせたものです。
ここで、
4.2 2段階ファインチューニング (Two-Stage Finetuning)
事前学習で獲得した大域的な知識を下流タスクに最適化するために、Recformer では2段階のファインチューニングを行います。
Stage 1
まず、全アイテムを再エンコードし、アイテム特徴行列
Stage 2
次に、Stage 1 で得られた最適なアイテム特徴行列
を最小化することで、下流タスクに特化した調整が行われます。
5. 実験結果と評価
Recformer の有効性は、Amazon の複数カテゴリから得られた大規模データセットを用いて検証されました。以下、各データセットの統計情報や評価結果、さらに低リソースおよび cold-start シナリオでの性能について詳述します。
5.1 使用データセットと統計情報
Table 1 は、各データセットの基本的な統計情報を示しています。
例えば、Pre-training 用データセットは、約 3,600,000 人のユーザー、1,000,000 件のアイテム、33,588,165 件のインタラクションを含み、平均シーケンス長は約 9.29、密度は
Table 1:使用データセットの統計情報
データセット | ユーザー数 | アイテム数 | インタラクション数 | 平均シーケンス長 |
密度 |
---|---|---|---|---|---|
Pre-training | 3,613,906 | 1,022,274 | 33,588,165 | 9.29 | |
Scientific | 11,041 | 5,327 | 76,896 | 6.96 | |
Instruments | 27,530 | 10,611 | 231,312 | 8.40 | |
Arts | 56,210 | 22,855 | 492,492 | 8.76 | |
Office | 101,501 | 27,932 | 798,914 | 7.87 | |
Games | 11,036 | 15,402 | 100,255 | 9.08 | |
Pet | 47,569 | 37,970 | 420,662 | 8.84 |
5.2 ベースラインとの比較および表の解説
Table 2 は、Scientific データセットにおける各手法の評価結果(NDCG@10、Recall@10、MRR)を示しています。ここでは、ID-Only 手法(SASRec、BERT4Rec)、Text-Only 手法(ZESRec、UniSRec)、そして提案手法 Recformer の性能が比較され、Recformer が最良の結果を示していることが分かります。
Table 2:Scientific データセットにおける性能比較
データセット | メトリクス | SASRec | BERT4Rec | ZESRec | UniSRec | Recformer | 改善率(Recformer vs. 最良) |
---|---|---|---|---|---|---|---|
Scientific | NDCG@10 | 0.0797 | 0.0790 | 0.0843 | 0.0862 | 0.1027 | +19.14% |
Recall@10 | 0.1305 | 0.1061 | 0.1260 | 0.1255 | 0.1448 | +10.96% | |
MRR | 0.0696 | 0.0759 | 0.0745 | 0.0786 | 0.0951 | +20.99% |
この表から、Recformer は特に NDCG@10 および MRR において大幅な改善を示しており、従来手法と比較して統一的なアイテム表現が有効に機能していることが確認できます。
Table 3 は、in-set(訓練済みアイテム)と cold-start(新規アイテム)に分けた場合の性能を示しています。ID-Only 手法では cold-start アイテムの扱いが難しく性能が低下するのに対し、Text-Only 手法である Recformer は両方の状況で高い性能を維持しています。
Table 3:in-set と cold-start アイテムでの性能比較
データセット | メトリクス | SASRec (In-Set / Cold) | UniSRec (In-Set / Cold) | Recformer (In-Set / Cold) |
---|---|---|---|---|
Scientific | NDCG@10 | 0.0775 / 0.0213 | 0.0864 / 0.0441 | 0.1042 / 0.0520 |
Recall@10 | 0.1206 / 0.0384 | 0.1245 / 0.0721 | 0.1417 / 0.0897 | |
Instruments | NDCG@10 | 0.0669 / 0.0142 | 0.0715 / 0.0208 | 0.0916 / 0.0315 |
Recall@10 | 0.1063 / 0.0309 | 0.1094 / 0.0319 | 0.1130 / 0.0468 | |
Arts | NDCG@10 | 0.1039 / 0.0071 | 0.1174 / 0.0395 | 0.1568 / 0.0406 |
Recall@10 | 0.1645 / 0.0129 | 0.1736 / 0.0666 | 0.1866 / 0.0689 | |
Pet | NDCG@10 | 0.0597 / 0.0013 | 0.0771 / 0.0101 | 0.0994 / 0.0225 |
Recall@10 | 0.0934 / 0.0019 | 0.1115 / 0.0175 | 0.1192 / 0.0400 |
Table 4 は、アブレーションスタディの結果を示しており、各構成要素(例:2段階ファインチューニング、アイテム位置埋め込み、トークンタイプ埋め込み)の有無が性能に与える影響が評価されています。各変種(Variant)の結果から、Recformer の各設計要素が性能向上に寄与していることが確認されます。
Table 4:アブレーションスタディの結果
Variants | Scientific (NDCG@10 / Recall@10 / MRR) | Instruments (NDCG@10 / Recall@10 / MRR) |
---|---|---|
(0) Recformer (標準設定) | 0.1027 / 0.1448 / 0.0951 | 0.0830 / 0.1052 / 0.0807 |
(1) w/o 2段階ファインチューニング | 0.1023 / 0.1442 / 0.0948 | 0.0728 / 0.1005 / 0.0685 |
(1)+(2) freezing word & item embeddings | 0.1026 / 0.1399 / 0.0942 | 0.0728 / 0.1015 / 0.0682 |
(1)+(3) trainable word & item embeddings | 0.0970 / 0.1367 / 0.0873 | 0.0802 / 0.1015 / 0.0759 |
(1)+(4) trainable item & freezing word emb. | 0.0965 / 0.1383 / 0.0856 | 0.0801 / 0.1014 / 0.0760 |
(5) w/o pre-training | 0.0722 / 0.1114 / 0.0650 | 0.0598 / 0.0732 / 0.0584 |
(6) w/o item position & token type embeddings | 0.1018 / 0.1427 / 0.0945 | 0.0518 / 0.0670 / 0.0501 |
この表から、特に事前学習と2段階ファインチューニングの重要性、また各埋め込み(アイテム位置・トークンタイプ)の有無が性能に大きく影響することが明らかです。
5.3 低リソース・Cold-start シナリオでの性能
低リソース環境では、訓練データの割合が1%、5%、10%、50%、100%と変化する中での各手法の性能推移が、Figure 5 のグラフに示されています。特に、従来の SASRec(ID-Only 手法)は、訓練データが極端に少ない場合に性能が大幅に低下するのに対し、Recformer は少ないデータでも高い性能を維持しています。
また、cold-start シナリオでは、訓練データに存在しない新規アイテムに対しても、Recformer はアイテムテキストから直接特徴を抽出するため、高い推薦精度を実現しています。
6. 図表から読み解く Recformer の全体像
ここでは、これまで解説した図および表を通じて、Recformer の各側面がどのように実装され、評価されているかを総合的にまとめます。
-
Figure 1 と Figure 2
Figure 1 は従来のアイテム ID シーケンスと、キー・バリュー属性ペアからなるテキスト系列の違いを示しており、Figure 2 は各アイテムの属性辞書をフラット化して「アイテム文」に変換するプロセスを示しています。これらは、Recformer の入力データの基盤となる部分であり、アイテムを自然言語として統一的に扱う手法の意義を視覚的に理解するための重要な図です。 -
Figure 3
図の上段では、入力構築([CLS] + 各アイテム文)、埋め込み層、Longformer エンコーダ、そして [CLS] トークンを用いた次アイテム予測が示され、下段では事前学習時の MLM と IIC のプロセスが示されています。これにより、Recformer の全体的なフレームワークと、どのように自然言語理解とシーケンシャル推薦が統合されているかが把握できます。 -
Figure 4
ゼロショット設定における各 Text-Only 手法(ZESRec、UniSRec、Recformer)の NDCG@10 の評価結果を、各データセットごとに比較したグラフです。Recformer の高い転移性能と、事前学習の効果が強調され、場合によっては Fully-Supervised な ID-Only 手法の平均性能をも上回る結果が示されています。 -
Figure 5
訓練データの割合の変化に伴う、SASRec、UniSRec、Recformer の NDCG@10 の性能推移を示すグラフです。特に低リソース環境において、Recformer が他の手法よりも安定して高い性能を発揮する点が明確に示されています。 -
Figure 6
事前学習ステップ数と、ゼロショット設定での NDCG@10 および Recall@10 の性能の関係を示すグラフです。事前学習初期に性能が向上し、ある一定ステップ(例:約4000ステップ)でピークに達し、その後は性能が停滞または低下する傾向が示され、最適な事前学習期間の重要性が理解できます。 -
Table 1~4
Table 1 は各データセットの統計情報、Table 2 はScientific データセットにおける各手法の評価結果、Table 3 はin-setとcold-startでの性能比較、Table 4 はアブレーションスタディの結果を示しています。これらの表は、Recformer の性能の高さ、各構成要素の有効性、及び低リソース・cold-start 環境での優位性を、数値データとして裏付けています。
7. 議論と考察
これまでの解説から、Recformer の設計と評価結果から以下の点が明確です。
-
統一的なアイテム表現の利点
アイテムを固有のIDではなく、テキスト(属性辞書)として表現することで、cold-start 問題に強く、異なるドメイン間での知識転移が容易になっています。Figure 1, 2 の図示がその背景を明示し、Table 3 でもその効果が数値で確認できます。 -
多層的な学習戦略の重要性
事前学習で得た知識と、2段階のファインチューニングによる下流タスク特化の両輪が、Recformer の高い性能に直結しています。Figure 3 や Table 4 のアブレーションスタディから、各構成要素が性能向上に大きく寄与していることが示されています。 -
低リソース環境下での有効性
訓練データが少ない環境でも Recformer は高い性能を維持できることが、Figure 5 のグラフおよび Table 2, 3 の結果から明らかです。さらに、Figure 6 からは、最適な事前学習ステップ数の調整が下流タスクの性能に重要な影響を及ぼす点も理解できます。
8. 結論
本論文は、従来のアイテムID依存型シーケンシャルレコメンデーションの限界を打破するため、アイテムの属性情報を自然言語として統一的に扱う新たな枠組み Recformer を提案しました。入力の前処理、埋め込み層、Longformer によるエンコーディング、次アイテム予測、さらに事前学習と2段階ファインチューニングに至るまで、各プロセスが綿密に設計され、Figure 1~6 および Table 1~4 の各図表がその有効性を裏付けています。特に、ゼロショット設定や低リソース、cold-start 環境での高い性能は、Recformer が実環境において実用的かつ高精度な推薦システムとして機能することを示唆しています。
今後、Recformer のアプローチは、さらなる大規模データや多様な属性情報の取り込み、また他の下流タスクへの応用など、幅広い展開が期待されます。
Discussion