分享协同过滤思想简介 什么是协同过滤?( 九 )


文章插图
取用户u对标的物p所有的隐式反馈行为中得分最高的) 。

分享协同过滤思想简介 什么是协同过滤?

文章插图
图14:一种优化后的计算隐式反馈相似度的公式, 类似cosine余弦公式
(2) 皮尔森相关系数(Pearson correlation coefficient)皮尔森相关系数是一种线性相关系数 。 皮尔森相关系数是用来反映两个变量线性相关的程度的统计量 。 具体计算公式如下面图15, 其中

分享协同过滤思想简介 什么是协同过滤?

文章插图


分享协同过滤思想简介 什么是协同过滤?

文章插图
是两个向量,

分享协同过滤思想简介 什么是协同过滤?

文章插图


分享协同过滤思想简介 什么是协同过滤?

文章插图
是这两个向量的均值 。 参考文献9中有对怎么利用皮尔逊相关系数做协同过滤的介绍, 感兴趣的读者可以参考学习 。

分享协同过滤思想简介 什么是协同过滤?

文章插图
图15:皮尔逊相关系数的计算公式
(3) Jaccard coefficientJaccard系数用于计算两个集合之间的相似度, 也比较适合隐式反馈类型的用户行为, 假设两个标的物

分享协同过滤思想简介 什么是协同过滤?

文章插图
, 操作过这两个标的物的用户分别为:

分享协同过滤思想简介 什么是协同过滤?

文章插图


分享协同过滤思想简介 什么是协同过滤?

文章插图

那么Jaccard系数的计算公式如下:

分享协同过滤思想简介 什么是协同过滤?

文章插图
5.冷启动问题
前面在讲协同过滤算法的缺点时讲到协同过滤算法会存在严重的冷启动问题, 主要表现在如下3个方面:
(1) 用户冷启动所谓用户冷启动就是新用户没有太多的行为, 我们无法为他计算个性化推荐 。 这时可行的推荐策略是为这类用户推荐热门标的物、通过人工编排筛选出的标的物 。 或者用户只有很少的行为, 协同过滤效果也不好, 这时可以采用基于内容的推荐算法补充 。
(2) 标的物冷启动所谓标的物冷启动就是新的标的物加入系统, 没有用户操作行为, 这时协同过滤算法也无法将该标的物推荐给用户 。 可行的解决方案有三个:
首先, 这类标的物可以通过人工曝光到比较好的推荐位(如首页)上, 在尽短的时间内获得足够多的用户行为, 这样就可以“启动”协同过滤算法了 。 这里有个比较大的问题是, 如果该标的物不是主流的标的物、不够热门的话, 放在好的位子不光占用资源同时对用户体验还不好 。
其次, 在推荐算法上做一些策略, 可以将这类新的标的物以一定的概率混杂在用户的推荐列表中, 让这些标的物有足够多的曝光, 在曝光过程中收集用户行为, 同时该方法也可以提升用户推荐的多样性 。
最后, 这类标的物也可以通过基于内容的推荐算法来分发出去, 作者在《基于内容的推荐算法》中已经讲过内容推荐, 这里不再赘述 。
(3) 系统冷启动所谓系统冷启动, 就是该产品是一个新开发不久的产品, 还在发展用户初期阶段, 这时协同过滤算法基本无法起作用, 最好采用基于内容的推荐算法或者直接利用编辑编排一些多样性的优质内容作为推荐备选推荐集 。
总结至此, 协同过滤推荐算法基本讲完了, 在最后我们做一个简单总结 。 本文对协同过滤算法原理、工程实践进行了介绍, 在工程实践上既讲解了批处理实现方案, 同时也讲解了一种近实时实现方案 。 并且对协同过滤的产品形态及应用场景、优缺点、在落地协同过滤算法中需要注意的问题进行了介绍 。 希望本文可以帮助读者更深入地了解协同过滤推荐算法 。 参考文献中的材料从学术上、工业界都对协同过滤算法原理、实践从不同视角及场景进行了论述, 具有非常大的参考价值, 值得大家阅读学习 。
参考文献
  1. Item-based collaborative filtering recommendation algorithms
  2. item-based top-n recommendation algorithms
  3. Collaborative filtering for implicit feedback datasets
  4. Amazon.com reecommendations: Item-to-item collaborative filtering
  5. TencentRec- Real-time Stream Recommendation in Practice
  6. Google news personalization: Scalable online collaborative flitering
  7. Forgetting mechanisms for incremental collaborative filtering

    推荐阅读