除了前面一章说的方法, 我们还可以把用户和物品的交互记录处理成一个二分图(bipartite graph), 用户对物品的评论可以处理成边的权重。
基于这种表示,我们可以使用随机游走的方法来测量两个点的相似度。 具体的说, x,y 的相似度就是从x 进行随机游走,走到 y 的概率。 参考Random Walks on the Bipartite-Graph for Personalized Recommendation, 2013。
与 PageRank 算法的关系:
上面说到的方法, 很像 PageRake, 或者 HITS 算法 The anatomy of a large-scale hypertextual
web search engine 1998。 他们让一个“步行者”在graph 上进行随机游走;以计算平稳分布 , 代表一个agent 走到点 x 的概率。 通过如下公式计算:
- 状态转移矩阵。 PageRank 算法会在上面再加上一个衰减因子 。
在推荐算法中, 我们感兴趣的是商品 随机游走到 的概率。
为此,我们从节点之间的转移概率 开始;这表示当前在节点 的步行者在下一步将访问节点 的概率。一个 Gaph 中所有点之间的转移概率概率可以聚合成一个转移矩阵 (其中 。这些一阶概率表示节点 i 处的随机游走者在下一步访问 j 的概率;为了计算步行者最终会在某个步骤访问 j 的概率,我们可以取转移矩阵 P 的幂:
矩阵 P 的幂- 衰减因子
衰减因子可以防止概率饱和,最终变成只推荐流行
项目A random walk method for alleviating the sparsity problem in collaborative filtering. 2008
论文 Grocery shopping recommendations based on basket-sensitive randomwalk. 2009, 使用了类似上述方法。 他们用这种方法推荐杂货。 他们先定义了用户和商品各自的状态转移概率:
image.png- : 用户 购买商品 的频率
- 对转移次数的惩罚项
其中, 两个商品之间的转移概率 的计算方式为:
image.pngGrocery shopping recommendations based on basket-sensitive randomwalk. 2009 比较了公式 (4.24) 和前面提到的基于相似度的方法。
也有其他工作也使用了类似的方法, 只是换了不同的状态转移概率。 A ranking-oriented approach to collaborative filtering. 2008 通过用户对商品的评价, 定义了状态转移概率。
随机游走的方法是一个非常宽泛的说法,上面我们只讨论了二分图下,用户和商品的情况。 在这个范式下, 其他方法可能定义了复杂的graph,以发掘用户,商品和其他feature 之间的关系。 Scalable representation learning for heterogeneous networks. 2017 研究了机构作者发布论文的网络。 Representing and recommending shopping baskets with complementarity, compatibility and loyalty. 2018 研究了同一个购物车中被一起购买的商品的关系。
最终,基于图的表示为我们提供了一种通用框架, 它提供了合并多种类型关系的简单方法。我们在第 7.3.2 节中会研究了一个模拟会话内交互的例子。
案例分析
该案例来源于 Amazon.com recommendations: Item-to-item collaborative filtering. 。
它描述的第一种推荐方法是基于余弦相似度的方法。有趣的是,余弦相似度是在用户之间定义的,目标是推荐以前被相似客户购买过的商品。本文讨论了将这种相似度计算扩展到大量亚马逊用户的问题,并讨论了基于用户与用户相似度的用户聚类的替代策略;然后可以通过确定用户的群体(这被视为分类问题)找到与给定用户相似的客户。
虽然这篇文章没有公布亚马逊内部的实现细节,但是它说明了, 及时在真实世界构建一个大型的推荐系统, 也未必一定要使用很复杂的算法。 在构建这类系统的时候, 首先要考虑的是容易实现,容易扩展。 作为继承, Two decades of recommender systems at Amazon.com. 2017 展示了Amazon 更加现代化的推荐系统。 新的论文先讨论了如何对旧的系统进行小规模升级。
例如,他们描述了一种基于商品之间相似度的方法,并描述了如何离线完成此类问题的大部分计算。它还强调了选择一个好的相似性度的重要性,并讨论了一些这样做的策略。最后,讨论了在设计推荐算法时,时间因素(用户购买记录的时效性)的重要性,这是我们在第 7 章中的主要关注点。
网友评论