关于推荐系统知识点整理

以下内容是对
张俊林—推荐系统技术演进趋势:从召回到排序再到重排
Tang AI—推荐系统的架构-冷启动-召回-粗排-精排-重排
学习笔记,仅以自身复习所用:

召回

一、模型召回

召回环节的有监督模型化以及一切Embedding化,这是两个相辅相成的总体发展趋势。
1、传统标准召回结构:多路召回
①无个性化因素的召回路:如热门商品或者热门文章或者历史点击率高的物料的召回
②包含个性化因素的召回路:如用户兴趣标签召回
可以把某个召回路看作是:单特征模型排序的排序结果,只不过这个排序模型,在用户侧和物品侧只用了一个特征。

2、召回的通用架构

①核心思想:将用户特征和物品特征分离,各自通过某个具体的模型,分别打出用户Embedding以及物品Embedding。
②在线上,可以根据用户兴趣Embedding,采用类似Faiss等高效Embedding检索工具,快速找出和用户兴趣匹配的物品,这样就等于做出了利用多特征融合的召回模型。
③理论上,任何有监督模型都可以用来做召回模型,比如FM/FFM/DNN等,常说的所谓**“双塔”**模型,指的其实是用户侧和物品侧特征分离分别打Embedding的结构而已,并非具体的模型。

3、模型召回优缺点
优点:①如多路召回每路截断条数的超参个性化问题等会自然被消解掉
缺点:①模型召回内容头部问题:每路召回个数靠硬性截断,可以根据需要,保证你想要召回的,总能通过某一路拉回来;而由于换成了模型召回,面向海量物料库,排在前列得分高的可能聚集在几个物料分布比较多的头部领域
解决方法:包括比如训练数据对头部领域的降采样,减少某些领域主导,以及在模型角度鼓励多样性等不同的方法。
②理论上,在召回阶段使用模型召回,召回、粗排、精排相应模型应该同步采用相同的优化目标,尤其是排序阶段采用多目标优化,召回模型也应该采用相同的多目标优化。

FM模型召回:推荐系统召回四模型之:全能的FM模型
DNN双塔召回:Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations

二、用户行为序列召回

输入是用户行为过的物品序列(是有时序的),可以只用物品ID表征,也可以融入物品的Side Information比如名称,描述,图片等,需要一个函数Fun把这些进行糅合到一个embedding里就代表了用户兴趣。在召回阶段,我们可以用用户兴趣Embedding采取向量召回,而在排序阶段,这个embedding则可以作为用户侧的特征。

核心在于聚合函数Fun如何定义:任何能够体现时序特点或特征局部性关联的模型,都比较适合应用在这里,典型的比如CNN、RNN、Transformer等。19年前很多试验结果证明,GRU(RNN的变体模型)可能是聚合用户行为序列效果最好又比较简单的模型。

GRU:Recurrent Neural Networks with Top-k Gains for Session-based Recommendations
CNN:Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
Transformer: Self-Attentive Sequential Recommendation

三、用户多兴趣拆分

本质上是用户行为序列打embedding方向的一个细化,输入是一样的,输出由单独一个用户embedding,换成输出多个用户兴趣embedding。
目前(19年)常用的拆分用户兴趣embedding的方法,主要是胶囊网络和Memory Network,但是理论上,很多类似聚类的方法应该都是有效的。

优点:每个兴趣embedding各自拉回部分相关的物料,则可以很大程度缓解召回的头部问题。

召回:Multi-Interest Network with Dynamic Routing for Recommendation at Tmall
排序:Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction

四、知识图谱融合召回

利用物品之间的知识联系增强推荐效果

1、用于做推荐,一般有两大类知识图谱融合模式:知识图谱Embedding模式(KGE)及图路径模式。
①知识图谱Embedding模式:首先根据TransE等对知识图谱进行Embedding化编码的工具,将节点和边转换成Embedding表征方式。然后根据用户行为过的物品,以及物品在知识图谱中的Embedding和知识图谱中其它知识embedding的距离,来扩展物品的信息含量,或者扩充用户行为数据。
可解释性比较弱:因为知识之间的关联是通过Embedding计算出来的,不好解释为什么从这个知识跳到那个知识。
②图路径模式:根据物品属性之间的关联等人工定义好的所谓Meta-Path,通过中间属性来对知识传播进行路径搭建,也就是人把自己的经验写成知识图谱中知识的关联和传播模式规则,以此来利用知识图谱里的数据。

