Incremental Collaborative Filtering for Highly-Scalable Recommendation Algorithms

因为最近在公司搞一个实时性要求比较高的推荐,所以最近会看一些新闻推荐、实时推荐相关的论文,今天这篇是一篇比较老的增量学习+协同过滤的论文,想法很简单,就是在计算相似度时分类讨论,不同情况选择不同的增量方式,尽最大的可能性减少计算量。

传统的相似度计算方式为 \[ \text{sim}(u_x,u_y)=\frac {\sum^n_{h=1}(r_{u_x,i_h}-\overline{r_{u_x}})((r_{u_x,i_h}-\overline{r_{u_y}})} {\sqrt{\sum^{n'}_{h=1}(r_{u_x,i_h}-\overline{r_{u_x}}\sum^{n'}_{h=1}(r_{u_y,i_h}-\overline{r_{u_y}}))}} \]

\[ A=\frac{B}{\sqrt{C}\sqrt{D}} \]

增量的计算方式为 \[ A=\frac{B'}{\sqrt{C'}\sqrt{D'}}=\frac{B+e}{\sqrt{C+f}\sqrt{D+g}} \] 然后作者就给出了不同情况下的更新方式

1

以及经过简单的缓存与计算就可以快速迭代相似度

2

论文最后作者对各种情况的复杂度进行了分析,并进行了实验。

总的来说是一篇很基础的论文,我查了一下,2005年发表,引用100+,应该在当时也是种很实用的方法吧。