【論文紹介】LightFM: Metadata Embeddings for User and Item Cold-start Recommendations

はじめに

以下でLightFMとしてパッケージも配布されている Metadata Embeddings for User and Item Cold-start Recommendations を読んでいきます

github.com

このパッケージ、lossや前処理などメソッドがかなり充実していて使いやすく、またLightFM自体も予測精度いいのでおすすめです。explicit feedbackを扱えないというところのみ注意が必要です。

追記:LightFMの使用方法に関して以下記事にまとめました

nnkkmto.hatenablog.com

概要

  • FMのspecial caseとして捉えられる
  • 全てのfeature間のinteractionを考慮するFactorization Machinesとは異なり、userとitem間のinteractionのみを考慮する
  • user, itemに紐付く特徴量のembeddingのsumをとったものをuser, itemのembeddingとしてmatrix factorizationをするため、user, item両方のcold-start問題に強い

モチベーション

  • userとitemのinteractionを元に類似するかどうかを学習すること
  • user, item両方のcold-start問題を解決すること

従来手法において、前者はMatrix Factorizationで実現できる一方で、後者はできません。また、contents-basedなcollaborative filteringでは後者をある程度緩和できますが、user, itemの各種特徴量同士の類似は考慮されません。

また、こちらLystというファッションECのサイトからの論文なんですが、

  • 年ごと、季節ごとに商品が変わるため、新商品が多い
  • 1回切りの購買をするユーザーが多い
  • 商品自体が非常に多い

という課題があったことが、後者の背景にあるようです。

モデル

入力

ユーザーにひもづく特徴量とアイテムにひもづく特徴量を入力とします。 例えば、アイテムが映画だとすれば、「タイトル」「主演」「ジャンル」、ユーザーに対しては「ユーザーID」「性別」「年代」といった情報がそれぞれ入力となります

モデル概要

簡単には、以下のようなモデルになっています

  1. 入力となる特徴量から次元dのembeddingをそれぞれ取得
  2. ユーザーにひもづく特徴量のembeddingからsumをとったものをユーザーのembeddingとする
  3. アイテムにひもづく特徴量のembeddingからsumをとったものをアイテムのembeddingとする
  4. 作成したユーザーのembeddingとアイテムのembeddingからinteractionを学習する

定式化

各種特徴量のembedding(d次元)をeとおいたときに、ユーザーembeddingは、ユーザーにひもづく特徴量のembeddingの総和であるd次元のベクトルとなります。

f:id:nnkkmto:20210511202125p:plain

同じく、アイテムembeddingは、ユーザーにひもづく特徴量のembeddingの総和であるd次元のベクトルとなります。

f:id:nnkkmto:20210511202145p:plain

また、ユーザー・アイテム特徴量それぞれに対してscalar値のbiasを持つようにし、それぞれの総和がユーザー・アイテムのバイアス(bu, bi)となります。

f:id:nnkkmto:20210511202206p:plainf:id:nnkkmto:20210511202221p:plain

そして、ユーザーembeddingとアイテムembeddingのdot積をとったものに、ユーザー・アイテムバイアスを足し合わせたものに対して、関数fを適用したものがモデルの出力になります。

f:id:nnkkmto:20210511202311p:plain

論文では、関数fとしてsigmoid関数を使用しています。

ここから、lossは以下のようになります

f:id:nnkkmto:20210511202331p:plain

MF・FMとの違い

ユーザー・アイテムembeddingを、ユーザー・アイテム特徴量から作成しない場合、つまりそれぞれにembeddingを用意してinteractionをとった場合、Matrix Factorizationになります。

また、Factorization Machinesは、全ての特徴量間のinteractionを考慮しますが、LightFMが考慮するのはuser, item間のinteractionのみです。

また、Factorization Machinesとは違い、ユーザー・アイテム特徴量からユーザー・アイテムembeddingを作成するという処理が行われています。

最後に

  • FMに関しても同じだが、embeddingの作成方法に関しても工夫が効く
  • sequencialな特徴量をpoolingして使うだったり転移学習したりできる

参考文献