快捷搜索:  汽车  科技

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)5.4.2 精排模型参考:《多目标排序在快手短视频推荐中的实践》2. 周期性复购问题内容来源:《阿里飞猪个性化推荐:召回篇》以短视频行业为例,推荐目标主要由几个方面组成:

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(1)

根据实际项目经验,从零开始介绍推荐的基础知识与整体框架。希望能帮助大家在了解部分碎片化知识后,形成对推荐系统全貌的认知。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(2)

02 推荐系统的整体框架

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(3)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(4)

03 用户画像3.1 用户标签

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(5)

3.2 用户画像的分类

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(6)

3.2.1. 原始数据

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(7)

3.2.2. 事实标签

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(8)

3.2.3. 模型标签

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(9)

04 内容画像4.1 内容画像

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(10)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(11)

4.2 环境变量

内容画像外,环境画像也非常重要。例如在短视频的推荐场景中,用户在看到一条视频所处的时间、地点以及当时所浏览的前后内容、当天已浏览时间等也是非常重要的信息,但由于环境变量数据量较大、类型较多,对推荐架构以及工程实现能力的要求也较高。

05 算法构建5.1 推荐算法流程

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(12)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(13)

5.2 召回策略

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(14)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(15)

  • 召回层与业务场景的结合

除了常规召回方式外,召回可以更多的与实际业务目标与场景结合,例如在飞猪业务场景中,其存在几类行业特点:1. 订单类型较多(涉及到交通、酒店、景区、周边游),且业务之间具有一定的相关性和搭配性。2. 用户存在周期性复购情况。3. 用户订单的稀疏性较大。针对这些问题,其召回层会结合以下解决方案:

1. 相关性&搭配性问题

  • 协同往往只能召回相似的商品,而考虑到推荐目标的替代性和互补性,更多挖掘反应搭配关系的行为集合
  • 数据稀疏且噪音较大,仅仅基于数据构建图,bad case较多,所以需要利用行业的知识图谱
  • 结合行为序列:行为序列挖掘->构件图(通过知识图谱来增加约束)->序列采样(降低噪音,抑制热门问题)->训练。

2. 周期性复购问题

  • 部分用户存在固定的购买模式。利用Poission-Gamma分布的统计建模。计算在某个时间点,购买某个商品的概率,在正确的时间点给用户推出合适的复购商品。

内容来源:《阿里飞猪个性化推荐:召回篇》

5.3 粗排策略
  • 粗排层目的:为后续链路提供集合。
  • 粗排层特点:打分量高于精排,但有严格的延迟约束。
  • 粗排层方法:主要分为两种路线
  1. 集合选择:以集合为建模目标,选出满足后链路需求集合。其可控性较弱,算力消耗较小。(多通道、listwise、序列生成)
  2. 精准预估:以值为建模目标,直接对系统目标进行值预估。可控性较高,算力消耗较大。(pointwise)
  • 粗排层发展历史:质量分->LR等传统机器学习->向量内内卷积(双塔模型)->COLD全链路(阿里)
5.4 精排策略5.4.1 精排目标
  • 精排层多目标融合原则
  1. 用户的效用需要通过多个指标反馈:例如用户对视频的喜好,会通过停留时长、完播、点赞等多个动作反应。
  2. 产品的目标需要通过多个指标衡量:例如短视频产品不仅需要考虑用户效用,也需要考虑作者效用、平台目标与生态影响。
  • 精排层多目标融合实例

以短视频行业为例,推荐目标主要由几个方面组成:

  • 对用户价值。
  • 对作者价值,包括给作者的流量、互动、收入等。
  • 对内容生态价值,包括品牌价值、内容安全、平台收入。
  • 间接价值,非直接由视频产生,例如用户的评论提醒,会改善用户的留存率。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(16)

