《推荐系统实践》 3. 通用推荐模型

Posted 推荐系统新视野

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《推荐系统实践》 3. 通用推荐模型相关的知识,希望对你有一定的参考价值。


3. 通用推荐模型

3.1. 协同过滤推荐

3.1.1. 基于邻域的模型

基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法。

(1)基于用户的协同过滤算法 UserCF

在一个在线个性化推荐系统中,当一个用户 A 需要个性化推荐时,可以先找到和 A 有相似兴趣的其他用户,然后把那些用户喜欢的、而用户 A 没有关注过的物品推荐给 A。这种方法称为基于用户的协同过滤算法(UserCF)。

基于用户的协同过滤算法主要包括两个步骤:

  • 找到和目标用户兴趣相似的用户集合
  • 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品,推荐给目标用户

算法的关键是计算两个用户的兴趣相似度。协同过滤算法主要利用用户兴趣列表的相似度计算用户兴趣的相似度,给定用户 ,令 表示用户 曾经有过兴趣的物品集合, 表示用户 曾经有过兴趣的物品集合。

计算用户兴趣相似度的方法有 3 种:

  • Jaccard 公式
  • 余弦相似性
  • 改进的余弦相似性 其中 降低了用户 和用户 的共同兴趣列表中热门物品对用户相似度的影响
其中 包含和用户 兴趣最接近的 个用户, 是对物品 有过行为的用户集合, 是用户 和用户 的兴趣相似度, 代表用户 对物品 的兴趣。一般情况下,如果使用的是单一行为的隐反馈数据,那所有的 。例如用户 和物品 有如下用户兴趣列表:

用户 兴趣物品列表
A
B
C
D

  用余弦相似度计算用户兴趣相似度:

通过比较我们可以知道用户 与用户 的兴趣相似度最高,所以我们从用户 的兴趣列表中选取物品推荐给用户 。此时我们需要计算用户 与用户 兴趣列表中的物品的感兴趣程度。首先建立“物品-用户”倒排表:

物品 喜欢该物品的用户
a
b
c
d
e

从倒排表我们可以看出,用户 的兴趣物品 在用户 中分别有分布,所以可以计算用户 与用户 的兴趣列表中物品的感兴趣程度,所以这里取


根据计算结果,我们可以知道用户 对物品 的兴趣一致,因此我们可以任意推荐他们其中一个,或者一起推荐给用户 。需要注意的是我们没有计算 ,这是因为物品 已经在用户 的兴趣列表中了,所以没必要再推荐。

(2)基于物品的协同过滤算法 ItemCF

基于物品的协同过滤算法用于给用户推荐那些与他们之前喜欢的物品相似的物品。

ItemCF 算法主要通过分析用户的行为记录来计算物品之间的相似度。该算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品 B。

基于物品的协同过滤算法主要分为两步:

  1. 计算物品之间的相似度;
  2. 根据物品的相似度和用户的历史行为给用户生成推荐列表。

我们给定物品 ,设 为喜欢物品 的用户数, 为喜欢物品 的用户数,则物品 的相似度可以表达为:

  • Jaccard公式

上述公式可以理解为喜欢物品 的用户中有多少比例的用户也喜欢物品 

  • 余弦相似性
该公式降低了热门物品会和很多物品相似的可能性,可以避免推荐出热门的物品。
  • 进的余弦相似性

其中 对余弦相似性进行了修正,使得活跃用户对物品相似度的贡献大于不活跃的用户。

在 ItemCF 中,两个物品之所以产生相似度是因为它们共同被很多用户喜欢,即每个用户都可以通过他们的历史兴趣列表给物品“贡献”相似度。也就是说,在得到物品之间的相似度后,我们可以建立一个“用户-物品”倒排表,即对每个用户建立一个包含他喜欢的物品的列表。

然后通过如下公式计算用户 对一个物品 的兴趣度:

这里 是用户喜欢的物品的集合, 是和物品 最相似的 个物品的集合, 是物品 的相似度, 是用户 对物品 i 的兴趣(如果用户 对物品 有过行为,即可令 )。该公式的含义是,与用户历史上感兴趣的物品越相似的物品,越有可能是用户感兴趣的物品。

ItemCF 的推荐过程可以用如下例子来表示:假设已知用户对两个物品 的兴趣度分别为 1.3、0.9,现有 5 个用户未曾见过的新物品,它们与物品 的相似度可以表示为:

