ちょっと情報取り纏める機会があったので、こちらにて共有。
- 根拠となる論文は Amazon.com Recommendations Item-to-Item Collaborative Filtering
- https://bit.ly/R7mY7R
- 上記論文にて記載されている疑似コード
- 疑似コードは別で記載します
- product catalog の要素 I1 (product を列挙)
- I1 を購入した顧客の要素 C (顧客を列挙)
- C が購入した商品の要素 I2 (product を列挙)
- I1 と I2 を購入した顧客を記録
- C が購入した商品の要素 I2 (product を列挙)
- I2 について I1 と I2 の間の類似性を算出
- I1 を購入した顧客の要素 C (顧客を列挙)
- 転置インデックスについて記載された資料が以下
- https://bit.ly/2MM9Cfi
- 40 枚目あたりから
- 利点と欠点が 42 枚目
- 計算効率が良い
- 更新が容易
- オンラインレコメンデーションに向いている
- 空間計算量が大きくなりがち (ログの量に比例)
- 参考書籍
- 実践 機械学習 https://bit.ly/2yxDAkb
- 共起、を使用した実装
- Mahout と Solr での実装
- 改善の手法に関する記載あり
- 実践 機械学習 https://bit.ly/2yxDAkb
疑似コード
以下です。
For each item in product catalog, I1
For each customer C who purchased I1
For each item I2 purchased by customer C
Record that a customer purchased I1 and I2
For each item I2 Compute the similarity between I1 and I2