【推荐算法】基于社交兴趣增强的视频推荐算法

01推荐现状

先简单介绍一下推荐系统的现状。

图片

推荐系统其实在生活中已经很常见了,随着网络上的信息越来越多,人们很难从海量信息中找出最适合自己的东西。为了解决这种信息过载的问题,衍生出了推荐系统。它会预测用户的需求,推荐其可能喜欢的内容,缓解用户做出选择的烦恼。

早期的推荐算法比较简单,经典算法包括基于内容的、基于知识的、还有基于协同过滤的等等。

现在的研究方向主要集中在深度学习方面,通过神经网络的训练来有效提取特征、获取更精准的表示能力,提升匹配程度。在推荐系统领域已经获得不错的效果。

上述这些方法上面都存在着一个问题,就是冷启动问题。

冷启动问题分为两类:

  • 用户冷启动:如何给新加入的用户推荐可能感兴趣的物品,对于一个公司来说,用户冷启动是非常关键的,新用户的留存可以让公司发展得更快;

  • 物品冷启动:如何把新上架的物品推荐给潜在的用户。

本次分享将针对用户冷启动问题来展开讨论。

02社交兴趣网络

图片

针对用户冷启动有两个解决方法:

  • 首先是高效地利用 Side Information

除了 ID 信息以外,通常把用户属性特征,比如年龄、性别,还有额外的一些东西补充到模型中去训练,这是利用 Side Information 的一个方式。

  • 第二是高效地利用有限的交互数据

我们没办法拿到更多的 Side Information,因此要高效地利用现有的 Side Information,来提升效果。

接下来将重点讲解如何高效地利用 Side Information。这就引出了我们今天要讲的社交兴趣网络。

图片

社交兴趣网络主要分为两个部分:

  • 一个是社交网络,代表人与人之间的直接关系,比如 Facebook、 Twitter 、QQ等上面的好友关系。

  • 另一个是兴趣网络,主要表示的是人和社交圈之间的关系,包含非常明确的,比如你经常喜欢看搞笑视频,或者比较喜欢看足球,或者是你在某些平台上面经常追哪个剧,关注哪些博主等类似的信息。

我们提出了兴趣抽取器SocialNet,来抽取用户的社交兴趣。这个抽取器是一个可集成到其他推荐算法中的非常实用的组件。在这基础上,我们选取了YouTube DNN 做 baseline,把 SocialNet 获得的用户兴趣集成进去,通过 attention 的方式来进行权重融合,得到最终的网络,叫做 Socail4Rec。下面来详细介绍这一算法.

03Socail4Rec

1.算法模型的概览图

图片

模型的总体概览图如上所示,其中包含三个部分:

  • 粗粒度兴趣抽取器 – SoNN

  • 细粒度兴趣抽取器 – metapath neighborhood aggregation

  • 最后将抽取器集成到 YouTube DNN 模型里面去,做成兴趣向量模型应用,兴趣增强网络 – Social Enhanced Recommendation

2.Social4Rec-粗粒度兴趣提取器-SoNN

图片

如上图,通过用户,我们可以拿到他的一些社交兴趣信息,比如他平时喜欢看什么电影,喜欢关注哪些明星,他的好友等等。针对这些信息,通过 Embedding Layer拿到其 embedding。

我们在中间设计了一个网络,叫自组织神经网络,这个网络的用途是将得到的这些 embedding 划分兴趣组,将用户归到兴趣组里面。

具体做法:

(1)第一步通过自组织神经网络,先得到它所属的兴趣组。

自组织神经网络相当于一个权重矩阵,在计算过程中会不断更新。

我们先把用户的这些兴趣特征 embedding汇到网络里面,去得出它所属的兴趣组。公式中Wj 就是自组织神经网络的可训练的权重,根据用户的embedding,去得出用户所属的最接近的兴趣组。

图片

(2)第二步根据用户的 embedding 去更新总的用户兴趣组。

更新的方式主要是下面两个公式:把用户的输入去计算出跟整个矩阵组的差值,根据学习率和衰减系数得到更新权重。衰减的系数可以根据公式算出来的。Sj,i 就代表当前兴趣和我们需要计算的另一个兴趣的距离,来得出它所属的范围:

  • 如果距离是0:我们以最大权重更新,相当于在矩阵里面可能有 100 个兴趣,如果用户算出来的上一个方法里面的兴趣跟当前兴趣是同一个兴趣,我们就以最大的权重去更新。

  • 如果有不一样的距离:我们就根据公式算出它的衰减系数。

  • 如果距离太远:我们就直接不更新它的权重。

更新权重的方式,在经过几次迭代之后可以更新成一个比较合适的权重矩阵,也可以对每一个用户区分出他的兴趣组。在这个过程中,我们就可以把用户区分到兴趣组上面。

图片

(3)第三步兴趣组聚合

兴趣组可能会存在一些情况,太稀疏,每个组里面的人可能很少。我们需要通过 KMeans 的方法,把这些比较稀疏的兴趣组进行小小的聚合。比如可能足球细分类里面又有很多的小类。这些小类的兴趣组里面的用户并不多,我们就需要把他们重新聚合成一个大类,将用户重新归到大的兴趣组里面。

在这一步我们就把用户进行了一个粗的分类,分到了比较大的兴趣组里面。

3.Social4Rec-细粒度兴趣提取器-Meta-path neighborhood aggregation

第二个就是进行细分类,通过粗分类我们已经把用户群体归到大的组里面,但这个组会比较大。要在这个大的组里面更精细地去抽取用户的兴趣向量,我们采用了Meta-path 的方法去抽取。

一个典型的 Meta-path UMU 定义为:比如用户订阅电影, User 1 订阅了 Movie 1, User 2 也订阅了 Movie 1,通过 Meta-path 他们两个是可以关联起来的。通过这样的方式,在同一个大的兴趣组里面,我们可以找到这样user1具有关联性的很多个user2用户,我们抽取其中的 top N 的user2用户进行 embedding 的聚合。

top N的用户怎么选取?

直接把它们的初始 embedding 与当前user的embedding算 距离最近的top10,然后将这个 top10 聚合到 user embedding 上面去。

图片

这是具体的计算公式,在兴趣组里面,通过 Meta-path 的方法找最近 top k 的用户,将这些用户的 embedding 聚合起来,再加上自己用户本身的embedding,得到最终的细粒度的用户的 embedding。

因为我们初始的时候是有通过多种兴趣,电影、关注的明星、Up 主、朋友这 4 种关系,所以我们有 4 个 Meta-path 的方法,分别得出了 4 种 Meta-path embedding。每个方式通过聚合自己的embedding、top N 个的邻居 embedding 的向量,得到 4 个 Meta-path 的embedding。最终我们拿这 4 个兴趣向量 embedding 聚合到初始的 YouTube DNN 模型上面。

图片

4.兴趣向量聚合

我们的聚合方式:

  • 首先我们输入用户特征到 YouTube DNN 模型里面,得到 Input DNN 的 embedding, 

  • 分别对4 种兴趣向量做 attention ,会得到这 4 种兴趣向量的权重。比如用户本身属性特征过完 YouTube DNN 之后,得到一串 embedding,发现是比较喜欢看电影的,可能对于电影的抽出来的兴趣向量的权重就会比较高。如果对于明星或者对于朋友这种关系比较重,那么它们各自的权重肯定会更高。

  • 通过这种方式得出每个兴趣的权重向量,再通过权重融合,得到用户最终叠加的兴趣向量的权重融合的 embedding,再跟 item 的 embedding 进行内积,得到最终的 CTR 分数。

简单来说,就是把用户兴趣直接 concat 到用户表达上做 attention,之后再经过 MLP 层得到 embedding,然后跟 item 做内积,得到CTR。

图片

这个方式在我们之前的数据集上得到了有效的验证。

之前数据集主要是两个,一个是社交的图, star 代表有多少用户关注明星的 UA 对的数量。Movie 就是用户观看电影的数量。

下面这个是我们主要用的数据集。我们抽取了 15 天的在线的流量日志,前 14 天用于训练,最后一天用于测试。其中区分了冷启动用户的数据,用于单独在冷启动用户上验证效果。

5.总体的效果

图片

总体的效果可以看上图的消融实验数据。

离线部分,在全部用户上面从最初的单独用 YouTube DNN 模型的AUC 0.765,提升到了 0.770。在冷启用户上面的提升更多,将近 2.33 个百分点。

这四个消融实验中三个对照实验代表的含义分别为:

  • 第一个是代表不带粗粒度提取器的版本

  • 第二个是不带细粒度提取器的版本

  • 第三个是不进行 Attention,而是直接将兴趣特征拼起来平均聚合。

在线部分,我们在所有用户上面去统计了一下,在线CTR提升了 3.6%,在冷启用户上CTR提升了 2%,在点击数量和观看时长上面都分别有比较大的提升。其中冷启用户的提升更多。所以在解决冷启用户问题方面,我们的模型显现出来比较显著的效果。

04总结

在item推荐中,学术界、业界典型的工作都是如何更好地提取用户直接交互行为信息,而忽视了在真实平台上我们存在的各种各样的信息。Social interest信息在推荐算法中的实用性,这对于在推荐平台上做算法的同学应该是一个特别好的启发,因为我们平台上存在大量的社交信息,有效地利用这些信息将为我们的各种业务带来极大的提升。

以上就是本次分享的内容,感谢大家支持。您的关注、点赞、收藏是我创作的动力。

万水千山总是情,点个 👍 行不行。

  • 25
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值