物品 与物品 的相似度 与物品 的相似度
B1
0.7 0
B2
0.4 0.5
B3
0 0.5
B4 0.6 0
B5
0 0.6

可得,用户对 的兴趣度分别为:

由此我们可知,用户可能对物品 的兴趣度最高,应该向用户推荐物品

(3)UserCF 与 ItemCF 的区别

特性 UserCF ItemCF
性能 适用于用户数少于物品数的场合,如果用户很多,计算用户相似度矩阵代价很大 适用于物品数少于用户数的场合,如果物品很多,计算物品相似度矩阵代价很大
领域 适用于时效性较强,用户个性化兴趣不太明显的领域 适用于长尾物品丰富,用户个性化需求强烈的领域
实时性 用户有新行为,不一定造成推荐结果的立即变化 用户有新行为,一定会导致推荐结果的实时变化
冷启动 无法给新用户和物品进行准确推荐 新用户只要对一个物品产生行为,就可以给他推荐和该物品相关的其他物品
推荐解释 很难提供令用户信服的推荐解释 可以利用用户的历史行为给用户做推荐解释

3.1.2. 隐语义模型

LFM(Latent Factor Model)隐语义模型的核心思想是通过隐含特征(Latent Factor)联系用户兴趣和物品,它采取基于用户行为统计的自动聚类,让用户和物品的分类自动化。

LFM 通过如下公式计算用户 u 对物品 i 的兴趣:

其中 , 度量了用户 的兴趣和第 个隐类的关系,而 度量了物品 和第 个隐类之间的关系。

推荐系统的用户行为样本分为正样本(用户喜欢什么物品)和负样本(用户对什么物品不感兴趣)。经过对正负样本的采样,可以得到一个用户—物品集 ,其中如果 是正样本,则有 ,否则 ,然后,通过随机梯度下降法优化如下的损失函数来找到最合适的参数

其中, 是用来防止过拟合的正则化项, 可以通过实验获得。随机梯度下降法需要首先对参数 分别求偏导数:

然后这两个参数沿着方向导数前进,得到如下递推公式:

其中, 指学习速率(Learning Rate),是一个可调参数。LFM 和基于领域的方法区别大致如下:
特性 LFM 基于邻域
理论基础 基于机器学习,理论基础好,可以优化参数建立最优模型 基于统计的方法,没有学习过程
离线计算的空间复杂度 ,其中 指隐类的个数, 指用户数, 指物品数 UserCF: ,ItemCF: 。其中 指用户数, 指物品数
离线计算的时间复杂度 ,其中 指隐类的个数, 指迭代次数 UserCF: ,ItemCF: 。其中 指用户数, 指物品数, 指用户对物品行为记录的总数
在线实时推荐 不能实时推荐,不适用于物品数量庞大的系统 可以实时推荐
推荐解释 解释性不强 解释性好

3.1.3. 基于图的模型

用户对物品的行为很容易用二分图表示,已知用户行为数据是由一系列二元组组成的,其中每个二元组 表示用户 对物品 产生过行为,这样的数据可以用二分图 表示,其中 由用户顶点集合 和物品顶点集合 组成。对于数据集中的每一个二元组 ,都有一套对应的边 ,其中 是用户 对应的顶点, 是物品 对应的顶点,如下表和图所示:
用户 兴趣物品列表
A
B
C
D

表示为二分图:


可以看到在上图中,圆形结点为一个分割,矩形结点为另一个分割。要将个性化推荐算法放到二分图模型上,那么给用户 推荐物品的任务就可以转化为度量用户顶点 没有边直接相连的物品节点在图上的相关性,相关性越高的物品在推荐列表中的权重就越高。相关性高的一对顶点,一般具有以下特征:

  • 两个顶点之间有很多路径相连;

  • 链接两个顶点之间的路径长度都比较短;

  • 链接两个顶点之间的路径不会经过出度比较大的顶点。


基于上面 3 个主要因素,研究人员设计了很多计算图中顶点之间相关性的方法,这里讲解基于随机游走的 PageRank 和 PersonalRank 算法。

(1)PageRank 算法

