word2vecをレコメンドに応用した以下の論文について、少しメモ書きを残しておきます。
内容
前提
書くの面倒なのでこれからは以下の略語を使います。
- w2v: word2vec
- i2v: item2vec
- CF: Colaborative Filtering(協調フィルタリング)
Abstract
- NLP分野のw2v(別名SGNS: Skip-Gram with Negative Sampling)をレコメンドでも使い、item2vecと名付けている
- i2vはユーザ情報なくても使える(後述されるがユーザIDなしでOrderをユーザ代替)
- i2vはSVDに対してCometitive
1. INTRODUCTION AND RELATED WORK
- 多くの推薦アルゴリズム(多分、CF)はアイテムの類似度計算が目的。i2vで旧来の方法の見落としていた点に対応
- CFは今まで成果をあげていた
- user-item のアプローチは認証ない場合など使えないこともある
2. SKIP-GRAM WITH NEGATIVE SAMPLING
w2vの解説。w2v知っている人はスキップ可能。ここでは解説省略。
私は「言語処理100本ノック」である程度学びました。(この章に書かれている数式レベルでは理解できていなかった)。
3. ITEM2VEC – SGNS FOR ITEM SIMILARITY
- itemとuserのひもづきできない場合があり(後述)
- w2v でのsequence of words をset/ basket of items に代替
setは論文内ではspatialおよび時間の長さを無視。basket単位にすると、1回の注文でのアイテム数が多い場合に使えるデータが少なくなりすぎるし、ユーザ単位にすると、どのくらいの期間以内であれば連続したものとして見なすかが検討点。
4. EXPERIMENTAL SETUP AND RESULTS
比較のためのベースラインにitem-item SVDを使用。
4.1. Datasets
以下の2種類データを使用。
- XBox 音楽
- 9M events, 732k users, 49k artists(曲ではなくartists)
- MS Stroe orders
- 379 orders, 1706 items, no user data(オーダー単位にしている)
4.2. Systems and parameters
- SVG で最適化
- 20 epochs で学習
- Negative sampling value の Nは15
- データサイズに応じて以下のハイパーパラメータにした
| 音楽 | order | |
|---|---|---|
| dimension m | 100 | 40 |
| subsampling ρ | $10^{-5}$ | $10^{-3}$ |
4.3. Experiments and results
ベクトル化した結果をT-SNEで2D可視化。音楽はジャンル情報を付加して色付け。左(a)がi2vで右(b)がSVD。

KNNでベクトルを音楽ジャンルの分類をさせて精度比較。Top q アーティストでSVDと精度比較。qの値が大きいほどi2vの精度が相対的に良い。これはi2vでは人気のあるアイテムをサブサンプルしているため(正確にd理解できていないが、多いアイテムをDownsamplingしているっぽい)。

5. CONCLUSION
i2vはSVDより良い。
6. REFERENCES
特記事項なし
参考リンク
この論文の解説
Yahooの論文
Airbnbの論文