2、存在问题
①对知识进行近距离的拓展,可能会带来信息补充作用,但是如果拓展的比较远,或者拓展不当,反而可能会引入噪音,可能比较适合用户行为数据非常稀疏以及用户冷启动的场景。
②完全通用的知识图谱在特定场景下是否好用,专业性的知识图谱如何构建以及构建成本问题。
③知识图谱编码的是静态知识,而不是用户比较直接的行为数据,和具体应用距离比较远,可能导致。

  1. KGAT: Knowledge Graph Attention Network for Recommendation
  2. RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems

五、图神经网络召回模型

图具备的一个很好的优势是:它比较便于把协同信息、用户行为信息、内容属性信息等各种异质信息在一个统一的框架里进行融合,并统一表征为embedding的形式,另外信息在图中的传播性,对于推荐的冷启动以及数据稀疏场景应该特别有用。

GraphSAGE则通过一些手段比如从临近节点进行采样等减少计算规模,加快计算速度,很多后期改进计算效率的方法都是从这个工作衍生的;而PinSage在GraphSAGE基础上(这是同一拨人做的),进一步采取大规模分布式计算,拓展了图计算的实用性,可以计算Pinterest的30亿规模节点、180亿规模边的巨型图,并产生了较好的落地效果。
GraphSAGE: Inductive Representation Learning on Large Graphs
PinSage: Graph Convolutional Neural Networks for Web-Scale Recommender Systems

排序

在这里插入图片描述
粗排:双塔粗排、交叉粗排(user特征和item特征交叉)

精排,就是在算力能够承受的最大压力下尽可能的提高模型的精度,满足用户的兴趣点,提高用户满意度,对于正常推荐系统来说,一个好的精排模型应该满足user对粗排送上的item的序关系(即越容易被user点击和喜欢的item排在越前面),对于广告推荐来说,精排模型不止要满足序关系还要满足值关系即精排打分应该和item的点击率是1:1的关系,这个指标被称为COPC即 (copc=实际点击率/模型预测的点击率)。之所以要满足值关系的原因是因为在广告推荐中精排打分将会直接被用于广告定价,可见精排对于广告推荐来说是更加的重要。

还有一个点要注意,就是精排要定时对模型进行迭代或者模型冷启动,如果精排模型长期不进行迭代,产生的训练数据会逐渐拟合模型的分布,模型将和数据合二为一,那么之后的新模型将很难超过当前的模型,甚至连持平都很困难,这种模型就是老汤模型。这时候只能通过更长周期的训练数据让新模型去追赶老模型或者去加载老模型的参数热启动新模型,但是,这种热启动的方式很难去改变模型的结构,模型建模受限大。所以,在初次建模的时候就要考虑到老汤模型的问题,定时对精排模型进行迭代或者每隔一段时间(比如3个月)就将模型重训-进行数据冷启动,这么做的方式是让模型忘记之前过时的分布,着重拟合当前的分布。

一、显式特征组合

纯粹的简单DNN模型本质上其实是在FM模型的特征Embedding化基础上,添加几层MLP隐层来进行隐式的特征非线性自动组合而已。所谓隐式,意思是并没有明确的网络结构对特征的二阶组合、三阶组合进行直接建模,只是通过MLP,让不同特征发生交互。
显式特征组合:在模型结构中,明确设计一些子网络或者子结构,对二阶特征组合、三阶特征组合,甚至更高阶的特征组合进行表征。比如说DeepFM,Deep部分就是个典型的DNN模型,而FM部分则是明确对特征二阶组合进行建模的子模型。典型的对高阶特征组合建模的比如xDeepFM、Deep&Cross。

Deep& Cross: Deep & Cross Network for Ad Click Predictions
XDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

二、特征抽取器的进化

