Reciprocal Sequential Recommendationを読むよ

これなーに

Reciprocal Sequential Recommendationのメモ。

論文:Reciprocal Sequential Recommendation 学会:Recsys(2023)
筆者:Bowen Zheng et al.

詳細

0. 論文概要

Reciprocal Recommender System(RRS)は、オンラインデートや採用などのオンラインプラットフォームで広く使用されている。
既存のRRSモデルは主に静的なユーザーの好みを捉えているが、ユーザーの好みが変化することや、二つの当事者間の動的なマッチング関係を考慮していない。
動的なユーザーの好みを用いたモデリングでは、順次的な推薦システムでよく研究されていますが、ユーザーからの1方向の興味に焦点が当たっている。
そのため、これを双方向マッチングのための推薦アルゴリズムに適応させることは容易ではない。

本論文では、RRSを独自の時系列双方向マッチングタスクとして定式化し、新しいアプローチ「ReSeq」(Reciprocal Sequential recommendation)を提案する。
双方向のマッチングを実現するため、異なる時間での双方向でのattentionから得られる、きめ細かい時系列データからの類似性を学習することを提案する。
さらに、推論効率を向上させるため、きめ細かいマッチングモジュールから小規模なstudentモジュールに知識を蒸留する自己蒸留技術を導入する。
実運用時はstudentモデルを用いることで、推論時間が大幅に高速化されます。

実際のデータセットからでの実験により、提案された方法の有効性と効率性が示された。

1. 導入

相互推薦システム(RRS)は、オンラインデートや採用などのオンラインプラットフォームで広く展開されている。
これは、従来の推薦アルゴリズムとは異なり、双方向の興味を把握した上で実施することが特徴的である。
一般的に、既存のRRSの研究は大まかに、コンテンツベースの方法と協調フィルタリングベースの方法に分けられる。
コンテンツベースは主に、ユーザーの属性からユーザーの興味をモデル化します。
強調フィルタリングベースは、協調フィルタリングに基づいて長期的なユーザー間の好みを捉えた推薦をする。
しかし、ユーザーの興味は、時間とともに周囲の環境が変わるにつれて動的に変化する。
上記の二つのアプローチは、この時間の経過による変化の影響を無視している。
例えば、採用でのマッチングにおいては、個々がより多くの職業経験と資格を得るにつれて、求人探しの基準を高める傾向がある。
よって、採用のような双方向マッチングでは、動的な好みの変化を効果的にモデル化することは、正確な推薦を行うために重要である。

Sequential Recommendationは、ユーザーの動的な興味をモデル化するために、ユーザーの興味の時系列性を用いてモデリングすることでユーザーの好みを捉える。
典型的な方法として、過去の興味を元に、次に興味を持つであろうアイテムを予測する。
本論文の主張は、従来のSequential Recommendationのアルゴリズムとは異なり、ユーザーは相互推薦において二重の役割を果たし、active側だけでなく、passive側としても機能させる必要があるということだ。

よって、両当事者の動的なモデリングが必要であり、特に双方向のマッチングの文脈では難易度が高い。
技術的なアプローチとして、我々は相互推薦を独自のsequence matchingタスクとして定式化し、関与する二つの当事者の行動シーケンス間のマッチングに基づいて推薦予測を行う。
具体的には、双方向の視点で行動の時系列性を定義し、時系列での相互作用をモデリングすることで、双方向マッチングを実現する。
しかし、これを実現するためには、大きな計算コストが必要であるため、モデルの推論効率を向上させるためにself-distilationを検討する。

これらを踏まえ、本論文ではReSeqを提案する。
ReSeqは3つの特徴を持つ。
1つ目は、ユーザーの双方向の埋め込み(activeとpassive)に基づいたtransfomerネットワークを用いて双方向マッチングのための時系列データを扱う。
2つ目は、マクロとマイクロの両方で時系列の相互作用をとらえるため、複数のslaleでのマッチング予測を実施する。
3つ目は、self-distilationを推論用に実施することで、軽量な予測を実現する。
知る限り、過去にこのアプローチでの研究は存在しない。
2つの相互推薦のシナリオから、五つのデータセットで実験をし、その有用性を確認した。

2. 関連研究

双方向マッチング、Sequential Recommendation、self-distilationの3つの観点で関連研究を紹介する。

2-1. 双方向マッチング