参考:《多目标排序在快手短视频推荐中的实践》

  • 精排层多目标融合方法
  1. 改变样本权重/多模型分数融合:(1)改变样本权重:先通过权重构造目标值,再进行模型拟合。(2)多模型分数融合:先进行模型拟合在进行加权融合。缺点:依赖规则设计,依赖人工调参,且经常面临以A目标换取B目标的问题。
  2. Learn to rank :pairwise、listwise直接排序。
  3. 结合在线数据自动调参:5%线上流量探索,每次探索N组参数,根据用户的实时reward来优化线上的调参算法。设计约束项,在阈值内线性弱衰减,超出阈值指数强衰减。
  4. 多任务学习:结合深度学习网络,可以共享embedding特征,采用多种特征组合方式,达到相互促进以及泛化的作用。例如MMOE模型,不同的专家可以从相同的输入中提取出不同的特征,由gate attention结构,把专家提取出的特征筛选出各个task最相关的特征,分别接入不同任务的全连接层。不同的任务需要不同的信息,因此每个任务都由独立gate负责。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(17)

5.4.2 精排模型

  • 精排模型发展历史

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(18)

  • 精排模型分类

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(19)

  • 精排模型基本原理


  • 精排模型优缺点

5.4.3 逻辑回归——最简单Model-based模型

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(20)

1. 建立样本

逻辑回归为有监督模型,因此需要有已经分类好的样本。正样本:用户曝光过某物品并点击。负样本:用户曝光过某物品并且没有点击。如果正负样本差距过大,可以将负样本随机抽样后与正样本一起训练。或只保留有点击行为的用户作为样本,将曝光但是没有被点击的物品作为负样本。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(21)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(22)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(23)

不同交叉方法得到的不同的参数数量

5.4.4 深度学习——当前最新发展方向

1. 深度学习基础 Embedding MLP 模型

  • Embedding MLP 模型结构:微软在 2016 年提出 Deep Crossing,用于广告推荐中。
  • 从下到上可以分为 5 层,分别是 Feature 层、Embedding 层、Stacking 层、MLP 层和 Scoring 层。
  • 对于类别特征,先利用 Embedding 层进行特征稠密化,再利用 Stacking 层连接其他特征,输入 MLP (多层神经元网络),最后用 Scoring 层预估结果。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(24)

2. 深度学习主要特点

(1)embedding技术在召回层的应用:embedding,即用一个数值向量来表示一个对象的方法,对于处理稀疏特征有比较重要的应用,其将稀疏高维特征向量转换为稠密低维特征向量,可以融合大量价值信息。其主要方法有基于文本的Word2Vec 基于物品的Item2Vec 基于图结构(社交关系、知识图谱、行为关系等)的 deep walk、Node2Vec(增加了随机过程中跳转概率的倾向性)等。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(25)

(2)深度学习模型在排序层的应用:深度学习模型以MLP为基础结构,embedding MLP是最经典结合,google在此基础上提出的Wide&Deep在业界得到了广泛的应用。

3. 目前主要的衍化方向

  1. 改变神经网络的复杂程度。
  2. 改变特征交叉方式。
  3. 多种模型组合应用。
  4. 与其他领域的结合,例如自然语言处理,图像处理,强化领域等。

来源:王哲-深度学习推荐系统实战

4. 深度学习模型举例

(1)Wide&Deep模型

2016年谷歌发表的Wide&Deep模型与YouTube深度学习推荐模型,引领推荐算法走向了对深度学习的应用。

相比传统机器学习推荐模型,深度学习具有更加复杂的模型结构,而使其具备了理论上拟合任何函数的能力。同时深度学习的结构灵活性可以让其模拟出用户兴趣的变迁过程。左侧传统推荐模型与右侧深度学习推荐模型对比,其模型复杂度增加:

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(26)

(2)DeepFM模型

由FM与深度学习模型的结合生成的DeepFM模型:即FM替换了Wide&Deep的Wide部分,加强了浅层网络部分特征组合的能力,右边的部分跟Deep部分一样,利用多层神经网络进行特征的深层处理。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(27)

(3)深度兴趣DIN模型

DIN模型为阿里的电商广告推荐模型,预测其广告点击率。它主要利用注意力机制,即通过用户历史行为序列,为每一个用户的历史购买商品上面加入了激活单元,激活单元相当于一个嵌套在其中的深度学习模型,利用两个商品的embedding,生成了代表他们关联程度的注意力权重。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(28)

(4)深度兴趣进化网络DIEN

弥补DIN没有对行为序列进行建模的缺点,通过序列层,兴趣抽取层,兴趣进化层。其中利用序列模型利用商品ID和前一层序列模型的embedding向量,输出商品embedding与兴趣embedding。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(29)