目前(2019)主流的DNN 排序模型,最常用的特征抽取器仍然是MLP结构,通常是两层或者三层的MLP隐层。目前也有理论研究表明:MLP结构用来捕获特征组合,是效率比较低下的,除非把隐层神经元个数急剧放大,而这又会急剧增加参数规模。
常用的特征抽取器包括图像领域的CNN、NLP领域的RNN和Transformer。CNN捕获局部特征关联是非常有效的结构,但是并不太适合做纯特征输入的推荐模型,因为推荐领域的特征之间,在输入顺序上并无必然的序列关系,基本属于人工定义随机顺序,而CNN处理这种远距离特征关系能力薄弱,所以并不是特别适合用来处理特征级的推荐模型。当然,对于行为序列数据,因为本身带有序列属性,所以CNN和RNN都是非常适合应用在行为序列结构上的,也是有一定应用历史的典型工具,但是对于没有序关系存在的特征来说,这两个模型的优势不能发挥出来,反而会放大各自的劣势,比如CNN的捕获远距离特征关系能力差的弱点,以及RNN的不可并行处理、所以速度慢的劣势等。
Transformer作为NLP领域最新型也是最有效的特征抽取器,从其工作机制来说,其实是非常适合用来做推荐的。为什么这么说呢?核心在于Transformer的Multi-Head Self Attention机制上。MHA结构在NLP里面,会对输入句子中任意两个单词的相关程度作出判断,而如果把这种关系套用到推荐领域,就是通过MHA来对任意特征进行特征组合,而上文说过,特征组合对于推荐是个很重要的环节,所以从这个角度来说,Transformer是特别适合来对特征组合进行建模的,一层Transformer Block代表了特征的二阶组合,更多的Transformer Block代表了更高阶的特征组合。但是,实际上如果应用Transformer来做推荐,其应用效果并没有体现出明显优势,甚至没有体现出什么优势,基本稍微好于或者类似于典型的MLP结构的效果。这意味着,可能我们需要针对推荐领域特点,对Transformer需要进行针对性的改造,而不是完全直接照搬NLP里的结构。

AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks
DeepFM: An End-to-End Wide & Deep Learning Framework for CTR Prediction

三、AutoML在推荐的应用

AutoML通过各种基础算子的任意组合,在超大的算子组合空间内,寻找性能表现最好的模型,几乎可以达到穷举遍历的效果,而人类专家设计出来的最好的模型,无非是算子组合空间中的一个点而已,而且人类专家设计的那个模型,是最好模型的可能性是很低的。无非,现在AutoML的不成熟,体现在需要搜索的空间太大,比较消耗计算资源方面而已,随着技术的不断成熟,搜索成本越来越低,AutoML在很多算法方向超过人类表现只是个时间问题。

ENAS应用在排序结构搜索
我们对ENAS进行了改造,使得它可以应用在CTR领域 Time:2018年中
定义了CTR DNN排序网络结构常见算子
将CTR DNN排序常见算子引入ENAS
修改child model的算子序列解析步骤和训练过程
分类问题修改为回归问题
评测指标的修改,accuracy改为auc

DNN Ranking Model基本算子
类型1.Field级别的Attention算子:MLP,SENET,Multi-Head…
类型2.二阶特征组合算子:FM,HFM,CIN,Bilinear三种类型…
类型3.DNN输入算子:一阶,二阶,一阶+二阶,—阶+二阶n维度…
类型4.DNN的隐层个数:40-160,100-400,400-900…
类型5.DNN的激活函数:relu, sigmoid, identity, tanh…

ENAS结构搜索:AutoML在推荐排序网络结构搜索的应用
双线性特征组合: FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

四、增强学习在推荐的应用

增强学习有几个关键要素:状态、行为以及回报。
在推荐场景下,我们可以把状态St定义为用户的行为历史物品集合;推荐系统可选的行为空间则是根据用户当前状态St推荐给用户的推荐结果列表,这里可以看出,推荐场景下,用户行为空间是巨大无比的,这制约了很多无法对巨大行为空间建模的增强学习方法的应用;而回报则是用户对推荐系统给出的列表内容进行互动的行为价值

