原理
基于图结构的实时推荐算法 Swing,能够计算 item-item 之间的相似性。
Swing 指的是秋千,用户和物品的二部图中会存在很多这种秋千,例如 #card=math&code=%28u_1%2Cu_2%2Ci_1%29&height=20&width=76), 即用户
和
都购买过物品
,三者构成一个秋千 (三角形缺一条边),这实际上是 3 阶交互关系。传统的启发式近邻方法只关注用户和物品之间的二阶交互关系。Swing 会关注这种 3 阶关系。
这种方法的一个直觉来源于,如果多个 user 在点击了 的同时,都只共同点了某一个其他的
,那么 𝑖1 和 𝑖2 一定是强关联的,这种未知的强关联关系相当于是通过用户来传递的。另一方面,如果两个 user pair 对之间构成的 swing 结构越多,则每个结构越弱,在这个 pair 对上每个节点分到的权重越低。公式如下:
其中是点击过物品
的用户的集合,
是点击过物品
的用户的集合,
表示用户
点击过的物品的集合。
示例
下图:
计算 的相似性,带入上式,分别求出
即可得出
.
则
进而可得:,