【論文紹介】LightFM: Metadata Embeddings for User and Item Cold-start Recommendations
はじめに
以下でLightFMとしてパッケージも配布されている Metadata Embeddings for User and Item Cold-start Recommendations を読んでいきます
このパッケージ、lossや前処理などメソッドがかなり充実していて使いやすく、またLightFM自体も予測精度いいのでおすすめです。explicit feedbackを扱えないというところのみ注意が必要です。
追記:LightFMの使用方法に関して以下記事にまとめました
概要
- 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」「性別」「年代」
といった情報がそれぞれ入力となります
モデル概要
簡単には、以下のようなモデルになっています
- 入力となる特徴量から次元dのembeddingをそれぞれ取得
- ユーザーにひもづく特徴量のembeddingからsumをとったものをユーザーのembeddingとする
- アイテムにひもづく特徴量のembeddingからsumをとったものをアイテムのembeddingとする
- 作成したユーザーのembeddingとアイテムのembeddingからinteractionを学習する
定式化
各種特徴量のembedding(d次元)をeとおいたときに、ユーザーembeddingは、ユーザーにひもづく特徴量のembeddingの総和であるd次元のベクトルとなります。
同じく、アイテムembeddingは、ユーザーにひもづく特徴量のembeddingの総和であるd次元のベクトルとなります。
また、ユーザー・アイテム特徴量それぞれに対してscalar値のbiasを持つようにし、それぞれの総和がユーザー・アイテムのバイアス(bu, bi)となります。
そして、ユーザーembeddingとアイテムembeddingのdot積をとったものに、ユーザー・アイテムバイアスを足し合わせたものに対して、関数fを適用したものがモデルの出力になります。
論文では、関数fとしてsigmoid関数を使用しています。
ここから、lossは以下のようになります
MF・FMとの違い
ユーザー・アイテムembeddingを、ユーザー・アイテム特徴量から作成しない場合、つまりそれぞれにembeddingを用意してinteractionをとった場合、Matrix Factorizationになります。
また、Factorization Machinesは、全ての特徴量間のinteractionを考慮しますが、LightFMが考慮するのはuser, item間のinteractionのみです。
また、Factorization Machinesとは違い、ユーザー・アイテム特徴量からユーザー・アイテムembeddingを作成するという処理が行われています。
最後に
- FMに関しても同じだが、embeddingの作成方法に関しても工夫が効く
- sequencialな特徴量をpoolingして使うだったり転移学習したりできる