PageRank 是用来衡量特定网页相对于搜索引擎中其他网页的重要性的算法,其计算结果作为 Google 搜索结果中网页排名的重要指标。网页之间通过超链接相互连接,互联网上不计其数的网页就构成了一张超大的图。PageRank 假设用户从所有网页中随机选择一个网页进行浏览,然后通过超链接在网页直接不断跳转。到达每个网页后,用户有两种选择:到此结束或者继续选择一个链接浏览。设用户继续浏览的概率为 ,用户以相等的概率在当前页面的所有超链接中随机选择一个继续浏览。当经过很多次这样的随机游走之后,每个网页被访问用户访问到的概率就会收敛到一个稳定值。算法迭代关系式如下所示:

其中 是网页 被访问的概率(也就是重要性程度), 是用户继续访问网页的概率, 是网页总数。 表示指向网页 的网页集合(入度), 表示网页 指向的网页集合(出度)。

将网页替换为其他物品同理。

(2)PersonalRank 算法

PersonalRank 跟 PageRank 的区别只在于每一步概率的取值不一样,PersonalRank 用 替换了 ,也就是说 PersonalRank 走到任意的下一个节点的概率服从均匀分布。

公式表达为:

其中 是指用户 对应的节点 为了 PersonalRank 的时间复杂度,可以从矩阵论出发重新设计算法。令 为用户物品二分图的转移概率矩阵,即: 那么,迭代公式可以转化为:

用 PersonalRank 算法对上面的示例中的用户 进行推荐,可得如下结果:

用户 和物品 没有边相连,但是用户 和物品 有三条长度为 的路径相连,用户 和物品 有两条长度为 的路径相连。那么,顶点 之间的相关性就要高于顶点 ,因而物品 在用户 的推荐列表中应该排在物品 之前。最终得出的推荐列表为

用户 与物品 的路径:

《推荐系统实践》 3. 通用推荐模型

用户 与物品 的路径:

《推荐系统实践》 3. 通用推荐模型

《推荐系统实践》 3. 通用推荐模型

3.2. 基于内容的推荐

基于内容推荐的原理是根据用户感兴趣的物品 A,找到和 A 内容信息相近的物品 B。内容信息是指用户和物品本身的内容特征,如用户的地理位置、性别、年龄,电影物品的导演、演员、发布时间等。比如用户喜欢看《神探夏洛克第一季》,那么就给他推荐《神探夏洛克第二季》。

基于内容推荐的优点如下:

  • 简单、有效,推荐结果直观,容易理解,不需要领域知识;
  • 不需要用户的历史数据,如对对象的评价等;
  • 没有物品冷启动的问题;
  • 没有稀疏问题;
  • 算法成熟,如数据挖掘、聚类分析等。

基于内容的推荐的缺点如下:

  • 特征提取能力有限比如图像、视频,没有有效的特征提取方法。即便是文本资源,特征提取也只能反应一部分内容,难以提取内容质量,会影响用户满意度。
  • 很难出现新的推荐结果根据用户兴趣的喜好进行推荐,很难出现惊喜。对于时间敏感的内容,如新闻,推荐内容基本相同,体验度较差。
  • 存在用户冷启动的问题当新用户出现时, 系统较难获得该用户的兴趣偏好,无法进行有效推荐。
  • 推荐对象内容分类方法需要的数据量较大

《推荐系统实践》 3. 通用推荐模型

3.3. 基于关联规则的推荐

关联规则是反映一个事物与其他事物之间的相互依存性和关联性,常用于实体商店或在线电商的推荐系统:通过对顾客的购买记录数据库进行关联规则挖掘,最终目的是发现顾客群体的购买习惯的内在共性。

关联规则分析中的关键概念包括:支持度(Support)、置信度(Confidence)与提升度(Lift):

  • 支持度 Support。支持度是两件商品 在总销售笔数 中出现的概率,即 同时被购买的概率

  • 置信度 Confidence。置信度是购买 后再购买 的条件概率。简单来说就是交集部分 中比例,如果比例大说明购买 的客户很大可能会购买 商品

  • 提升度 Lift。提升度表示先购买 A 对购买 B 的概率的提升作用,用来判断规则是否有实际价值,即使用规则后商品在购物车中出现的次数是否高于商品单独出现在购物车中的频率。如果大于 1 说明规则有效,小于 1 则无效

例如在某电商平台上,可乐和薯片的关联规则的支持度是 20%,购买可乐的支持度是 3%,购买薯片的支持度是 5%,则提升度为:

这说明购买可乐对购买薯片有提升效果。


该提升效果的置信度为:

《推荐系统实践》 3. 通用推荐模型