5.5 重排层策略5.5.1 EE问题
  • MBA问题:所有的选择都要同时考虑寻找最优解以及累计收益最大的问题。
  • 解决方案:Bandit算法,衡量臂的平均收益,收益越大越容易被选择,以及臂的方差,方差越大越容易被选择。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(30)

  • 常用算法:汤普森采样算法,UCB算法,Epsilon贪婪算法,LinUCB算法,与协同过滤结合的COFIBA。
5.5.2 多样性问题
  • 多样性问题
  1. 多样性过差:用户探索不够,兴趣过窄,系统泛化能力以及可持续性变差;流量过于集中在少数item上,系统缺乏活力。
  2. 多样性过强:用户兴趣聚焦程度弱;item流量分配平均,对优质item激励不足。
  • 多样性解法:1. 根据内容的相关性以及相似性进行打散。2. 保持用户以及内容探索比例。3. 人工规则控制。
5.5.3 上下文问题

pointwise排序中,仅考虑item与user之间的相关性,而较少考虑前序item对后续item的影响,主要的解决方案有两种。

listwise排序

  • Pointwise考虑单点目标/Pairwise考虑一个pair/Listwise考虑整个集合的指标。
  • Listwise 对视频组合进行transformer建模,刻画视频间的相互影响,前序视频对后续视频观看有影响,前后组合决定总收益。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(31)

强化学习

  • 考虑序列决策,从前向后依次贪心的选择动作概率最大的视频。
  • Reward = f(相关性,多样性,约束)。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(32)

5.6 冷启动5.6.1 用户冷启

其主要几个方向为:加强特征与信息的补充、EE问题平衡、实时化加强。

信息补充

  1. side information 补充:例如商品类目、领域知识图谱、第三方公司数据的补充。
  2. Cross domain:利用共同的用户在不同地方的数据进行冷启。
  3. 用户填写兴趣。
  4. 元学习:利用多任务间具有泛化能力的模型,进行少样本学习(few-shot learning)。

快速收敛

  1. 主动学习、在线学习、强化学习:快速收集数据,且反馈到特征与模型中。
  2. 增强模型实时化以及收敛能力。
5.6.2 内容冷启

以短视频推荐为例,平台常常采用大小池逻辑,对内容进行不同流量的探索,并根据实际的反馈数据来决定内容可以进入的推荐范围。其中表现优质的内容将不断的进入更大的流量池中,最终进入推荐池,形成精品召回池。

06 当前发展

因果与推荐结合

  • 推荐系统中的特征向量和用户最终的反馈(比如点击、点赞等)之间的关系是由因果关系和非因果关系共同组成。因果关系是反应物品被用户偏好的原因,非因果关系仅反应用户和物品之间的统计相关性,比如曝光模式、公众观念、展示位置等。而现有推荐算法缺乏对这两种关系的区分。
  • A Model-Agnostic Causal Learning Framework for Recommendation using Search Data。论文提出了一个基于工具变量的模型无关的因果学习框架 IV4Rec,联合考虑了搜索场景和推荐场景下的用户行为,利用搜索数据辅助推荐模型。即将用户的搜索行为作为工具变量,来帮助分解原本推荐中 特征( treatments),使用深度神经网络将分离的两个部分结合起来,来完成推荐任务。

序列/会话推荐

  • 推荐系统倾向于学习每个用户对物品的长期和静态的偏好,但一个用户的所有的历史交互行为对他当前的偏好并非同等重要,用户的短期偏好和跟时间相关的上下文场景所包含的信息更加实时也更加灵敏。基于会话的推荐系统从一个用户的最近产生的会话中捕获他的短期偏好,以及利用会话和会话间的偏好变化,进行更精准和实时推荐。
  • TKDE 2022 | Disentangled Graph Neural Networks for Session-based Recommendation。用户选择某个物品的意图是由该物品的某些因素驱动的,本文的方法建模了这种细粒度的的兴趣来生成高质量的会话嵌入。

图神经网络与推荐结合

  • 大部分的信息本质上都是图结构,GNN能够自然地整合节点属性信息和拓扑结构信息,来减少特征处理中的信息折损。
  • ICDE 2021 | Multi-Behavior Enhanced Recommendation with Cross-Interaction Collaborative Relation Modeling。利用图神经网络建模Multi-Behavior 推荐。

