参考1:推荐系统的召回 参考2:推荐系统召回环节思考

    • 基于 content 的推荐

      • 优点

        • 不依赖于用户的行为数据,因此不存在新内容的冷启动问题。
      • 缺点

        • 需要精细优化的地方很多,要花费大量心思,否则效果比较难出来

        • 最重要的模块是通过用户 session 实时分析用户的意图

        • 大规模两两之间计算相似度非常困难,在工程实现上面需要 LSH 等方法

    LSH(Location Sensitive Hash),即位置敏感哈希函数。与一般哈希函数不同的是位置敏感性,也就是散列前的相似点经过哈希之后,也能够在一定程度上相似,并且具有一定的概率保证。LSH算法分两种:SimHash和MinHash。

    • simhash的原理是减少搜索空间,用汉明距离替代余弦距离
    • minHash的原理是降维。通过hash映射函数,将特征元素的个数降下来。
    • 应用

      • u2i2i:比如在资讯推荐中,我们根据用户正在阅读的内容,找到其他相似度较高(比如计算标题的 doc2vec 等)的资讯进行实时推荐
    • 基于 CF 的推荐

      • item_base: (u2i2i)根据用户的历史看过、行为过的一些item,找到其他相似的 item
      • user_base:(u2u2i)首先根据用户行为找到和这个用户有相似兴趣爱好的一群用户,根据这群用户行为的item进行推荐。
      • 优点

        • 只使用用户的数据,不考虑内容信息

        • 当用户(行为)数据非常丰富的时候很容易出效果

        • 用户行为关联可以推荐出偏 topic 属性的内容,而不会局限于关键词,因此相关性效果一般很好

      • 缺点

        • 新内容的冷启动问题非常严重,需要通过 EE (探索和利用)的方法缓解

    參考:

    什么是EE问题?又叫 explore-exploit 问题。

    • explore(探索):直译就是探索,除了推荐已知的用户感兴趣的内容,还需要不断探索用户其他兴趣,否则推荐出的结果来来回回都差不多。在系统中存在大量的长尾内容没有出现过,因此我们也没有这些长尾的(a,u,c)的统计量。因此需要探索性的创造机会对它们进行展示以积累统计量,从而更加准确的估计其 CTR。但是探索性展示过程会使总体的 收入 下降,所以需要研究怎么去控制探索的量和探索的有效性,使得系统的长期收入是提高的。

    • exploit(利用):xploit 直译就是开采,利用已知的比较确定的用户的兴趣,然后推荐与之相关的内容。

    • 关于 E&E 的算法,主要是用 UCB 方法来进行解决。

    • 应用

      • u2u2i:离线计算用户的相同用户集,然后统计这个用户集阅读的资讯情况,选择阅读最多的 topK 篇资讯进行召回

      • i2u2i:统计还有哪些用户最近也阅读了这篇资讯,然后统计这些用户还阅读了哪些其他内容,将阅读量最多的 topK 进行召回

    • 基于内容和CF的混合推荐

      • 通知利用内容信息和用户的行为信息进行推荐

      • 应用

        • u2tag2i:(严格来说这种方式只是利用了内容信息和用户个人的行为信息)根据用户和内容匹配的 tag 进行召回,但是这里需要知道用户的 tag,这些 tag 可能来自于用户的个人信息等属性,也有可能是通过统计用户的历史行为获取的。当时在这个过程中只是使用了用户个人的行为信息,并没有用到 CF。实际的项目中,因为很多用户是没有行为信息或者行为特别少,这个时候我们可以分人群进行特征提取。如果某个用户并没有行为信息,那么我们将使用整个人群的特征对他/她进行表征。