《推荐系统实践》 3. 通用推荐模型

3.4. 基于知识的推荐

基于知识的推荐(Knowledge-based Recommendation),主要应用于知识型的产品中,主要解决的问题是,为用户定制个性化的进阶路线图。

比如用户想学习钢琴,如果该用户是刚入门的小白,那最好从简单的谱子学起。但这样带来一个问题,由于用户的历史行为都在初级范围之内,根据兴趣偏好,推荐给用户的信息也都在初级范围,无法满足用户的进阶需求。

这个时候就需要基于知识的推荐。推荐系统知道用户现在所处的知识级别(用户知识),也知道学习钢琴所有的级别(产品知识),然后根据用户当前的情况为用户推荐合适的进阶信息。

精确的定义表达为:基于知识的推荐使用用户知识和产品知识, 通过推理什么产品能满足用户需求来产生推荐。这种推荐系统不依赖于用户评分等关于用户偏好的历史数据, 故其不存在冷启动方面的问题。基于知识的推荐系统响应用户的即时需求, 当用户偏好发生变化时不需要任何训练。

例如某论文针对海量习题带来的信息过载导致学习针对性不强、效率不高等问题,提出了基于知识点层次图的个性化习题推荐算法。

该算法首先根据课程知识点体系结构的特点,构建了表征知识点层次关系的权重图,该权重图有效反映知识点间的层次关系。然后,根据学生对知识点的掌握情况,在知识点层次图的基础上提出了一种个性化习题推荐算法。该算法通过更新学生-知识点失分率矩阵,获取学生掌握薄弱的知识点,以此实现习题推荐。


《推荐系统实践》 3. 通用推荐模型

3.5. 基于标签的推荐

3.5.1. 基于标签推荐物品

拿到了用户标签行为数据之后,可以通过如下步骤设计一个推荐算法:

  • 统计每个用户最常用的标签;
  • 对于每个标签,统计被打过这个标签次数最多的物品;
  • 找到一个用户常用的标签,然后找到具有这些标签的最热门物品推荐给这个用户。

在第三步中,就是要找到用户所标记标签中有哪些物品是他最感兴趣的,可以通过以下兴趣公式计算:

  • 简单标签算法 其中, 是用户 打过标签 的次数, 是物品 被打过标签 的次数
  • TF-IDF 标签算法 其中, 记录了标签 被多少个不同的用户使用过。这个公式可以给热门标签更小的权重,从而反应用户个性化的兴趣
  • 改进的 TF-IDF 标签算法 其中, 记录了物品 被多少个不同的用户打过标签。这个公式可以给热门物品更小的权重,从而反应用户个性化的兴趣。