知识图谱与推荐结合

  • 先验的知识图谱可以对推荐系统进行很好的信息补充和信息约束,特别是在数据较为稀疏的场景下。(1)知识图谱中的结构化知识可以在冷启动场景中提供更多的信息。(2)对于数据稀疏,方差过大的情况下,增加有效约束。(3)先验知识纠正数据偏差。(4)增强推荐算法可解释性。
  • Conditional Graph Attention Networks for Distilling and Refining Knowledge Graphs in Recommendation 由于知识图谱的泛化性和规模性,大多数知识关系对目标用户-物品预测没有帮助。为了利用知识图谱来捕获推荐系统中特定目标的知识关系,需要对知识图谱进行提取以保留有用信息,并对知识进行提炼以捕获更准确的用户偏好。这篇文章提出了Knowledge-aware Conditional Attention Networks(KGAN)网络,对于给定target(即用户-物品对),基于知识感知的注意力自动从全局的知识图谱中提取出特定于target的子图。通过在子图上应用条件注意力机制进行邻居聚合,以此实现对知识图谱的细化,进而获得特定target的节点表示。

强化学习

  • 与传统推荐算法不同,其主要描述和解决智能体在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。
  • CIKM 2021 | Supervised Advantage Actor-Critic for Recommender Systems。现有的RL (self-)supervised sequential learning方式由于缺乏负奖励信号,q值的估计往往偏向于正值。此外,q值还严重依赖于序列的特定时间戳。本文提出负采样策略来训练RL分量,并将其与有监督序列学习相结合。

多模态内容推荐

  • 短视频推荐业务中,涉及的上下文信息包含图像,语音,文本,社交网络,知识图谱,将不同的上下文特征进行融合。
  • Arxiv 2021 | MultiHead MultiModal Deep Interest Recommendation Network。在DIN模型的基础上,增加了多头多模态模块(MultiHead MultiModal),丰富了模型可以使用的特征集,同时增强了模型的交叉组合和拟合能力。

对话系统:主要分为两种方向(1)通过NLP的方式来构建对话机器人。(2)交互式的意图挖掘,利用用户少量交互行为,快速得到用户偏好以完成推荐任务。

部分内容来源:推荐与广告最新论文追踪

https://www.zhihu.com/column/c_1410364359926906880

07 算法衡量标准7.1 指标选择
  • 硬指标:对于大多数的平台而言,推荐系统最重要的作用是提升一些“硬指标”。例如新闻推荐中的点击率,但是如果单纯以点击率提升为目标,最后容易成为一些低俗内容,“标题党”的天下。
  • 软指标:除了“硬指标”,推荐系统还需要很多“软指标”以及“反向指标”来衡量除了点击等之外的价值。好的推荐系统能够扩展用户的视野,发现那些他们感兴趣,但是不会主动获取的内容。同时推荐系统还可以帮助平台挖掘被埋没的优质长尾内容,介绍给感兴趣的用户。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(33)

7.2 推荐效果

如何去获得推荐效果。可以分为离线实验、用户调查、在线实验三种方法。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(34)

  • 离线效果:通过反复在数据样本进行实验来获得算法的效果。通常这种方法比较简单、明确。但是由于数据是离线的,基于过去的历史数据,不能够真实的反应线上效果。同时需要通过时间窗口的滚动来保证模型的客观性和普适性。
  • 白板测试:当在离线实验阶段得到了一个比较不错的预测结果之后,就需要将推荐的结果拿到更加真实的环境中进行测评,如果这个时候将算法直接上线,会面临较高的风险。因为推荐结果的好坏不能仅仅从离线的数字指标衡量,更要关注用户体验,所以可以通过小范围的反复白板测试,获得自己和周围的人对于推荐结果的直观反馈,进行优化。
  • 在线测试(AB test):实践是检验真理的唯一标准,在推荐系统的优化过程中,在线测试是最贴近现实、最重要的反馈方式。通过AB测试的方式,可以衡量算法与其他方法、算法与算法之间的效果差异。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(35)

08 除了算法本身之外8.1 推荐算法是否会导致信息不平等和信息茧房?

