swing召回

先回顾一下item cf相似度的计算方法:

可以看到每个用户的影响是一样的,这里存在一个问题,假设一个程序猿群体都经常购买格子衫和电子产品,显然不能说格子衫和电子产品是相似的,icf只考虑了物品相似度忽略了用户之间的相似度

在计算相似度时,我们更希望两个兴趣差别比较大的用户有更高的权重,兴趣比较相似的用户有更小的权重,这正是swing的改进点,swing相似度计算公式如下所示:

其中,u、v表示同时购买了itemi 和 itemj 的用户,Iu 和 Iv 分别表示用户u用户v购买的商品集合

实践中可以优化的点:

1. 可以对热门商品做惩罚

2. 正向行为加权 

下面是优化后的计算itemi 和 itemj 相似度的公式:

\begin{aligned}
w_{u} &= \frac{u2i\_\text{score} \cdot u2j\_\text{score}}{\vert u \vert} \\
\text{sim_score}_{i,j} &= \sum_{\text{pair}} \frac{w_{u1} \cdot w_{u2}}{(1 + \vert I_{u1} \cap I_{u2} \vert) \cdot \vert I_{u1} \vert \cdot \vert I_{u2} \vert}
\end{aligned}

 

参考资料

https://zhuanlan.zhihu.com/p/364593067

https://blog.csdn.net/weixin_46838716/article/details/126138597

 
posted @ 2024-05-14 15:27  AI_Engineer  阅读(66)  评论(0)    收藏  举报