利用增强学习来做推荐系统,有几个显而易见的好处,比如:
1、比较容易对“利用-探索”(Exploitation/Exploration)建模。所谓利用,就是推荐给用户当前收益最大的物品,一般推荐模型都是优化这个目标;所谓探索,就是随机推给用户一些物品,以此来探测用户潜在感兴趣的东西。如果要进行探索,往往会牺牲推荐系统的当前总体收益,毕竟探索效率比较低,相当的通过探索渠道推给用户的物品,用户其实并不感兴趣,浪费了推荐位。但是,利用-探索的均衡,是比较容易通过调节增强学习的回报(Reward)来体现这个事情的,比较自然;
2、比较容易体现用户兴趣的动态变化。增强学习比较容易通过用户行为和反馈的物品对应的回报的重要性,而动态对推荐结果产生变化,所以是比较容易融入体现用户兴趣变化这个特点的。
3、有利于推荐系统长期收益建模。这点是增强学习做推荐最有优势的一个点。我们优化推荐系统,往往会有一些短期的目标比如增加点击率等,但是长期目标比如用户体验或者用户活跃留存等指标,一般不太好直接优化,而增强学习模型比较容易对长期收益目标来进行建模。
增强学习是技术落地投入产出比非常低的技术点。

Youtube: Top-K Off-Policy Correction for a REINFORCE Recommender System
Youtube: Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology

五、多目标优化

多目标优化(点击,互动,时长等多个目标同时优化)
对于推荐系统来说,不同的优化目标可能存在互相拉后腿的现象,比如互动和时长,往往拉起一个指标另外一个就会明显往下掉,而多目标旨在平衡不同目标的相互影响,尽量能够做到所有指标同步上涨,即使很难做到,也尽量做到在某个优化目标上涨的情况下,不拉低或者将尽量少拉低其它指标

多目标优化最关键的有两个问题:①多个优化目标的模型结构问题;②不同优化目标的重要性如何界定的问题。

1、模型结构
(1)Share-Nothing”结构每个优化目标独立优化,比如点击目标训练一个模型,互动目标训练一个模型,时长目标训练一个模型,各自优化,然后每个目标独立给实例预测打分,给每个目标设定权重值,各个目标打分加权求和线性融合,或者引入权重指数及根据目标关系引入非线性融合。这是目前最常见的落地方案。因为目标之间独立优化,模型是通过分数融合来实现多目标的

(2)Transfer Learning:引入不同目标或者任务的参数共享
共享参数的原因:①出于计算效率考虑,不同目标共享结构能够提升计算效率;②假设我们有两类任务或者目标,其中一个目标的训练数据很充分,而另外一个目标的训练数据比较少;如果独立优化,训练数据少的目标可能很难获得很好的效果;如果两个任务相关性比较高的话,其实我们可以通过共享参数,达到把大训练数据任务的知识迁移给训练数据比较少的任务的目的,这样可以极大提升训练数据量比较少的任务的效果。

(3)Share-Bottom结构 :典型的共享参数的多目标优化结构,核心思想是在比如网络的底层参数,所有任务共享参数,而上层网络,不同任务各自维护自己独有的一部分参数,这样就能达成通过共享参数实现知识迁移的目的。但是,Share-Bottom结构的缺点:如果两个任务不那么相关的话,因为强制共享参数,所以可能任务之间相互干扰,会拉低不同目标的效果。

(4)MMOE:针对Share-Bottom结构的局限进行了改进,核心思想就是把底层全部共享的参数切分成小的子网络,不同任务根据自己的特点,学习配置不同权重的小网络来进行参数共享。这样做的话,即使是两个任务不太相关,可以通过不同的配置来达到模型解耦的目的,而如果模型相关性强,可以共享更多的子网络。明显这样的组合方式更灵活,所以对于MMOE来说,无论是相关还是不相关的任务,它都可以达到我们想要的效果。

2、不同优化目标权重设定
我们可以根据业务要求,强制制定一些权重,比如视频网站可能更重视时长或者完播率等指标,那就把这个目标权重设置大一些。但是,有些任务之间的指标优化是负相关的,很多实际做法做起来还是根据经验拍一些权重参数上线AB测试,费时费力。而如何用模型自动寻找最优权重参数组合就是一个非常有价值的方向,目前最常用的方式是采用帕累托最优的方案来进行权重组合寻优,这是从经济学引入的技术方案,未来还有很大的发展空间。

MMOE:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
帕累托最优:A Pareto-Efficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation

六、多模态信息融合

