构建企业级推荐系统:算法、工程实现与案例分析
上QQ阅读APP看书,第一时间看更新

5.6.2 基于聚类为用户做推荐

有了用户的聚类,我们可以采用如下步骤来为单个用户生成个性化推荐,每个用户的推荐策略是一样的,所以可以采用分布式计算平台Spark等工具来并行化处理。

步骤1:计算出用户u对新闻s的评分。

步骤2:计算出用户u对所有新闻的评分。

步骤3:将所有新闻评分降序排列,取topN作为该用户的推荐。

步骤2和3是非常简单的处理,这里重点来说一下步骤1,即怎么计算用户u对新闻s的评分。首先可以得到用户u所属的所有类别,对于每个类别,取出该类别中所有的用户对新闻s的点击次数之和(我们可以事先将每个类别中用户点击过的新闻及次数存储起来,方便查找),再除以该类别所有点击之和,得到该类别对新闻s的评分,那么用户u所属的类别对新闻s的总评分为:

这里的即刚刚提到的类中所有用户对新闻s的点击次数之和,是类所有用户的所有点击次数之和。上式计算出的s表示了用户u对新闻s的评分。

至此,基于笔者自己的理解,简单介绍完了Google News基于用户聚类的推荐算法。该方法也只用到了用户及其他用户的新闻点击行为,因此也是一种协同过滤算法,该算法的细节可以参考本章参考文献[3]。参考文献[17][18][19][20]有更多关于用聚类来做推荐的算法,感兴趣的读者可以参考学习。