RSS(双方向推薦システム)は、従来のユーザー/アイテムの推薦システムとは大きく異なるユーザー間のマッチングシステムである。
ユーザー間の相互的なマッチング関係を扱うため、RRSは推薦において両当事者の興味をモデリングする必要があり、これは難易度が高い。

既存のRRSは大まかにコンテンツベースの方法と協調フィルタリングベースに分類できる。
コンテンツベースの方法はユーザーの属性に焦点を当て、協調フィルタリングベースの方法は過去のユーザー同士の相互作用をモデリングする。
また、これを統合するハイブリッドモデルも存在する。
近年では、Deep Learningの利用が盛んになっている。
Matrix Factorization、Latent Factor Models、Factorization Machine、GNNsなどがある。
さらに、RRSのシナリオでより良い双方向のユーザーの好みを学習するために、複数のタイプのユーザー行動を利用するものも存在する。

これらの手法は、主に静的なユーザーの行動と属性を扱うため、時間の経過に伴う動的な変化を無視している。
本論文では、相互推薦を独自のシーケンスマッチングタスクとして定式化し、両側での動的な興味のモデリングのために双方向の行動シーケンスを活用することを提案する。

2-2. Sequential Recommendation

従来のcollaborative Filteringがユーザーとアイテムの関係に焦点を当てるのに対し、sequential Recommendationはユーザーの時系列の連続性に焦点を当てる。
最初は、マルコフ連鎖に基づく方法をとっていた。 Deep Learningの急速な発展に伴い、RNNのような多くの深層モデル利用されている。
さらに最近では、GNNベースやtransformerベースの手法も推薦タスクにおいて素晴らしい効果を示している。
これに加えて、最近の研究では、pre-training、data augmentation、regularized trainingなどの学習時のテクニックの研究も進んでいる。

上記の順次的推薦方法は、従来のユーザー-アイテム推薦において驚くべき性能を達成している。
しかし、これらは単方向なマッチングであり、双方向マッチングへのアプローチではない。
さらに、従来のSequential Recommendationで双方マッチングにアプローチする難しさは、相互推薦における両ユーザーの動的な特性の理解が必要である点である。
これらとは異なり、私たちのアプローチは、activeとpassiveの両方からユーザー行動の時系列性をモデル化し、双方向マッチングのための手法を提案する。

2-3. Self-Distillation