模态:指的是不同类型或者模态形式的信息存在形式,比如文本、图片、视频、音频、互动行为、社交关系等。
多模态融合:本质上是把不同模态类型的信息,通过比如Embedding编码,映射到统一的语义空间内,使得不同模态的信息,表达相同语义的信息完全可类比。
在推荐场景下,大的技术框架仍然遵循目前主流的技术框架,比如DNN Ranking。为**了体现多模态集成的目标,可以在User侧或者Item侧,把多模态信息作为新的特征融入,**比如加入CNN特征抽取器,把商品图片的特征抽取出来,作为商品侧的一种新特征,不同模态的融入,很可能意味着找到对应的特征抽取器,以新特征的方式融入,而有监督学习的学习目标会指导特征抽取器抽出那些有用的特征。多模态做推荐难在工程效率。因为目前很多模态的信息抽取器,比如图片的特征抽取,用深层ResNet或者ReceptionNet,效果都很好,但是因为网络层深太深,抽取图片特征的速度问题就是多模态落地面临的主要问题。

DNN召回:Collaborative Multi-modal deep learning for the personalized product retrieval in Facebook Marketplace
排序:Image Matters: Visually modeling user behaviors using Advanced Model Server

七、长期兴趣/短期兴趣分离

长期兴趣代表用户长久的比较稳定的偏好;而短期兴趣具有不断变化等特点。两者综合,可以从稳定性和变化性这个维度来表征用户偏好。

1、用户短期兴趣的表征:往往使用用户点击(或购买,互动等其它行为类型)过的物品序列来表征,尤其对于比较活跃的用户,用点击序列更能体现短期的含义,因为出于工程效率的考虑,如果用户行为序列太长,可以使用最近的K个行为序列中的物品,来表征用户兴趣,而这明显更含有短期的含义;因为点击序列具备序列性和时间属性,所以对于这类数据,用那些能够刻画序列特性或者物品局部相关性的模型比较合适,比如RNN/CNN和Transformer都比较适合用来对用户短期兴趣建模。
2、长期兴趣的表征:其实传统的以特征作为用户兴趣表征的方法,其中部分特征就是从用户长期兴趣出发来刻画的,比如群体人群属性,但是往往粒度太粗。关于如何刻画用户长期兴趣,往往还是用UID特征来表征用户的长期兴趣,通过训练过程对UID进行Embedding编码,以此学习到的UID Embedding作为用户长期兴趣表征,而用户行为序列物品作为用户短期兴趣表征。当然,UID如果用一些其它手段比如矩阵分解获得的Embedding初始化,也是很有帮助的。

  1. Neural News Recommendation with Long- and Short-term User Representations
  2. Sequence-Aware Recommendation with Long-Term and Short-Term Attention Memory Networks

重排

为了更好的推荐体验,会加入去除重复、结果打散增加推荐结果的多样性、强插某种类型的推荐结果等不同类型的策略。

一、调权

主要是对精排的item打分进行提升和打压,最简单的做法就是将精排打分乘以一个系数 α。

1、个性化调权
例如经过数据分析发现在整体预估ctr和实际ctr的比值为1即整体COPC=1的情况下,体育类item的实际ctr是高于其预估ctr的那么我们就需要对体育类的item乘以一个系数 α>1去对体育类的item进行调权。同理,如果发现某个类别的实际ctr是低于预估ctr的应该对其降权。

2、冷启动调权
对于某些需要冷启动的item,可以对其进行加权,让其进行快速曝光,但是,为了保证效果,一般建议对精排的前10%item进行冷启动调权

二、强插

强插主要是针对某些运营安排的特定item,比如,某个突发新闻的报道或者广告的插入,进行强制下发,业务驱动比较强。

三、过滤

过滤主要是针对一些负反馈过多的item或者明显不合理的item的下发,如学生不推送烟酒产品。

四、打散

打散主要是针对用户兴趣疲劳的一个机制,提高用户多样性体验。主要是统计用户当天的历史下发品类,然后尽可能的保证推送给用户的item的品类是足够多的,而不是一味的只推送某一品类的item,从而让用户产生兴趣疲劳。

五、多目标打分融合

多目标打分融合是一个全局目标优化的策略,主要是针对多个目标的共同优化。怎么把这多个目标的打分统一起来,最终形成一个用户满意度打分用来进行最终的排序就是多目标融合打分的工作。