TF-IDF 公式(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是文本分析领域的著名公式,它用于计算词的权重:

其中,


众多的标签并不是一个个标签孤岛,实际上,大多数标签之间都有一定的联系,例如“强化学习”和“多臂老虎机算法”、“Q 学习”三个不一样的标签相交于同一领域,为了衡量不同标签之间的相关性,我们这里介绍一种基于邻域的标签扩展方法,即对每个标签找到和它相似的标签,也就是计算标签之间的相似度。

如果认为同一个物品上的不同标签具有某种相似度,那么当两个标签同时出现在很多物品的标签集合中时,我们就可以认为这两个标签具有较大的相似度。对于标签 ,令 为被打上标签 的物品的集合, 为给物品 打上标签 的用户数,我们可以通过如下余弦相似度公式计算标签 和标签 的相似度:

这样的话就可以让那些含义相同的标签相互关联起来。


同时我们必须注意到,不是所有标签都能反应用户的兴趣。比如,在一个视频网站中,用户可能对一个视频打了一个表示情绪的标签,比如“不好笑”,但我们不能因此认为用户对“不好笑”有兴趣。因此我们需要进行标签清理。

标签清理的另一个重要意义在于将标签作为推荐解释。如果我们要把标签呈现给用户,将其作为给用户推荐某一个物品的解释,对标签的质量要求就很高。一般来说,标签清理有如下几种方法:

  • 去除词频很高的停止词
  • 去除因(词根、翻译、叫法)不同造成的同义词。
  • 去除因分隔符造成的同义词

此外,为了控制标签的质量,很多网站也采用了让用户进行反馈的思想,即让用户告诉系统某个标签是否合适。

为了得到更好的推荐效果,我们利用图模型做基于标签数据的个性化推荐,即基于图的标签推荐算法。

该方法首先需要将用户打标签的行为表示到一张图上。在用户标签数据集上,有 3 种不同的元素,即用户、物品和标签,因此,我们需要定义 3 种不同的顶点,即用户顶点、物品顶点和标签顶点。这样就得到了一个表示用户 给物品 打了标签 的用户标签行为

如下所示用户—物品—标签图包含 3 个用户( )、3 个物品( )和 3 个标签(

《推荐系统实践》 3. 通用推荐模型对应的用户标签行为列表为:

用户 标签 物品
A
2 b
A 2 c
B
1 a
C 3 b

在定义出用户—物品—标签图后,就可以利用 PersonalRank 算法计算所有物品节点相对于当前用户节点在图上的相关性,然后按照相关性从大到小的排序,给用户推荐排名最高的 个物品。

3.5.2. 给用户推荐标签

一般认为,给用户推荐标签有以下好处:

  • 方便用户输入标签让用户从键盘输入标签无疑会增加用户打标签的难度,这样很多用户不愿意给物品打标签,因此我们需要一个辅助工具来减小用户打标签的难度,从而提高用户打标签的参与度。
  • 提高标签质量同一个语义不同的用户可能用不同的词语来表示。这些同义词会使标签的词表变得很庞大,而且会使计算相似度不太准确。而使用推荐标签时,我们可以对词表进行选择,首先保证词表不出现太多的同义词,同时保证出现的词都是一些比较热门的、有代表性的词

用户 给物品 打标签时,我们有四种简单方法可以给用户推荐和物品 相关的标签:

  • PopularTags
    给用户 推荐整个系统里最热门的标签
  • ItemPopularTags
    给用户 推荐物品 上最热门的标签
  • UserPopularTags
    用户 推荐他自己经常使用的标签
  • HybridPopularTags
    给用户推荐物品 上最热门的标签,且他自己经常使用的标签,通过一个系数将两种方法的推荐结果进行线性加权,然后生成最终的推荐结果。

同样的,图模型也可以应用于标签推荐,在根据用户打标签的行为生成图之后,再利用 PersonalRank 算法进行排名。此时顶点的启动概率定义如下

也就是说,只有用户 和物品 对应的顶点有非 0 的启动概率,而其他顶点的启动概率都为 0。

《推荐系统实践》 3. 通用推荐模型

3.6. 基于社交网络的推荐

3.6.1. 给用户推荐内容

社会化推荐受到很多网站的重视,因为其有如下优点:

  • 好友推荐可以增加推荐的信任度
    好友往往是用户最信任的。用户往往不一定信任计算机的智能,但会信任好朋友的推荐;
  • 社交网络可以缓解冷启动问题
    当一个新用户通过微博或者 Facebook 账号登录网站时,我们可以从社交网站中获取用户的好友列表,然后给用户推荐好友在网站上喜欢的物品。从而我们可以在没有用户行为记录时就给用户提供较高质量的推荐结果。

(1)基于邻域的社会化推荐算法

最简单算法是给用户推荐好友喜欢的物品集合,设用户 对物品 的兴趣 ,则有如下公式:

其中 是用户 的好友集合,如果用户 喜欢物品 ,则 ,否则 不过显然的,不同的好友和用户 的熟悉程度和兴趣相似度是不同的。因此,我们应该在推荐算法中应该考虑好友和用户的熟悉程度以及兴趣相似度: 其中 由两部分相似度构成,一部分是用户 和用户 的熟悉程度,另一部分是用户 和用户 的兴趣相似度,两者按照一定权重组合成 。用户 和用户 的熟悉程度(familiarity)描述了两个用户在现实社会中的熟悉程度,如果用户 和用户 很熟悉,那么一般来说他们应该有很多共同的好友:

用户 和用户 的兴趣相似度(similarity)描述了两个用户喜欢的物品集合重合度:

其中 是用户 喜欢的物品集合

(2)基于图的社会化推荐算法

图模型的优点是可以将各种数据和关系都表示到图上去,应用到社交网站中,可以找出两种关系,一种是用户对物品的兴趣关系,一种是用户之间的社交网络关系。

用户的社交网络可以表示为社交网络图,用户对物品的行为可以表示为用户物品二分图,而这两种图可以结合成一个图,例如下图中的用户顶点(圆圈)和物品顶点(方块)《推荐系统实践》 3. 通用推荐模型在定义完图中的顶点和边后,需要定义边的权重。其中用户和用户之间边的权重可以定义为用户之间相似度的 倍(包括熟悉程度和兴趣相似度),而用户和物品之间的权重可以定义为用户对物品喜欢程度的 倍。之后就可以利用 PersonalRank 图排序算法给每个用户生成推荐结果。

在社交网络中,除了常见的、用户和用户之间直接的社交网络关系,还有一种关系,即两个用户属于同一个社群

为了表达这种社群关系,可以加入一种节点表示社群(下图最左边一列的节点),而如果用户属于某一社群,图中就有一条边联系用户对应的节点和社群对应的节点。在建立完图模型后,我们就可以通过前面提到的基于图的推荐算法(比如 PersonalRank)给用户推荐物品。

(3)信息流推荐

在大多数社交软件中,我们都可以通过信息流看到好友最近的言论,但信息流里面夹杂了很多用户并不关心的信息。基于信息流的推荐就是进一步帮助用户从信息流中挑选有用的信息。

目前最流行的信息流推荐算法是 Facebook 的 EdgeRank,该算法综合考虑了信息流中每个会话的时间、长度与用户兴趣的相似度,它的主要思想为:

将其他用户对当前用户信息流中的会话产生过行为的行为称为 edge,而一条会话的权重定义为:

其中: 指产生行为的用户和当前用户的相似度,这里的相似度主要是在社交网络图中的熟悉度; 指行为的权重,这里的行为包括创建、评论、like(喜欢)、打标签等。 指时间衰减参数,越早的行为对权重的影响越低。


从上面的算法描述中可以得出看出在该算法中:如果一个会话被你熟悉的好友最近产生过重要的行为,它就会有比较高的权重。

3.6.2. 给用户推荐好友

好友推荐系统的目的是根据用户现有的好友、用户的行为记录给用户推荐新的好友,从而增加整个社交网络的稠密程度和社交网站用户的活跃度。好友推荐算法在社交网络上被称为链接预测(Link Prediction),主要包括以下几种场景:

(1)基于内容的匹配

可以给用户推荐和他们有相似内容属性的用户作为好友。下面给出了常用的内容属性:

  • 用户人口统计学属性,包括年龄、性别、职业、毕业学校和工作单位等
  • 用户的兴趣,包括用户喜欢的物品和发布过的言论等
  • 用户的位置信息,包括用户的住址、IP 地址和邮编等

计算用户在上述内容信息上的相似度就可以找出相似的用户,然后相互推荐。

(2)基于共同兴趣的好友推荐

在 Twitter 和微博为代表的以兴趣图谱为主的社交网络中,用户往往不关心对于一个人是否在现实社会中认识,而只关心是否和他们有共同的兴趣爱好。因此,在这种网站中需要给用户推荐和他有共同兴趣的其他用户作为好友。

因此可以基于用户的利用协同过滤算法(UserCF)计算用户之间的兴趣相似度,其主要思想就是如果用户喜欢相同的信息和内容,则说明他们具有相似的兴趣。此外,也可以根据用户在社交网络中的发言提取用户的兴趣标签,来计算用户的兴趣相似度。

(3)基于社交网络图的好友推荐

基于好友的好友推荐算法可以用来给用户推荐他们在现实社会中互相熟悉,而在当前社交网络中没有联系的其他用户。

介绍 3 种基于社交网络的好友推荐算法:

  • 指出相似度

其中 是在社交网络图中用户 指向的其他好友的集合

  • 指入相似度

其中 是指在社交网络图中指向用户 的其他好友的集合

  • 互指相似度

这个相似度的含义是用户 指向的用户中,有多大比例也指向了用户 

  • 改进的互指相似度

这个公式考虑了指入的因素,可以避免出现网红被当做好友被推荐过来的现象。


你长这么好看还来看我的文章,真是太感谢啦


以上是关于《推荐系统实践》 3. 通用推荐模型的主要内容,如果未能解决你的问题,请参考以下文章

推荐实践快手通用策略DSL在推荐系统架构的应用和演进.pdf(附下载链接)...

音乐推荐系统实践

推荐系统[七]:推荐系统通用技术架构(Netfilx等)API服务接口

推荐系统遇上深度学习

推荐系统系列:FFM理论与实践

[论文解毒]优酷推荐系统实践:个性化惊喜推荐系统PURS