亚马逊推荐算法简介
众所周知,现在的购物网站通常采用推荐算法来帮助一个用户找到他需要的商品。该推荐算法的输入是一组与他的兴趣有关的内容(并且现在没有办法能精确地对用户兴趣建模,只能靠利用跟兴趣相关的数据),输出是一组他很可能想要购买的商品列表。
电子商务领域的推荐算法有很多具有挑战性问题需要解决,例如怎样处理海量的用户信息和商品数据、如何保证实时性并提高推荐的精准性,以及现在很多硕士论文解决了很长时间之后还在前赴后继解决的冷启动(cold start)问题和数据稀疏性(data sparsity)问题等。目前,传统的推荐算法分为以下三类:
- 协同过滤(Collaborative Filtering)
- 聚类模型(Cluster Model)
- 内容搜索(Content-based Searching)
协同过滤
协同过滤的核心思想是相似的用户会购买相似的商品,因此,根据其他用户的购买信息来推荐商品给当前用户(用户A)。这些“其他用户”,在他们自己并不知情的情况下,被推荐算法塑造成当前用户的“导购员”。为了给当前用户A推荐他想要的东西,必须找出与用户A相似的那些用户(B、C、D…),利用用户B、C、D…的信息给A产生推荐信息。因此,计算用户间的相似度的方法非常重要。
电子商务网站保存了每个用户购买过的商品,因此他们可以利用这种信息提出一种计算用户相似度的方法,即把网站所有商品作为向量的一个维度,如果一个用户买了一件商品N件,则这个维度上的值就是N,例如。
用户 | 商品1 | 商品 2 | … | 商品N |
---|---|---|---|---|
用户A | 4 | 0 | … | 2 |
A⃗ =(4,0,...,2)
假设现在有用户A和B,根据他们的购买信息可以计算A与B的相似度:
similarity(A⃗ ,B⃗ )=cos(A