1、naive权重分配
最简单的办法,就是给各个优化目标打分安排权重然后得到一个最终打分 ,通过在线调节每个目标的权重,查看每个目标的在线效果直到调到一个业务最优的状态。但是,这个方法缺点也很明显,就是需要大量的实验,时间耗费大,而且随着模型的迭代,参数也会跟着变化。

2、强化学习-动态权重分配
可以通过强化学习的方式,设定用户的状态(一般为静态属性(如性别,年龄,购买力等)和环境状态(时间,浏览深度等))),再设定奖励(如浏览时长,点击,购买等),最后设定action(对w的调整),当拿到state,action,reward之后就可以进行强化学习,学习出最优的权重。

六、模型重排

模型重排主要是针对精排展现item的位置调整,主要是通过调节item的展现而获得长期的收益,举个例子就是依次给用户展现itemA,itemB和itemC,用户点击了A,但是没有点击B和C,但是,如果我们依次展现的是itemB,itemA和itemC,用户对A,B和C都产生了点击。这种情况比较适合有强序列关系的业务场景,一般是用listwise的建模方式,让模型去学习item间的序列关系。

(一)、List Wise重排序

List Wise不是指具体的某个或某类模型,而是指模型的优化目标或者损失函数定义方式,理论上各种不同的模型都可以使用List Wise损失来进行模型训练。

1、优化目标或损失函数
推荐系统里Learning to Rank做排序,常见的有三种优化目标:Point Wise、Pair Wise和List Wise。
(1)Point Wise,就是输入用户特征和单个物品特征,对这个物品进行打分,物品之间的排序,就是谁应该在谁前面。明显这种方式无论是训练还是在线推理,都非常简单直接效率高,但是它的缺点是没有考虑物品直接的关联。

(2)Pair Wise的损失,在训练模型时直接用两个物品的顺序关系来训练模型,就是说优化目标是物品A排序要高于物品B,类似这种优化目标。其实Pair Wise的Loss在推荐领域已经被非常广泛得使用,比如BPR损失,就是典型且非常有效的Pair Wise的Loss Function,尤其在隐式反馈中,是非常有效的优化目标。

(3)List Wise的Loss,更关注整个列表中物品顺序关系,会从列表整体中物品顺序的角度考虑,来优化模型。在推荐中,List Wise损失函数因为训练数据的制作难,训练速度慢,在线推理速度慢等多种原因,尽管用的还比较少,但是因为更注重排序结果整体的最优性,所以也是目前很多推荐系统正在做的事情。

2、推荐模块的模型结构
重排模块的输入是精排模块的Top得分输出结果是有序的。希望重排模型能够考虑到输入的序列性的模型,最常见的考虑时序性的模型是RNN和Transformer。一般的做法是:排序Top结果的物品有序,作为RNN或者Transformer的输入RNN或者Transformer每个输入对应位置经过特征融合,再次输出预测得分,按照新预测的得分重新对物品排序,就完成了融合上下文信息,进行重新排序的目的。

尽管目前(2019)还没看到CNN做重排的方法,但是从机制上来说,明显CNN也是比较适合用来做重排环节模型的。当然,前面说的强化学习,也是非常适合用在List Wise优化的,目前也有不少相关工作出现。

1.Personalized Re-ranking for Recommendation
2.Learning a Deep Listwise Context Model for Ranking Refinement

FM是基于"线性"的LR模型基础上,引入自动的高阶(一般用二阶)特征交叉,表达能力有限。
DSSM毕竟是DNN基础上的,表达能力比FM强很多。

FM优点:在线预估计算量少,耗时低,尤其是召回这一环节,面对的候选集非常巨大,二阶FM从O(KNN)优化到O(KN) (其中K是embedding的维度,N是特征维度),可以做到user embedding实时计算,捕捉到用户实时兴趣,毕竟用户兴趣一直在变化缺点:模型表达能力不足
dssm优点:模型表达能力出色,DNN based
缺点:在线预估计算量大,毕竟是DNN,从离散特征取embedding,到矩阵乘法,都没办法优化计算量,这也使得召回时,不仅item embedding预先算好(问题不大,毕竟item生产之后,里面的profile基本都是固定的,不太会变化),连user embedding也是预先算好(user的兴趣是一直变化的,尤其像淘宝这种电商场景更加,想买的东西一直在变化,新闻推荐相对还好一点,兴趣漂移没有那么剧烈)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值