推荐系统并非导致信息不平等和信息茧房的根本原因。

  • 内容的不平等或许更多的产生于用户天性本身,而推荐算法的作用更像是帮助用户“订阅”了不同的内容。用户天然的会对信息产生筛选,并集中在自己的兴趣领域。在过去杂志订阅的阶段,虽然每个杂志和报纸的内容都是完全相同的,但是用户通过订阅不同的杂志实际接受到了完全不同的消息。而今天的内容APP提供了各种话题,各种类型的内容,但用户通过推荐算法,在无意识的情况下“订阅”了不同的“杂志”。
  • 人们更加集中于垂直的喜好是不可逆转的趋势。从内容供给的角度来讲,从内容的匮乏到繁荣,从中心化到垂直聚群,用户的选择更贴近自己的喜好是不可逆转的趋势在没有提供太多选项的时候,人们会更多的集中在某几个内容上面,而当今天层出不穷的内容出现,人们开始追逐更加个性化,精细化的内容。

但不可否认的是,推荐系统的便捷性、自动化、实时性会加重这些问题。在这样的情况下,我们能做些什么?

  • 产品价值与数据指标的平衡:推荐算法是对短期数据指标的高度拟合,一定阶段后会发现对推荐系统的人工干扰往往会造成负向的指标波动。但推荐算法往往只能带来短期的局部最优解。产品仍需要从本质出发,来看待产品给用户带来的本质价值。对产品方向的判断、以及对产品价值的坚持才是产品寻找全局最优解的方式。
8.2 算法可能产生的蝴蝶效应

在很多场景中,并非只有机器算法一种推荐方式。以视频号为例,除公域机器推荐外,也存在私域(朋友圈、群聊、单聊)、半公域(朋友tab社交推荐)等推荐方式,但推荐对整个产品体验、内容生态、作者生态的影响都是巨大的。

8.2.1 推荐算法对feed传播的影响

从feed传播来看,推荐算法给予其冷启流量,提升传播速率,利于其对抗时间衰减,快速达到社交裂变拐点,进而大规模传播

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(36)

(图中曲线均为模拟,非真实曲线,仅供示例)

一个feed在传播过程中,主要影响因素有:

  • feed特性:优质度、传播性、普适性,这三点决定其传播速度、传播稳定性以及天花板。
  • feed发表时间:feed与时间的“对抗性”。因为(1)feed无法重复消费且一段时间内目标受众有限(2)由于环境背景、文化潮流、热点等feed具有一定时效性(3)不确定性,时间越长影响其传播的因素越多,受众的注意力发生转移的可能越大。

热门对头部内容的最重要影响集中在冷启期、拐点期与加速时期。在前几个小时的冷启动时期,社交推荐无法达到其裂变点,对其传播的效果影响非常有限。feed要对抗漫长的时间影响来达到裂变点,对feed本身质量要求非常高。而通过热门的传播可以直接给到较大的冷启量,以及更快的传播速度、在feed受时间影响衰退前迎来社交裂变拐点,社交传播开始作为主场景进行下一轮传播。(社交推荐具有积累慢,但达到拐点可进行网络裂变传播,速度快、衰减慢。因此头部feed在视频号同时享受算法推荐早期爆发性强,热度积累快,又享受社交推荐,传播范围大、热度衰减慢的双重优势。)

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(37)

8.2.2 推荐算法对平台的影响

1. 推荐算法作为最初的内容筛选器,对视频号的内容分布以及产品体验有较大影响

推荐算法对feed的影响是巨大的,若无法被推荐算法识别,其获得较高热度的可能性较低,最终导致产品的流量主要集中在被推荐算法识别并推荐的feed上。其短期内对内容生态、浏览者体验有较为重要的决定作用;长期来看,对内容氛围、作者反馈、浏览者长期留存都有较大的影响

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(38)

2. 推荐算法的影响需要进行全局评估,而非局部评估

每个场景具有不同的特点,可能存在某类内容(或比例)更适合推荐场景而不适合社交场景,在达到推荐场景最优后传导进入其他场景,导致其他场景该类内容过少或过多。例如某类内容在一定比例下,推荐场景有收益,而社交场景收益为负。在此类情况下,当该类内容在热门达到最优比例后传到进入社交场景,在社交场景会而产生负向影响,仅评估推荐场景将无法衡量其对产品的整体效果。

不懂推荐算法也能设计推荐系统(推荐系统的知识与整体框架)(39)

猜您喜欢: