对2020年推荐系统技术演进趋势的认识
《推荐系统技术的演进趋势:从召回到排序再到重新排序》这篇文章主要讲的是最近两年推荐系统技术的一些明显的技术发展趋势。主要从以下几个方面入手:
推荐系统的总体架构
召回技术的发展趋势
测序模型技术的发展趋势
重排技术的发展趋势
推荐系统的宏架构:
细分的四个阶段:
1,传统:多次召回(每次召回相当于单特征排序结果)
2.未来:模型召回(引入多特征,将单特征排序扩展为多特征排序模型)
(1)型号召回
根据用户的物品嵌入,我们使用类似Faiss的高效嵌入检索工具,快速找出符合用户兴趣的物品,相当于使用多特征融合做召回模型。
理论上,你能看到的任何监督模型都可以用来制作这个召回模型,比如FM/FFM/DNN等。所谓“双塔”模型,往往是指将用户端和项端分别嵌入的结构,而不是特定的模型。
值得注意的是,如果在召回阶段使用模型召回,理论上应同时采用与排序模型相同的优化目标,尤其是如果在排序阶段采用多目标优化,召回模型也应相应采用相同的多目标优化。同理,如果整个流程包括粗排模块,粗排也要采用和精排一样的多目标优化,几个环节的优化目标要一致。因为召回和粗排是精排的前置环节,否则,如果优化目标不一致,很可能会在前置环节过滤掉优质的精排目标,影响整体效果。
(2)用户行为序列回忆
核心是:如何定义这个物品聚合函数Fun。这里需要注意的一点是,用户行为序列中的项目是按时间顺序排列的。理论上,任何能反映时间序列特征或特征局部相关性的模型都适合在这里应用,如CNN、RNN、Transformer、GRU(RNN的变体模型)等。,适用于整合用户行为序列信息。
在召回阶段,如何根据用户行为序列进行嵌入,可以采用有监督的模型,比如下一项预测的预测方法;也可以使用无监督的方法。例如,只要项目可以嵌入,就可以无监督地集成用户行为序列内容,如Sum Pooling。
(3)用户多兴趣拆分(利用用户行为项目序列嵌入用户兴趣的做法)
(4)知识地图融合回忆
根据用户的兴趣实体,在知识图谱的实体嵌入表达后(或者直接在知识图谱的节点上展开),可以通过知识展开或者根据嵌入相似度展开相关实体。
(5)图形神经网络模型的召回
图神经网络的最终目的是通过一定的技术手段获得图中节点的嵌入编码。最常用的嵌入聚合工具是CNN。对于一个图节点,它的输入可以有两种信息,一种是自己的属性信息,比如上面引用的微博的例子;另一类是图结构信息,即与当前节点有直接边关联的其他节点信息。通过CNN,可以对两种信息进行编码和聚合,形成图节点的嵌入。通过CNN这样的信息聚合器,在图节点上计算,反复更新图节点的嵌入,最终可以得到可靠的图节点嵌入信息。这个迭代过程实际上反映了距离较远的节点通过图结构逐渐传递信息的过程,所以图结构可以传递和补充知识。
我们可以进一步思考,由于图节点可以携带属性信息,比如物品的内容信息,显然有助于解决物品端的冷启动问题;因为它也允许知识在图中远距离传递,比如对于用户行为较少的场景,可以进行知识的传递和补充,说明它也适用于数据稀疏的推荐场景;另一方面,图中的边往往是由用户行为构建的,用户行为从统计学上讲,本质上是一种协作信息。比如我们常说的“A项配合B项”,本质上是指很多用户作用于A项后,再作用于B项;因此,图有一个很好的优势:方便将协作信息、用户行为信息、内容属性信息等各种异构信息整合在一个统一的框架内,统一定性为嵌入,这是其独特的优势,做起来也更自然。另一个独特的优势是图中信息的传播,因此它对于推荐的冷启动和稀疏数据场景应该特别有用。
早期是用图神经网络做推荐,因为需要全局信息,所以计算速度是个问题,而且往往图的规模很小,不具备实用价值。而GraphSAGE则通过一些手段,比如从附近的节点采样,降低了计算规模,加快了计算速度。很多提高后期计算效率的方法都是从这项工作中衍生出来的。PinSage在GraphSAGE(由同一人完成)的基础上,进一步采用大规模分布式计算,拓展了图计算的实用性,可以计算Pinterest的30亿个节点、654.38+08亿条边的巨型图,并产生了良好的落地效果。所以这两个工作可以借鉴。
总的来说,图模型召回是一个很有前途的值得探索的方向。
模型优化目标反映了我们希望推荐系统做好的事情,这通常与业务目标有关。这里主要从技术角度来讨论,而多目标优化和列表式优化是目前最常见的技术演进方向。列表式优化目标在排序阶段和重排阶段都可以采用,所以我们把它放在重排部分,这里主要介绍多目标优化;
模型的表达能力代表了模型是否具有充分利用有效特征和特征组合的能力,其中显示特征组合、新的特征提取器、强化学习技术的应用以及AutoML对模型结构的自动探索是明显的技术演进方向。
从特征和信息的角度来看,如何采用更丰富的新类型特征,信息和特征的扩展和融合是主要的技术演进方向,用户长期和短期兴趣的分离、用户行为序列数据的利用、图神经网络和多模态融合是这方面的主要技术趋势。
1.1模型优化目标-多目标优化
严格来说,推荐系统的多目标优化(同时优化点击、互动、时长等目标)不仅仅是一种趋势,而是目前很多公司的研发现状。对于推荐系统,不同的优化目标可能会相互阻碍。多目标旨在平衡不同目标之间的相互影响,如果多目标优化效果好,也会对业务效果产生很大的促进作用。总之,多目标优化是一个值得系统相关R&D人员推荐的技术方向。
从技术角度看,多目标优化有两个关键问题。第一个问题是多优化目标的模型结构;第二个问题是如何定义不同优化目标的重要性(如何找到参数之外的优化)。
2.1模型表达能力-显性特征组合
如果总结一下工业CTR模型的演进历史,你会发现,特征工程和特征组合的自动化一直是推动实用推荐系统技术演进的最重要方向,没有之一。最早的LR模型基本上是人工特征工程和人工特征组合相结合,简单有效但费时费力。然后发展到LR+GBDT的高阶特征组合自动化和FM模型的二阶特征组合自动化。然后引入DNN模型,纯简单的DNN模型实际上是在嵌入FM模型特征的基础上,增加几个MLP隐层进行隐式非线性自动组合特征。
2.2模型表达能力——特征提取器的进化
从特征提取器来看,主流DNN排名模型中最常用的特征提取器仍然是图像领域的MLP结构、CNN、NLP领域的RNN和Transformer。
MLP结构通常是两层或三层MLP隐藏层。目前,也有理论研究表明,MLP结构对于捕捉特征组合是低效的。
CNN捕捉局部特征关联是非常有效的结构,但不适合纯特征输入的推荐模型,因为推荐领域的特征之间没有必然的顺序关系,CNN捕捉远距离特征关系能力的弱点,以及RNN无法并行处理的缺点,所以速度慢。
Transformer作为NLP领域最新最有效的特征提取器,从其工作机制来看其实非常适合推荐。为什么这么说?核心在于变压器的多头自关注机制。NLP中的MHA结构会判断输入句子中任意两个词的相关性,如果将这种关系应用到推荐领域,就是通过MHA来组合任意特征的特征。如上所述,特征组合对于推荐来说是一个非常重要的环节,所以从这个角度来说,Transformer特别适合对特征组合进行建模。一层变换块表示特征的二阶组合,更多的变换块表示特征的高阶组合。但实际上,如果用Transformer做推荐,其应用效果并没有表现出明显的优势,甚至没有任何优势,基本上比典型的MLP结构略好或相近。这就意味着,也许我们需要根据推荐域的特点对Transformer进行转换,而不是直接复制NLP中的结构。
剪一张老师其他关于变形金刚的图,足够解释变形金刚的意思了,不过我还不是很懂,哈哈~
2.3建议中的AutoML应用
AutoML在17年初开始出现,最近三年蓬勃发展。在图像和自然语言处理等领域取得了非常重要的研究进展。在这些领域,目前可以通过AutoML找到比人类设计更好的模型结构。
2.4强化学习在推荐中的应用
强化学习其实更符合推荐的场景建模。一般来说,强化学习有几个关键要素:状态、行为和奖励。在推荐的场景中,我们可以将状态St定义为用户行为历史项的集合;推荐系统的可选行为空间是根据用户的当前状态st向用户推荐的推荐结果列表。这里可以看出,推荐场景下用户行为空间巨大,制约了很多强化学习方法无法对庞大的行为空间建模的应用。奖励是推荐系统给出的用户与列表内容交互的行为价值。比如可以定义,点击一个物品,奖励是1,购买一个物品,奖励是5...诸如此类。有了这些元素的场景定义,我们可以使用典型的强化学习来为推荐建模。
3.1?多模态信息融合
多模态融合,从技术上讲,本质上就是通过嵌入编码等方式,将不同模态类型的信息映射到一个统一的语义空间,使不同模态类型的信息和表达相同语义的信息完全具有可比性。比如,自然语言中说出的“苹果”这个词,和一张苹果图片,要通过一定的技术手段进行编码,比如嵌入,这种技术手段具有很高的相似度,意味着不同模式的知识映射到同一个语义空间。通过这种方式,您可以通过文本搜索包含苹果的照片,例如。
3.2?长期利益/短期利益的分离
对于推荐系统来说,准确描述用户的兴趣非常重要。目前,描述用户兴趣的方式主要有两种。一种是从用户端特征的角度来表示用户兴趣,这也是最常见的;另一种是把用户做过的项目顺序作为用户兴趣的象征。
关于List Wise的重新排序,我们可以从两个角度来说,一个是优化目标或损失函数;一是推荐模块的模型结构。
系统中推荐学习排序,我们知道有三个常见的优化目标:点方式、对方式和列表方式。所以我们首先要明确,List Wise不是指某个具体的模型或者某类模型,而是指模型的优化目标或者损失函数的定义。理论上,各种不使用的模型都可以使用列表式损失进行模型训练。损失函数最简单的定义是逐点的,即输入用户特征和单个物品的特征,对物品进行评分,对物品进行排序,即谁应该排在谁的前面,不管。显然,这种方法无论是训练还是在线推理都非常简单、直接、高效,但它的缺点是没有考虑项目的直接相关性,而这种相关性在排序中其实是有用的。成对损失在训练模型的时候,模型是直接通过两个项目的顺序关系来训练的,也就是说优化目标是A项的排名高于B项,类似于这个优化目标。事实上,Pair Wise的损失在推荐领域已经得到了广泛的应用,比如BPR损失,这是一个典型的非常有效的Pair Wise损失函数。它经常被使用,尤其是在隐式反馈中,并且是非常有效的优化目标。List Wise的损失更关注项目在整个列表中的顺序,会考虑项目在整个列表中的顺序来优化模型。在推荐中,List Wise loss函数是很多推荐系统因为训练数据难做、训练速度慢、在线推理慢等原因都在做的事情,虽然现在用的还是比较少,但是更注重排名结果的整体优化。
从模型结构来看。因为重排序模块往往放在细排序模块之后,而细排序模块已经对推荐项目进行了精准打分,所以重排序模块的输入往往是细排序模块的最高分的输出结果,即有序。精细排序模块的得分或排名对于重新排列模块来说是非常重要的参考信息。所以这个排序模块的输出顺序比较重要,能够考虑输入顺序的模型自然是重新排列模型的首选。我们知道,考虑时间序列最常见的模型是RNN和变压器,所以在重新安排模块时经常使用这两个模型是很自然的。通常的做法是对顶部结果中的项目进行排序。作为《RNN》或《变形金刚》的输入,《RNN》或《变形金刚》显然可以考虑整合当前物品上下文的特征,即对列表中的其他物品进行排序,从整个列表来评估效果。特征融合后,RNN或变换器每个输入的对应位置再次输出预测得分,并根据新的预测得分对条目进行重新排序,从而完成融合上下文信息和重新排序的目的。
参考资料:
1.推荐系统技术的演进趋势:从召回到排序再到重排。
/p/100019681
2.模型召回的典型工作:
FM车型召回:推荐系统召回四款车型之一:全能FM车型
DNN双塔回忆:大语料库项目推荐的抽样偏差校正神经模型
3、用户行为序列回忆典型工作:
GRU:基于会话推荐的Top-k增益递归神经网络
CNN:通过卷积序列嵌入的个性化Top-N顺序推荐
变形金刚:自我关注顺序推荐
4、知识图谱融合回忆典型作品:
KGAT:用于推荐的知识图注意力网络
RippleNet:在推荐系统的知识图上传播用户偏好
5、图形神经网络模型回忆典型工作:
GraphSAGE:大型图上的归纳表示学习
PinSage:用于Web规模推荐系统的图卷积神经网络
6.模型多目标优化的典型工作:
MMOE:用多门专家混合建模多任务学习中的任务关系
Pareto优化:电子商务推荐中多目标优化的Pareto有效算法。
7.显式特征组合的典型工作:
深度与广度。跨:深& amp跨网络进行广告点击预测
XDeepFM:结合显式和隐式特征交互的推荐系统
8.特征提取器的典型工作:
AutoInt:通过自注意神经网络的自动特征交互学习
DeepFM:一个端到端的广域& amp用于CTR预测的深度学习框架
9.比较CNN\RNN\特征提取器:/p/54743941
10,AutoML在典型工作中的推荐应用:
ENAS结构搜索:AutoML在推荐排名网络结构搜索中的应用
双线性特征组合:fibinet:结合特征重要性和双线性特征交互进行点击率预测。
11.推荐应用中强化学习的典型工作:
Youtube:针对增强推荐系统的Top-K偏离策略纠正
Youtube:基于Slate的推荐系统的强化学习:一种易处理的分解和实用方法
12,多模态融合的典型作品:
DNN回忆:脸书市场个性化产品检索的协作多模态深度学习。
排序:图像问题:使用高级模型服务器对用户行为进行可视化建模。
13、长短期利益分离典型工作:
1.具有长期和短期用户表征的神经新闻推荐
2.基于长时和短时注意记忆网络的序列感知推荐
14,列表式重新排序典型工作:
1.推荐的个性化重新排序
2.学习用于排名细化的深度列表式上下文模型