清澈如初|个性化推荐算法(推荐系统)概要( 二 )


最后是后端的RPC服务 。 个性化推荐算法主要发挥作用的部分 。
RPC服务的三大策略部分 。

  • 第一:个性化召回 , 基于用户的行为 , 通过算法模型来为用户精准推荐 。 或基于用户画像的标签推荐同类型的item 。 举个栗子 , 如果某个用户过往经常点击体育类的item , 那么用户画像就给她标上体育的lable 。 那么有较新的体育类新闻 , 会优先推荐给改用户 。 召回决定了最终推荐结果的天花板 , 因为这一步决定了候选集 。
  • 第二部分:排序部分 。 第一部分召回了用户感兴趣的物品集合后 , 我们需要决策 出展现给用户的顺序 。 好的顺序可以让用户在列表的开始找到自己的所需 , 完成转化 。 因为用户的每一次下拉都是有成本的 , 如何不能在最初的几屏里 , 显示用户的所需 , 用户就很可能流失掉 。 结合刚才召回所举的例子 , 给用户召回了体育类的item , 不同的item可能会有不同的浏览人数 , 评论人数 , 发布时间 , 不同的字数 , 不同的时长 , 不同的发布时间等等 , 同样该用户也有体育类的细分的倾向性 。
  • 第三部分:策略调整部分 , 基于业务场景的策略调整部分 。 由于召回和排序大多数是基于模型来做的 , 所以基于业务场景的策略调整部分可以增加一些规则来fit业务场景 。 比如在信息流场景中 , 我们不希望给用户一直连续推荐同一个作者的新闻 , 我们可以加一些打散的策略 。
3、工业界个性化召回架构
清澈如初|个性化推荐算法(推荐系统)概要整体的召回架构可以分为两大类:
  • 第一大类是离线模型
根据用户行为基于离线的model file算出推荐结果 , 这些推荐结果可以是用户喜欢哪些item集合 , 也可以是item之间的相似度文件, 计算出具有某种lable的item的排序 。 然后离线计算好的排序的文件写入KV存储 。 在用户访问服务的时候 , Recall部分直接从KV中读取 。 因为我们直接存储的是item ID,我们读取到的item id的时候还需要去Detail Server中得到每个item id的详情 , 然后将详情拼接好传给rank 。 (在线的server recall部分直接调用这个结果 , 拿到ID之后访问detail server得到详情 , 再往rank部分传递)
  • 第二大类是深度学习模型
如果采用深度学习的一些model , 这是需要将model file算出来的item embedding的向量也需要离线存入KV中 , 但是用户在访问我们的KV的时候 , 在线访问深度学习模型服务(recall server)的User embedding 。 同时去将user embedding层的向量和item embedding层的向量做最近邻计算 , 并得到召回 。
下面是电视猫(一款基于OTT端[智能电视或者智能盒子]的视频播放软件)的推荐系统的业务流程 , 包含召回、排序和业务调控三大算法和策略模块 , 可以作为大家设计推荐系统算法模块的参考 。
清澈如初|个性化推荐算法(推荐系统)概要推荐算法是一种机器学习算法 , 所以算法模型的质量强依赖于用于算法训练的数据集 , 这里我们简单提下推荐系统可以利用的数据有哪些(参考下面图及上面图的数据源) 。 一般推荐系统依赖三大类数据:标的物metadata数据(标的物相关的描述信息)、用户画像数据(用户相关数据 , 如年龄、地域、性别、收入等)、用户行为数据(用户对标的物的操作行为 , 如播放、点击、购买、收藏等) 。 这三类数据是主要可用的模型数据 。 另外人工标注数据、第三方数据等也可以用来补充完善上述三类数据 。
清澈如初|个性化推荐算法(推荐系统)概要相信大家对推荐流程及算法依赖的数据有了初步了解 , 下面我们来根据不同的推荐范式重点讲解对应的推荐产品及可行的推荐算法 , 方便大家将不同的推荐算法对应到不同的推荐产品中 。