Knowledge Distillationは、複雑な教師ネットワークからよりシンプルな学生ネットワークへ効果的に知識を転送することができる手法である。
推薦システムの領域では、ドメイン知識の転送やモデルの圧縮[によく利用される。
ただし、最新の注意を払わないと、追加の設計と実験コストがかかってしまう。
近年では、自分自身から知識を蒸留する、self-Distilationが提案されており、主に以下の三つの一般的な自己蒸留方法が存在する。
(a) 同じネットワークの深い層から浅い層への蒸留。
(b) self-ensembleとして最新のステップのモデルを使用する蒸留。
(c) Data Augmentationに基づく蒸留。

従来の知識蒸留と比較して、自己蒸留は推薦システムの領域でさらに探究する価値がある。
双方向マッチングを時間をかけずに推論するため、本論文ではシンプルな自己蒸留フレームワークを用いる。
私たちのアプローチは、(a)の使い方に近く、より深いネットワークの出力を知識として使用する代わりに、教師モデルをマクロレベルのマッチングとして、マイクロレベルのstudentモデルに蒸留するように使用する。

3. 方法

まず、双方向マッチングの定式化を行い、次にReseqの全体を説明する。

全体像は以下。
.

3-1. 問題の定式化

従来の推薦システムは、ユーザーからの単方向の興味を把握すれば良い。
これに対し、双方向推薦システムはユーザーからの興味と、アイテムからの興味(男女のデートアプリや転職サービス)が重要となる。
を一つ目のユーザー、をもう片方のユーザー(やアイテム)とする。

この設定では、各側がユーザー(active)とアイテム(passive)の役割を果たすことができるため、アイテムという用語を明示的には使用しない。
代わりに、両側をユーザーと呼び、二つの側を区別するために異なる表記を使用する。

RRSにおいて好ましい推薦とは、
(a) ユーザーがユーザーに興味を示す。
(b) ユーザーの特徴がユーザーの好みと要件と一致する。
ということを指す。

これは、双方向のactiveな選択プロセスとして考えることができる。(双方が興味を持っている状態。)
RRSは、この双方向の好みをモデル化できる共同関数を学習することが目的となる。

uとvを用いて、両方の興味を計算し、これを最大化する組み合わせを探す。

本論文では、上述の設定で成り立つ。
この定式化は、RRSに対する双方向の時系列マッチングタスクであり、これまでのアプローチとは異なる。
具体的には、各時間ステップで、各ユーザーは現在の時間𝑇までの時系列な行動シーケンスを持つ。
これは以下で表現できる。

※ある時点Tまでにおいて、左側のユーザーが右側のユーザーvへのアクションと、その逆の状態をさす。
​ 目標は、両ユーザーの歴史的な行動シーケンスの双方向のモデリングによって、両ユーザー間のマッチング度またはスコアを予測する以下を作ること。

3-2. 双方向マッチングの動的な時系列行動モデリング

既存のRRSの方法は、主にユーザー属性を用いてマッチングの予測を行うか、ある時点におけるユーザーの相互作用に基づいてユーザーの静的な表現を学習する。
しかし、そのような方法は主に長期的なユーザーの興味を捉えることに焦点を当てており、時間とともに変化するユーザーの好みを無視することになる。
私たちのアプローチでは、相互推薦を独自の時系列マッチングタスクとしてモデル化し、双方のマッチングはそれぞれの動的な時系列のデータに基づいて実施する。
このセクションでは、双方向の視点の下でユーザー行動の時系列データをモデリングするための方法を紹介する。
具体的には、まず双方向マッチングにおけるユーザーの双方向表現を説明し、次にユーザーの時系列データにおけるactiveな側面とpassiveな側面の両方をエンコードするプロセスを説明する。

3.2.1 双方向ユーザーの表現学習

前述のセクションで述べたように、相互推薦における両側のユーザーのマッチングは双方向のプロセスである。
この現象は、ユーザーが相互推薦において二重の役割を果たす結果となる。
すなわち、activeに選択する側としてだけでなく、passiveに受け入れる側としても機能することになる。
したがって、双方向マッチングでは、双方向のユーザー表現を使用することになる。

双方向の視点の下でのユーザー表現学習
相互推薦のシナリオにおける両方のユーザーには、二つの異なる表現が存在する。
一つは、好みを選ぶためのactiveな選択者としての表現。
もう一つは、選ばれるために自分自身の特徴を提示することでのpassiveな候補者としての表現。
簡易的に、activeな場合を「p」、passiveな場合を「f」として表現する。
特に、一方の側のユーザーUに対しては、activeな埋め込みとpassiveな埋め込みをそれぞれ以下とする。

他方のユーザーVに対しても、以下のactiveな埋め込みとpassiveな埋め込みとする。

分解され共有する双方向のユーザー埋め込み
これまで述べてきた通り、双方向レコメンドはactiveとpassiveの両面でユーザーを扱う。
これは、双方向のユーザーの表現空間を適切に扱うべきであることを意味します。
形式的には、上記の埋め込み行列は、片方がactiveなアクションを起こした場合、もう片方はpassiveなアクションが起きる。
逆も同じく。

この双方向の関係を反映するために、ユーザーの埋め込み行列の分解を行い、分解された行列の一部を双方向の視点間で共有する。
例としては、以下のように

一方の側のユーザーのactiveな表現と、他方の側のユーザーのpassiveな表現との間で共有する。

3-2-2 双方向レコメンドの時系列行動エンべディング

分解し、共有する埋め込み表現を得たら、次にユーザーの時系列な行動をエンコードするための二つの異なる方法を提案する。
目的は、ユーザーの二つの役割の異なる動的特性に応じて、時系列データをactiveとpassiveにモデル化する。

activeな単方向の動的エンコーディング
あるユーザーがactiveな場合、行動シーケンス内の過去のマッチングユーザーはpassiveなデータとして扱う。
直感的には、推薦におけるpassiveな候補者の特徴は、ユーザーの興味と好みを示している。
よって、行動シーケンス内の過去のマッチングユーザーのpassiveな表現に基づいて、ユーザーのactiveな動的表現をエンコードする。

行動の時系列データを受け取り、まずは固定長のNになるまでパディングする。
次に、先頭に[CLS]というトークンを付与する。
さらに、学習可能な位置の埋め込みからルックアップ操作を用いて、入力シーケンスのpassiveな埋め込みを作成する。
その後、一般的なAttentionネットワークをシーケンスモデリングに利用する。
具体的には、典型的なトランスフォーマーアーキテクチャは、Multi-Head Attentionの複数の層で構成されており、各自己注意の層の後にはpoint wise feed-forwardネットワーク(FFN(·)と表記)に処理が移る。
上記のシーケンス埋め込みと位置エンコーディングを結合し、入力とする。
その後、計算は以下のようになる。


Hlは、lバージョン の隠れ層の出力状態で、H_0はとなる。
は、アテンションマスクのweightで、各層で利用する。

我々は、activeな行動をエンコードするため、モデルが最近のユーザー行動により集中できるよう一方向の注意マスクの重み行列を使用する。
図1に示すように、対角行列の一方向のマスクと比較して、私たちのマスク行列は、情報伝達の順序と[CLS]表現のグローバルな集約を確保するために、[CLS]トークンの対応する行と列を個別に処理する。
私たちのアプローチで使用されるマスク行列は、シーケンスの最後に[CLS]トークンを追加するのと同等です。
ただし、異なる長さの行動シーケンスに個々に[CLS]トークンを挿入するよりも、私たちのアプローチは入力構築とモデル実装にとってより簡易的である。

つまり・・・
図1の左上のActive Dynamic Encodingの以下のMaskは、上から、[CLS], t1, t2, t3を示しており、水色が利用、白がmaskを指しており、t3(最新のデータ)を多くマスクせずに使うことで、最新の情報をより多く利用することで、最新の興味を強く反映することをしているらしい。(めっちゃ分かりづらいけど、多分こういうこと。。)

最後に、最終層からの出力を、ユーザーのactiveな表現として用いる。
さらに、これを二つのスケールに分割する。

は、[CLS]トークンのアウトプットで、はユーザーのマクロ(global active dynamic)表現を指し示す。
は、他の出力で、はユーザーのマイクロ(fine=grained active dynamic)表現を指し示す。

passiveな双方向の動的エンコーディング
単方向のアプローチと似て、passiveな情報にもTransformerを用いる。
この文脈での違いは、行動の時系列データがactiveな役割を果たす点である。
成功しやすいpassiveとは、activeしたユーザーの好みにpassive側が近いことである。(passiveされるのは似たユーザーの場合)
入力シーケンスのアクティブな埋め込み を作成するため の代わりにを用いてルックアップ操作を行う。
さらに、activeな情報を扱う場合とは対照的に、ユーザーがpassiveを受けることを考えると、passiveを受ける側の特性は時間とともに大きく変わることはない。
(activeに良い人を探す場合は、その好みが時間経過で変わっていくが、探される側は時間経過では大きく考えが変わらない。)
よって、図1の右側に示されているように、マスクを時間経過の最新を重要視するようには作らず、passiveな動的エンコードを実施する。
これにより、モデルはグローバルなシーケンス表現全体でのユーザーの本質的な特性を捉える。
activeと同様に、最後の層の出力も2つのスケールに分割する。

はユーザーのマクロ表現で、はマイクロ表現を指し示す。
これを他方のユーザーでも実施することで、active側とpassive側の分散表現として扱う。

3.3 多段ステージでの時系列マッチング

ここまでで、activeとpassiveの動的表現を彼らの行動からマクロとマイクロの多段スケールとして作成することができる。
以降で、マルチスケールマッチングについて述べる。

3.3.1 マクロレベルのマッチング

前のセクションで述べたように、相互推薦における両方の当事者のマッチングは、二重視点の積極的な選択プロセスである。
よって、この二重視点の傾向をモデル化するため、active-passiveなマッチングのための2つのスコアを活用する。
図1では、一方の視点のマッチングプロセスのみが示しており、もう一方の処理が対になって存在している。
マクロレベルでのマッチング予測方法は以下の通り。

・は内積
左辺は、u_iがv_jを好むスコア、右辺はv_jがu_iを好むスコアを指している。

3.3.2 マイクロレベルのマッチング

従来の推薦システムが固定長の静的なアイテムをマッチングターゲットとしているのに対し、私たちは、動的なユーザー行動をマッチングターゲットとして使用する。
これにより、より広くて分散した候補マッチングが生じる。
その結果、候補マッチングスペースの希薄さを軽減するために、両側のユーザー間のより詳細で微細なマイクロレベルの相互作用を取り入れて、より識別可能で正確なマッチング予測を試みる。
全体のマイクロレベルのマッチング方法は次のとおり

Time-Sensitive Micro-Level Matchingの図は以下。

activeな(時系列で最新のものが重要視される)データと、passiveな個々のデータの間のマッチング行列を計算する。
まず、の間の関係性を計算する。

この時、Gは異なる時間ステップでのactiveとpassiveの表現間のマッチング度を示すことになる。
次に、2つの次元のattentionを通じて行列Gを集約する。
パッシブ側は、softmaxを用いてattentionの重みを計算する。

は、u_iのオリジナルのactiveなエンべディングで、から取得する。

アクティブ側は、ユーザーのactiveな動的な行動の時間感応性をモデル化するため、相対的な時間依存のAttentionの重みを計算する。

は、v_jのオリジナルのpassiveなエンべディングで、から取得する。
αはシーケンスの終わりから減衰する学習可能な相対的な重みである。
最後に、この二つをGと集約させる。


加えて、v_jからu_iについても同様に計算し、これを合算したものが最終的なマイクロスコアとなる。

3.4 self-distilationを通じたマッチング効率の向上

インターネットの急速な発展により、オンラインプラットフォーム上のユーザー数が増加している。
しかし、同時にサービス効率の課題も浮上している。
私たちが提案したマルチスケールシーケンスマッチング方法でも、マクロレベルのマッチングは2つのシンプルな処理だが、マイクロレベルのマッチングは複雑な双方向の相互作用のため繊細な処理となっている。
しかし、マイクロレベルの処理も効率の問題を含んでいる。

distilation-technicに触発され、さまざまな分野の研究で処理効率を上げることが報告されており、私たちも実用性を考えてマイクロレベルのマッチングからマクロレベルのマッチングへのセルフディスティレーションを目指す。
具体的には、図1の「Micro-to-Macro Self-Distillation」セクションに示すように、学習中にマイクロレベルのマッチングから効率的でシンプルなマクロレベルのマッチングへの知識を転送するためにセルフディスティレーションを使用する。

この蒸留されたマクロレベルマッチングモデルを、検証、テスト、実際のアプリケーションの予測処理で利用することで、効率的な推薦が実現できる。

マイクロからマクロへのセルフディスティレーション
双方向マッチングのランキングタスクでは、一般的な分類問題とは異なり、カテゴリの分布よりもポジティブとネガティブの相対的なスコアギャップに注目する。
そこで、Margin-MSEをディスティレーションロスとして採用することで、マイクロレベルとマクロレベルのマッチング間のポジティブとネガティブのスコアマージンの最適化を目指す。
具体的には、セルフディスティレーションロスの計算式は以下。

Bはbatch_size。
+はポジティブ、-はネガティブなデータで、ポジティブとネガティブの差を最小にするようなloss設計である。

最適化の全体像 最終的なスコアは、二人のユーザーのマッチングスコアとなる。
この計算の際、activeとpassiveが二人のユーザーに存在するため、合計4つのネガティブデータが発生する。
例えば、ポジティブなセットがである場合、u側のネガティブは、v側のネガティブはとする。
ネガティブユーザーの過去の行動シーケンスも、現在の時間𝑇から作成します。(ネガティブサンプリングは、切り取る過去時点で未来にアクションしないユーザーからサンプルする)
ネガティブインスタンスをモデルに入力すると、マクロレベルとマイクロレベルの4つのネガティブインスタンスセットを作る。

上記のネガティブインスタンスで入力に対応する要素を置き換えることで、両方のスケールで複数のネガティブインスタンススコアも計算が可能。
およびを、ネガティブインスタンススコアセットとし、それぞれが4つのタイプのネガティブインスタンススコアを含む。
次に、Bayesian Personalized Ranking(BPR) Lossを使用し、ポジティブインスタンスとネガティブインスタンスのランキングを最適化する。

Bはバッチサイズ。
は、マクロレベルのポジティブスコア、はネガティブスコア。
は、マイクロレベルのポジティブスコア、はネガティブスコア。
さらに、self-distillation lossは以下のように拡張する。

上記3つのlossを結合し、最終的なloss関数の定義とする。

λとμはハイパーパラメーターで、λはマイクロとマクロの重要度の意味合いになり、μは精度と知識転送のトレードオフ具合の意味合いになる(?)。
validationとtestの時は、マクロレベルのモデルしか利用しないことで効率化を測っている。

3.5 discussion

3.5.1 時間の複雑さの分析

実サービスでの活用において、学習時に利用した様々なエンティティ自体の推論は事前に取得できます。
私たちのアプローチに関して、ユーザーの行動シーケンスのエンコーディングは、結果を事前に計算して保存しておくことができる。
よって、マッチング予測部分の複雑度について主に議論する。
マクロレベルでのマッチングは、モデルの出力次元を示す𝑑を用いて計算量はO(𝑑)となる。
これは、協調フィルタリングベースの方法やシーケンシャル推薦の方法と同じ計算量となる。
マイクロレベルでのマッチングには、まず、シーケンスの長さを示す𝑛に対して計算量はO(𝑛2𝑑)となる。
次に、2つの次元のAttentionの計算量はO(𝑛𝑑)である。
集約する操作の計算量はO(𝑛2)となる。
よって全体として、マイクロレベルの予測の計算量はO(𝑛2𝑑)となる。 オンラインプラットフォームが数万人のユーザーに対応していることを考えると、実用に耐えられないレベルである。
よって、実際のアプリケーションのモデルの効率を最適化するため、マイクロレベルからマクロレベルへのセルフディスティレーションを利用する。

3.5.2 既存の推薦方法との比較

ここでは、関連する推薦方法と簡単に比較して、私たちのアプローチの革新性と新規性を説明する。
シーケンシャル推薦方法 SASRecやBERT4Recなどの既存のシーケンシャル推薦アルゴリズムは、片方のユーザーの動的表現をエンコードするだけであり、相互推薦シナリオにおける双方向のモデリングにはなっていない。
一方、我々の提案では、ユーザーの双方向の共同モデリングを実現している。
そして、両方の推薦当事者の詳細に対して細かいマッチングを実行することで、より正確な推薦を達成する。

現在の相互推薦の研究(コンテンツベースまたは協調フィルタリング方法を問わず)では、ユーザーのモデリングは最終的に静的な表現ベクトルである。
一部の方法は、固定された属性値などに基づいてユーザーの好みをモデル化し、他の方法は、行列因子分解や潜在因子モデルを通じてユーザーの静的な暗黙の表現を学習する。
ユーザーの時系列データに基づく方法もあるが、これらはトレーニングセット内のすべてのユーザー履歴を集約するだけで、行動シーケンスの時間的な動的性を無視している。
私たちの方法は、モデルの入力を構築する際(セクション3.1)、ユーザーの行動をエンコードする際(セクション3.2)、および双方向のユーザーマッチングを予測する際(セクション3.3)に、ユーザーのアクティブおよびパッシブの視点の両方の動的性を考慮する。

4 実験

4.1 実験設定

4.1.1 データセット

2つの種類のシナリオで5つデータセットでの実験を行った。
(シナリオ 1) オンライン採用
中国の転職サイトのデータを用いて評価する。
100日以上のデータからデータセットを作成し、個人情報を弾いている。
候補者と採用担当者が面接に至ったペアをポジティブとして利用している。
(シナリオ2) Question-Answer
StackExchangeのデータを用い、質問者と回答者のマッチングとして評価する。
回答者側には、回答履歴に沿った質問を提示し、質問者側には回答できる人を紹介するような提示である。

データ準備について、まず5-coreフィルタリング(5つ以上のアクション、被アクション)を行い、データをスクリーニングした。
その後、時系列のデータを作成していった。
各アクションデータは、データのリークを排除するため、その瞬間までのデータのみを使用する。
三つの転職のデータセットにおいて、データの最後の2週間を検証とテスト用として採用し、残りのデータを学習に利用した。
また、QAのデータセットは、8:1:1の比率で時間で分割した。
データセットの概要は以下の通り。

4.1.2 ベースラインモデル

ReSeqと比較するために、以下のモデルを用いた。
BPR/LFRP/NueMF/LightGCN/SASRec/SSE-PT/BERT4REC/FMLP-Rec/PJFNN/IPJF/PJFFF/DPGNN
これらは、強調フィルタリングベース(BPR/LFRR/NeuMF/LightGCN)と、sequential recommendation(SASRec/SSR-PT/BERT4REC/FMLP-Rec)と、person-job-fitモデル(PJFNN/BPJFNN/IPJF/PJFFF/DPGNN)に分類できる。
person-job-fitについては、テキスト情報が必要となるため、転職データセットでのみ利用した。

4.1.3 評価の詳細

HIT Ratio・NDCG・MRRでTOP5を用いて評価した。
ネガティブサンプリングはそれぞれ100ずつ取得して利用している。
各データの瞬間以前のデータのみを利用し、リークを防いでいる。
全てのモデルでoptimizerにはAdamを用い、gridサーチでハイパーパラメータチューニングを実施している。
learning rateを{0.005, 0.001, 0.0005, 0.0003, 0.0001, 0.00001}の間で変化させた。
平等な評価のために、エンべディングの次元数は64に固定した。
weight decayは1e-5を利用。
10epochごとにearly stopping判定をする。
全ての実験をRecBoleで実施した。

4.2 結果

転職データセットの結果を上に示す。
person-job-fitのロジックが比較対象に含まれる。

QAデータセットの結果を上に示す。

これらの結果から、以下がわかる。
協調フィルタリングベースの[GCN/MLPなどのモデル]は、シンプルな行列因子分解の手法[BPR/LFRR]と比較して、良い精度を示している。
これは、インタラクションの粒度が増加することが、静的な表現の場合であっても、推薦の精度にプラスの影響を与えることを示している。
sequential recommendationは、協調フィルタリングベースより良いパフォーマンスを達成している。
これは、時系列なデータに基づいてユーザーの好みを動的にモデル化することが有利に働いていると考えられる。

さらに、FMLP-Recはトランスフォーマーベースのモデル(SASRec、SSE-PT、BERT4Rec)と比較して、かなり良い結果を達成している。
これは、FMLPの学習可能なフィルタリング層が、効率的にノイズを減少させる能力があり、これが効果的であることを示唆している。

転職データセットでの結果には、person-job-fitの手法の結果も含まれる。
ユーザーの履歴書と求人の説明だけに依存するモデル(PJFNNとBPJFNN)は、より高品質で大量のテキストデータを含むTechnologyの結果がDesignやSaleのデータセットと比較して良いパフォーマンスを発揮しているため、データ量に大きく依存することがわかる。
テキストとCollaborative Filteringを組み合わせたハイブリッドモデル(IPJF、PJFFF、DPGNN)の中で、DPGNNが最も優れたパフォーマンスを達成しており、これは相互推薦における双方向の選択プロセスの重要性が現れていると考えられる。

全体として、すべてのベースライン方法と比較して、提案手法のReSeqは、2つのシナリオの5つのデータセットのほぼ全てで最も良い結果を達成している。
比較した他の手法と異なり、私たちは相互推薦を独特のシーケンスマッチングタスクとして定式化し、両方の当事者の動的な行動シーケンスに基づいてマッチング予測を行う。
そして、処理高速化のため、自己蒸留技術を導入して、マイクロからマクロレベルのマッチングまでの知識を蒸留し、類似性の計算を大幅に高速化する。
その結果、ReSeqは効果的かつ効率的な相互推薦方法となっている。

4.3 アブレーションスタディ

ReSeqの主な貢献は以下4つ。
- activeとpassiveに分解された埋め込み - 行動シーケンスのエンコーディング - マッチング予測 - 効率の向上

これらの有効性を確認するため、DesignおよびStackOverflowのデータセットでアブレーションスタディを実施した。
具体的には、ReSeqの以下の4種類を確認した。

• ReSeq w/o DSE:埋め込み行列の分解と共有の処理を削除し、ユーザーの4つの埋め込み行列を直接学習する。
• ReSeq w/o MASK:activeとpassiveのマスクを、同じ双方向マスク行列に置き換える。
• ReSeq w/o TSA:マイクロレベルのマッチングでの時間を考慮した係数の利用を、平均集約に変更する。
• ReSeq w/o SD:自己蒸留損失を削除する。

以下に結果を示す。

この結果から、どれも削除してしまうと、パフォーマンスが低下することがわかる。
これは、ReSeqのすべてのコンポーネントが重要な役割を果たしていることを指す。

4.4 更なる考察

4.4.1 ハイパーパラメーターチューニング

このセクションでは、2つの損失関数の係数を変更した実験で、モデルのロバスト性を評価する。
以下に、2つのデータセットを用いてλとμを変化させた時の結果を示す。

各損失係数について、NDCG@5nの変化を2つ(QとAやcandidateとcompany)のそれぞれと平均で、確認した。
損失係数𝜆については、0.5と1から10の範囲で調整し、ポジティブデータがネガティブに比べて不足している場合の影響を調査する。(λが大きいほうが、ポジティブ割合が減る)
係数𝜆の増加に伴って、モデルのパフォーマンスは徐々に向上する。
値が5のとき、ReSeqは最高のパフォーマンスを達成し、𝜆のさらなる増加は大きなパフォーマンスの低下をもたらさなかった。
これはこのモデルの堅牢性を反映していると言える。

自己蒸留損失係数𝜇は、{0.0001, 0.001, 0.003, 0.005, 0.01, 0.05, 0.1}の範囲で調整した。
𝜇がそれぞれ0.005および0.01に設定されたとき、モデルは2つのデータセットで最高の結果を達成した。(Designは0.003では???)
小さすぎるμは、マイクロレベルとマクロレベルの間での知識の効果的な転送ができない。(μが大きいとdistillationを重視する。)
一方、μが大きすぎると、モデルがランキングの最適化を無視して全体の精度が下がる。

4.4.2 デプロイ効率性について

self-distillationの効果を確認するため、DesignとStackOverflowで、SASRec、ReSeq、およびReSeq w/o Self-Distillationのマッチング予測の効率を比較した。
実験は、Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPUと12GB NVIDIA TITAN V GPUを備えたLinuxシステムマシンで行った。

公平な比較のため、すべての方法をPyTorchフレームワークで実装し、バッチサイズなどの共通のパラメータを統一させた。
速度の比較は具体的には、テストデータとして利用したもののバッチごとの平均マッチング予測時間をカウントして比較する。
さらに、PyTorchのsynchronize関数を通じてプロセスの同期を維持して実施した。

以下に結果を示す。

ReSeqはSASRecよりもわずかに遅い。
本手法は、双方向マッチのための処理であるため、速度が遅くなってしまうのは避けられない。
しかし、自己蒸留なしの場合はSASRecの何十倍もの時間がかかっており、自己蒸留によって実用的なレベルに抑えられている。

4.4.3 テキストデータの影響

採用データセットでテキストデータを追加する実験をした。
具体的には、追加の予測レイヤーを備えた事前学習されたBERTから得る、テキストマッチングスコアを、マクロレベルのマッチング予測に組み込んで利用した。

以下に結果を示す。

結果から、シンプルなテキストデータとの組み合わせで、3つのデータセットの両方の視点で基本的に精度向上が見られる。
特に、ReSeqはTechnologyデータセットでより効果が高かった。
なぜTecjnologyが特に効果的だったかを考察すると、テキストの品質と量がデータセットごとに顕著に異なり、technologyはこれがよかったのではないかと考えている。
したがって、テキストの品質と量が他の2つのデータセットを大幅に上回るTechnologyデータセットでは、テキストの強化の効果がより顕著だったのではないかと考察している。
上記の結果は、私たちの方法が補足情報を取り入れれば更なる改善ができることを示している。
もちろん、このシンプルなテキスト強化方法にはいくつかの制限があるかもしれませんが、将来的にはテキストや他の情報を統合するためのより合理的なアプローチを考慮する予定である。

5 結論

本論文では、ReSeqという名前の相互的な順序的推薦方法を提案した。
双方のユーザーの動的な興味をモデル化するため、相互的な推薦を時系列のマッチングタスクとして定式化した。
具体的には、activeとpassiveの両方の視点からユーザーの時系列の行動を異なるモジュール設計でエンコードする。
その後、マルチスケールのシーケンスマッチングを通じて、マクロおよびマイクロの両方のレベルで包括的かつ詳細なシーケンスの相互作用の特徴を抽出する処理をする。
さらに、詳細な相互作用によって増加する推論時間を軽減するため、マイクロからマクロへの自己蒸留を介してモデルの現実での利用可能性を向上させた。
実際のデータセットでの実験では、私たちのアプローチがRRSの2つの視点で他手法を上回ることが示せた。
将来的には、テキスト情報やカテゴリなどの複数の補助的な順序的特徴を、普遍的で効果的かつ効率的な方法で私たちのフレームワークに組み込む。
さらに、事前学習、データ増強、および自己教師付き学習技術を含む、相互的な順序的モデルのトレーニング中に疎性の問題をさらに軽減したいと考えている。

以上! メーーーちゃ難しいな。でもなんか凄い勉強になった