0. 前言:召回排序流程策略算法简介
举荐可分为以下四个流程,别离是召回、粗排、精排以及重排:
- 召回是源头,在某种意义上决定着整个举荐的天花板;
- 粗排是初筛,个别不会上简单模型;
- 精排是整个举荐环节的重中之重,在特色和模型上都会做的比较复杂;
- 重排,个别是做打散或满足业务经营的特定强插需要,同样不会应用简单模型;
-
召回层:召回解决的是从海量候选 item 中召回千级别的 item 问题
- 统计类,热度,LBS;
- 协同过滤类,UserCF、ItemCF;
- U2T2I,如基于 user tag 召回;
- I2I 类,如 Embedding(Word2Vec、FastText),GraphEmbedding(Node2Vec、DeepWalk、EGES);
- U2I 类,如 DSSM、YouTube DNN、Sentence Bert;
- 模型类:模型类的模式是将用户和 item 别离映射到一个向量空间,而后用向量召回,这类有 itemcf,usercf,embedding(word2vec),Graph embedding(node2vec 等),DNN(如 DSSM 双塔召回,YouTubeDNN 等),RNN(预测下一个点击的 item 失去用户 emb 和 item emb);向量检索能够用 Annoy(基于 LSH),Faiss(基于矢量量化)。此外还见过用逻辑回归搞个预估模型,把权重大的穿插特色拿进去构建索引做召回
-
排序策略,learning to rank 流程三大模式(pointwise、pairwise、listwise),次要是特色工程和 CTR 模型预估;
-
粗排层:实质上跟精排相似,只是特色和模型复杂度上会精简,此外也有将精排模型通过蒸馏失去简化版模型来做粗排
- 常见的特色开掘(user、item、context,以及互相穿插);
-
精排层:精排解决的是从千级别 item 到几十这个级别的问题
- CTR 预估:lr,gbdt,fm 及其变种(fm 是一个工程团队不太强又对算法精度有肯定要求时比拟好的抉择),widedeep,deepfm,NCF 各种穿插,DIN,BERT,RNN
- 多指标:MOE,MMOE,MTL(多任务学习)
- 打分公式交融: 随机搜寻,CEM(性价比比拟高的办法),在线贝叶斯优化(高斯过程),带模型 CEM,强化学习等
-
- 重排层:重排层解决的是展现列表总体最优,模型有 MMR,DPP,RNN 系列(参考阿里的 globalrerank 系列)
-
展现层:
- 举荐理由:统计规定、行为规定、抽取式(个别从评论和内容中抽取)、生成式;排序能够用汤普森采样(简略无效),交融到精排模型排等等
- 首图优选:CNN 抽特色,汤普森采样
- 摸索与利用:随机策略(简略无效),汤普森采样,bandit,强化学习(Q-Learning、DQN)等
- 产品层:交互式举荐、分 tab、多种类型物料交融
1. 淘宝逛逛召回算法实际总结
内容化这几年越来越成为电商的重点,用户来到网购的时候越来越不局限在只有明确需要的时候,而更多的是没有明确需要的时候,就像是逛街一样。逛逛就是在这样的背景下诞生的内容化产品,打造出有用、乏味、潮流、微妙、陈腐的内容,为消费者提供全新的内容生产体验。在这个场景下的内容召回有很多问题须要摸索,其中次要的特点和挑战有:
- 强时效性:内容举荐场景下的内容新旧汰换十分快,新内容的用户行为少,很难用用户历史行为去形容新内容,而用户行为正是老内容投放次要的依赖。所以当不能依附用户行为数据来建模内容之间关系的时候,咱们必须要找到其余能够表征内容的办法。
- 多趣味表征:多趣味表征,特地是多峰召回是这几年比拟支流的一个趋势。然而目前多峰模型中峰的数量是固定的,当用户行为高度集中的时候,强制的将用户行为拆分成多向量,又会影响单个向量的表达能力。如何去均衡不同用户行为特点,特地是收敛和发散的趣味散布,就成了此类工作的挑战。
在设计优化方向的时候,咱们重点思考下面形容问题的解法(召回自身也须要兼顾精准性和多样性,所以繁多召回模型显然无奈满足这些要求,咱们的思路是开发多个互补的召回模型)。具体的介绍在前面的章节以及对应的后续文章中开展:
- 跨域联结召回 :除了单纯把多域的信息平等输出到模型中,如何更好利用跨域之间的信息交互就变的尤为重要。目前有很多优良的工作在探讨这样的问题,比方通过用户语义,通过差别学习和辅助 loss 等。咱们提出了 基于异构序列交融的多趣味深度召回模型 CMDM(a cross-domain multi-interest deep matching network),以及 双序列交融网络 Contextual Gate DAN 2 种模型构造来解决这个问题。
- 语义 & 图谱 & 多模态 :解决时效性,最次要的问题就是怎么去建模新内容,最天然的就是 content-based 的思维。content-based 的要害是真正理解内容自身,而 content-based 里次要的输出信息就是语义,图像,视频等多模态信息。目前有许多工作在探讨这样的问题,比方通过认知的形式来解决,多模态表征学习,联合 bert 和高阶张量等形式等等。在语义召回上,咱们不仅仅满足于语义信息的融入,还通过Auxiliary Sequence Mask Learning 去对行为序列进行高阶语义层面的提纯。更进一步,咱们利用内容图谱信息来举荐,并且引入了个性化动静图谱的概念。对于新老内容上表达能力的差别问题,咱们通过 multi-view learning 的思维去将 id 特色和多模态特色做交融。
- 泛多峰:为了解决多峰强制将趣味拆分的问题,咱们思考到单峰和多峰的各自特点,特地是在泛化和多样性上各自有不同的建模能力。基于此,咱们提出了泛多峰的概念。
1.1 跨域联结召回
1.1.1 基于异构序列交融的多趣味深度召回
在繁多举荐场景下,深度召回模型只须要思考用户在以后场景下的消费行为,通过序列建模技术提取用户趣味进而与指标商品或内容进行匹配建模。而在本举荐场景下,深度召回模型须要同时思考用户内容消费行为和商品消费行为,进行跨场景建模。为此,咱们提出了 CMDM 多趣味召回模型架构,可能对用户的跨场景异构行为序列进行交融建模。在 CMDM 中,咱们设计了用于异构序列建模的层级注意力模块,通过层级注意力模块提取的多个用户趣味向量与指标内容向量进行匹配建模。
1.1.2 双序列交融网络 Contextual Gate DAN
除了通过档次注意力的形式,异构序列中还有个特点就是在工夫上更靠近穿插并存的状态。为了学习到两个序列之间的信息穿插,充沛交融商品点击序列和内容点击序列,咱们从自然语言解决的 VQA 工作中失去启发。VQA 是用自然语言答复给定图像的问题的工作,罕用做法是在图片上利用视觉注意力,在文本上利用文本注意力,再别离将图片、文字多模态向量输出到一个联结的学习空间,通过交融映射到共享语义空间。而 DAN 构造是 VQA 工作中一个非常无效的模型构造,DAN 通过设计模块化网络,容许视觉和文本注意力在合作期间互相疏导并共享语义信息。咱们对 DAN 构造进行了改良,设计了 Contextual Gate DAN 双序列交融网络:
1.2 语义 & 图谱 & 多模态
1.2.1 多模态语义召回
在内容举荐场景内,存在大量新内容须要冷启动,咱们次要通过语义和多模态 2 种形式。绝对于搜寻工作,语义匹配是一个从单点到多点,解空间更大更广的问题。首先是用户行为的不确定性,内容举荐场景下用户决策空间更大更广,从而导致用户对举荐零碎的反馈信号自身就存在较大的不确定性;再就是语义空间表白的对齐问题,这里的对齐蕴含两个方面,第一个方面是单个序列里的内容表白的语义标签提取形式差异大(比方 cpv、分词、语义标签、多模态表征等等),另外一个方面是多序列(内容和商品等)之间的语义空间对齐问题。多模态的召回形式交融了文本,图像,音频等大量模式跨域信息,因为与内容互动解耦,在缓解内容冷启动上具备肯定的劣势。多模态召回次要是通过理解内容多模态表征,先后进行了 collaborative filtering、聚类核心召回、个性化多模态表征相干的摸索工作,在多样性方面获得了肯定的成果,深度语义召回方面针对用户行为去噪和更好的表白语义信息角度登程,迭代了 cate-aware 和 query-aware 和序列 mask 自监督工作的模型。
1.2.2 行为稠密场景下的图模型实际
更进一步,咱们利用内容图谱信息来举荐。常识图谱构建的出发点就是对用户的深度认知,可能帮忙零碎以用户需要登程构建概念,从而能够帮忙了解用户行为背地的语义和逻辑。这样能够将用户的每次点击行为,都用图谱的模式极大的丰盛,图谱带来的可解释的能力还能够大大放慢模型的收敛速度。常识图谱有个特点,就是其中的信息是绝对固定的,或者说是动态的,因为常识图谱根本是由先验信息形成的。然而从各个用户的角度,常识图谱的数据中的链接重要度并不相同。比方一个电影,有的用户是因为主演看的,有的用户是因为导演看的,那么这个电影连贯的主演边和导演边的权重就因人而异了。咱们提出了一种新的办法来交融用户动静信息和动态图谱数据。每个行为都用图谱扩大,这样行为序列变成行为图谱序列,并且退出 KnowledgeGraph-guided gating 的自适应的生成式门控图注意力,去影响常识图谱融入到模型中的点边的权重。
1.2.3 交融多模态信息的跨模态召回
针对新内容冷启动的问题,咱们提出了跨模态召回模型来兼顾 content-based 和 behaviour-based 的召回各自的长处。在跨模态召回模型构建前,咱们首先引入了多模态 meta 信息为主的“语义”deep collaborative filtering 召回,两者的显著差异次要在 target side 的特色组成中相较与 behaviour-based 的特色,多模态特色构建的模型去除了影响较大的内容 id 类的特色,将这些特色更换为了来自多模态预训练技术失去的多模态表征输出。除了下面的变动,咱们还退出了 triplet loss 的局部使得 embedding 空间更具备区分度,效率指标也有了较大幅度的晋升。
1.3 用户多趣味表征(多模型簇联结学习): 泛多峰
多峰召回模型通过对用户侧产生多个表征不同“趣味”的向量进行多个向量的召回,是对于单峰的一个拓展,将单个用户的表白扩大成了多个趣味表白, 更准确地刻画了用户, 从而获得更好的成果。咱们通过对于单峰模型及多峰模型的察看发现,用户行为高度集中的序列单峰模型的线上效率绝对于多峰模型会更有劣势,而那些用户序列类目丰盛度较高的则多峰模型的效率显著占优。所以这里提出了泛多峰 u2i 模型的概念,尝试将多峰模型容易拟合行为序列类目丰盛度较高的用户,而单峰模型则更容易拟合行为序列类目丰盛度较为集中的用户的劣势进行联合。使得繁多模型可能通过产生不同算法簇的多个不同表征的向量在不同簇的内容向量中进行召回,从而具备这两种召回范式的长处。
1.4 晋升优化:
▐ 认知举荐
咱们正在尝试,将图谱用于 user embedding 投影,投影的立体空间就是语义空间,这样做到可控多维度语义可解释 embedding。另外,对于召回,采样形式对模型成果影响十分大,联合常识图谱来进行 graph-based Learning to sample 的优化,对于正负样本的选取更加做到关联可控,放慢迭代速度,晋升成果。
▐ 趣味破圈
在内容化举荐畛域,仅仅类似度提高的优化,会导致用户没有新鲜感,对平台粘性变低。如何帮忙用户摸索他更多的趣味,是当初内容化举荐亟待解决的另一个问题。一种做法是趣味近邻,从已有趣味登程,缓缓通过趣味之间的类似,扩大用户未知的畛域,能够参考 MIND,CLR 一些思路。另一种做法是对趣味构建推理引擎,在对已有趣味推理过程建模之后,退出扰动来摸索用户可能新的趣味。
2. 阿里飞猪个性化举荐:召回篇
常见的有基于 user profile 的召回,基于协同过滤的召回,还有最近比拟流程的基于 embedding 向量类似度的 topN 召回等等。办法大家都晓得,但具体问题具体分析,对应到旅行场景中这些办法都面临着种种挑战。例如:旅行用户需要周期长,行为稠密导致训练有余;行为趣味点发散导致成果相关性较差;冷启动用户多导致整体召回有余,并且热门景象重大;同时,具备旅行特色的召回如何满足,例如:针对有明确行程的用户如何精准召回,差旅用户的周期性复购需要如何辨认并召回等。
本次分享将介绍在飞猪旅行场景下,是如何针对这些问题进行优化并晋升成果的。次要内容包含:⻜猪旅行场景召回问题、冷启动用户的召回、行程的表白与召回、基于用户行为的召回、周期性复购的召回。
2.1 飞猪旅行场景召回问题
举荐零碎流程
首先介绍举荐的整体流程。整体上分为 5 个阶段。从全量的商品池开始,之后依此是召回阶段,粗排 / 精排阶段,最初的混排模块依据业务理论状况而定,并不是大多数举荐零碎必须的。粗排和精排在另外一次分享中曾经介绍过了,本次分享次要介绍一下飞猪举荐零碎的召回问题,召回能够说决定了举荐零碎成果的下限。
上面说一下召回和粗排 / 精排的区别。从召回到粗排再到精排模块,商品的数据量是递加的,模型的复杂度会增高。具体会体现在输出特色数量和模型复杂度的减少,更新往往也会更频繁。对应的训练和上线的形式也会不同,拿召回来讲, 出于性能的思考,往往采纳离线训练 + 打分或者离线训练失去向量表白 + 向量检索的形式,而排序阶段为了更好的准确率和线上指标,更多的是离线训练 + 实时打分,甚至在线学习的形式。
召回的实质其实就是将用户和商品从不同维度关联起来。常见的办法比方 content-base 匹配,或者 item/user based 的协同过滤,还有最近比拟风行的向量化召回。向量化召回罕用做法是用深度学习将用户和商品都表白成向量,而后基于内积或欧式间隔通过向量检索的形式找到和用户最匹配的商品。
2.1.1 飞猪举荐场景
飞猪的举荐页面有很多,比方首页,领取胜利页,订单列表页,订单详情页都有猜你喜爱。不同页面对应了不同的场景,用户在不同场景下需要不同,也有肯定的穿插。比方首页并重逛 / 种草,但领取实现后举荐一些与订单相干的商品会更好。
咱们大抵能够把用户分为三类:无行为、有行为,还有一种是飞猪场景下非凡的一类 ” 有行程 ”。
2.1.2 次要问题
本次分享的次要内容就是针对这三类用户在举荐过程中存在的问题 + 周期性复购场景 (出差 / 回家) 的解决。
航旅场景下的召回存在以下问题:
- 冷启动:航旅商品的热门景象重大,user profile 不足。
- 相关性 vs 搭配性:航旅场景下要求搭配性比拟高,传统的 I2I 只并重相关性。但用户的行程需要不是单点的,比方买了飞机票还要看住宿。行程受上下文影响比拟多,比方节令、用户近期行为等。
- 相关性有余:航旅用户的行为稠密又发散,目前的召回后果乐音较多。
上面会对咱们在优化过程中碰到的相干问题一一介绍。咱们晓得,召回处于举荐链路的底端,对召回惯例的离线评估形式有预测用户将来点击的 TopN 准确率或者用户将来点击的商品在召回队列中均匀地位等等。然而在工业零碎中,为了召回的多样性和准确率,都是存在多路召回的,离线指标的进步并不代表线上成果的晋升,一种常见的评估某路召回成果的形式就是比照同类召回通道的线上点击率,这种评估更能实在反映线上的召回成果,基于篇幅的思考,前面的介绍次要展现了线上召回通道点击率的晋升成果。
2.2 冷启动用户召回
2.2.1 User 冷启动召回
用户冷启动召回次要有以下几种计划:Global Hot、Cross Domain、基于用户属性的召回。
- 全局热门:毛病是和 user 无关,相关性差。
- Cross domain:一种做法是基于不同域 (例如飞猪和淘宝) 独特用户的行为将不同域的用户映射到同一个向量空间,而后借助其余域的丰盛行为晋升本域冷启动用户的召回成果。
-
基于用户属性:繁多属性的毛病是热门景象重大,个性化有余。咱们采纳了基于多属性组合的办法。
2.2.2 UserAttr2I
在这里介绍咱们的计划 UserAttr2I,应用相似排序模型的办法,输出用户 + 商品的属性,预测用户是否会点击一个商品。
开始用线性 FTRL 模型,成果不是很好。起因是线性模型无奈学习高阶特色,并且解释性比拟差。针对这两个问题,通过 DeepNet 进步泛化性,同时用 GBDT 来做特色筛选。
上面比照双塔构造和深度特色穿插两种计划,优缺点如图所示。最终抉择了第二种,起因是指标用户是冷启动,能用到的特色比拟少。如果放弃开掘用户和宝贝之间的关系会导致相关性比拟差。模型构造如下:
通过 attention 操作以及 GBDT 的叶子节点即可满足冷启动的可解释性。
比照其余冷启动的召回形式,Attribute2I 的点击率最高。
2.3 行程的表白与召回
2.3.1 Order2I
在飞猪场景下用户有相似如下的需要:买了去某地的机票,用户很可能须要与之搭配的签证 /wifi/ 酒店等等,而协同过滤通常只能推出同类型商品,比方门票推门票,酒店推酒店。另外飞猪不像淘宝用户可能会常常逛,有比拟丰盛的历史行为信息能够供咱们去剖析和计算,飞猪用户通常是 ” 买完即走 ”。
通过数据分析咱们发现订单左近的行为数据和订单有较高搭配关系,咱们通过 Graph Embedding 的形式学习订单和宝贝的 Embed,以此来学习搭配关系。
难点有以下几个:
- 如何开掘反映搭配关系的数据汇合
- 搭配的限制性比拟强,如果仅仅基于用户行为构建图,因为用户行为乐音多,会造成较多 badcase
- 如果齐全基于随机游走学习 Embed,最初的召回后果相关性差,因而须要行业常识的束缚
- 数据稠密,笼罩商品少,冷启动成果差
** 解决方案:
利用航旅常识图谱以及用户的行为序列进行加权异构图的构建 (机票 / 火车票节点利用业务线 + 出发地 + 目的地惟一标示、宝贝 & 酒店利用其 id 惟一标示)。之后的流程和传统的 Graph Embedding 相似。**
具体过程:
① 以订单粒度对用户的行为做拆分和聚合,同时退出点击行为缓解稠密问题。
② 边的权重的计算同时思考常识图谱和用户行为,这种做法一方面能够减少束缚管制成果,另一方面也能够克制稠密,解决冷启动的问题。
③ 序列采样过程中会基于转移概率进行剪枝操作,用来克制噪声和缓解热门问题。
④ skip-gram+ 负采样训练。
这里有一个具体的 case,用户订了一张去曼谷的机票,order2I 召回了曼谷的一些自助餐,落地签,热门景点等,体现了较好的搭配性。整体的指标上 order2I 的点击率也显著高于其余形式。
2.3.2 journey2I
Order2I 将订单进行向量化表白,从而进行召回。然而它还有一些问题:用户的某次行程可能由多个订单组成,甚至有的订单只是直达的作用,Graph Embedding 还是基于单个订单进行搭配的举荐;用户的某次行程不是一个出发地 + 目的地就能形容的,它不仅与行程自身属性 (例如登程 / 达到工夫,目的地,行程用意等) 相干,还与用户的属性和偏好 (例如年龄,是否是亲子用户) 相干。因而行程既是 User-Aware 又是 Context-Aware 的。而 Order2I 学习的还是一种全局的整体偏好,与用户无关,不够个性化。因而咱们尝试在行程的粒度做召回,综合思考用户属性、行程用意、上下文等因素,更个性化的召回与用户这次行程以及用户本身强相干的的宝贝。
以行程为粒度,对多个订单做聚合,并且减少行程相干的特色。融入用户的根底属性特色和历史行为序列。丰盛行程特色并引入 attention 机制。采纳双塔模型离线存储商品向量,在线做向量化召回。模型构造如下:
模型右边次要是利用行程特色对订单序列以及用户的历史行为序列进行 attention 操作,用于辨认要害订单以及用户要害行为。在此基础上交融行程特色和用户属性特色学习用户该段行程的 Embed。模型左边是商品特色,通过多层 MLP 之后学习到的宝贝 Embed。两边做内积运算,利用穿插熵损失进行优化,这样保障召回的后果不仅与行程相干还与用户行为相干。
两个同样是上海到西安的用户。用户 1 点击了历史博物馆和小吃,不仅召回了与机票搭配的接送机,还召回了与行为行为相干的小吃街左近的酒店以及历史博物馆相干的宝贝。
用户 2 点击了一个接送机,除了召回接送机还召回了机场左近的酒店和热门的 POI 景点门票。能够看出基于用户的不同行为,召回后果不仅满足搭配关系还与用户行为强相干。
从指标来看 Journey2I 绝对 Order2I 有进一步显著的晋升。
2.4 基于用户行为的召回
2.4.1 Session-Based I2I
航旅用户的行为有稠密和发散的特点。利用右图一个具体的用户实例来阐明这两个特点:用户在第一天点击了两个大理一日游,第 20 天点击了一些马尔代夫蜜月相干的商品,第 21 天又点击了大理的一日游。稠密性体现在一个月只来了 3 次,点击了 8 个宝贝。发散性体现在用户大理一日游和出国蜜月游两个 topic 感兴趣。
在用户有行为的状况下进行召回,咱们常采纳的办法是基于 User-Rate 矩阵的协同过滤办法 (如 ItemCF,Swing。ItemCF 认为同时点击两个商品的用户越多则这两个商品越类似。Swing 是在阿里多个业务被验证过十分无效的一种召回形式,它认为 user-item-user 的构造比 itemCF 的单边构造更稳固),然而因为航旅用户行为稠密,基于 User-Rate 矩阵召回后果的准确率比拟低,泛化性差。针对这两个问题咱们能够通过裁减历史数据来减少样本笼罩。航旅场景因为用户点击数据比拟稠密,须要比电商 (淘宝) 裁减更多 (工夫更长) 的数据才够。这又带来了趣味点转移多的问题。在这里咱们采纳对行为序列进行 session 划分,保障相关性。
这里以 swing 为例解说一下结构束缚的形式。咱们以用户的行为用意为核心,将示意独特用意的商品聚合在一个序列中,如上图对用户行为序列的切分。
在这个 case 中,下面是传统 swing 的召回后果,上面是基于 session 的召回后果。当 trigger 是沙溪古镇一日游的时候,下面有一个杭州莫干山和玉龙雪山一日游,这两个不相干后果的呈现是因为它们是热门商品,也称哈利波特效应。上面的召回后果就都是和沙溪古镇相干的了。从指标来看,session-based 召回比 swing 和 itemCF 都高。
2.4.2 Meta-Path Graph Embedding
基于 I2I 相关矩阵的长处是相关性好,毛病是覆盖率比拟低。而 Embed 的形式尽管新颖性好然而相关性差。左边的 case 是 Embed 的召回后果,上海迪士尼乐园召回了一个珠海长隆的企鹅酒店和香港迪士尼。咱们冀望的应该是在上海具备亲子属性,或者在上海迪士尼左近的景点。
解决 Embed 相关性低的形式借鉴了 session-based 召回的教训,将航旅常识图谱交融,构建航旅特定的 Meta-Path。成果上看 meta-path 的成果是比 deepwalk 更好。
2.5 周期性复购的召回
复购场景的需要来自于:飞猪有大量的差旅和回家用户,该局部用户的行为有固定模式,会在特定的工夫进行酒店和交通的购买,那么该如何满足这部分用户的需要?
2.5.1 Rebuy2I
咱们的指标是在正确的工夫点来给用户推出适合的复购商品,上面以酒店为例具体解说 (其余的品类原理相似)。
输出用户在飞猪的酒店历史购买数据,输入是用户在某个工夫点对某个酒店的复购概率。当有多个可复购酒店时,依照概率降序排序。
常见做法有以下几种:
- 利用酒店自身的复购概率
- 基于用户购买历史的 Retarget
- 利用 Poission-Gamma 散布的统计建模
首先取用户对酒店的购买历史,利用矩预计 / 参数估计计算酒店的购买频次 (参数 α 和 β)。接下来就能够调整每个用户的购买概率,k 是购买次数,t 是第一次购买间隔最近一次购买的工夫距离。最初代入 Possion 散布计算复购概率,退出用户的均匀购买周期来缓解刚刚实现购买的酒店复购概率最大的问题。
从左图能够看出在购买一段时间当前,复购概率达到最大值,之后递加。理论应用中复购独自作为一路召回,成果比后面提到的 retarget 和热门召回更好。
2.6 总结
最初总结一下做好召回的几个思路:
首先要基于业务场景,来挖掘用户需要,发现自有场景的特点。接下来通过 case 和数据分析来发现问题,通过了解模型构造或者特色背地的动机进行针对性的改良。最初在召回和排序之间找到边界,成果和性能之间做好 trade-off。
2.7 Q&A
Q:Journey2i 的双塔模型如何负采样,正负比例如何管制?
A:对于召回的负采样是一个十分值得钻研的问题。咱们也做了很多尝试,例如咱们已经尝试过依照排序的套路用曝光样本做负样本,然而成果很差。而后也进行了全局负采样,成果要显著好于曝光的形式,然而负样本如何采也值得一提,采得太随机,你的负样本容易太 easy,模型的 auc 可能虚高,因而也要新增一些 hard 的样本,在 journey2i 中就是那些属于本次行程相干城市目的地的商品,然而用户不太可能购买的商品,具体的形式这里不开展介绍了。Facebook 在 KDD2020 中有篇论文也对召回的采样问题做了具体的介绍,举荐浏览。对于正负比例,咱们的教训是没有相对的答案,须要在优化过程中摸索,不过个别只有抽样形式 ok,正负比例的变动不会对最终后果有太大的影响。
Q:Journey2I 无奈思考交互特色,是否会有影响?
A:必定会有影响。实践上讲,没有 Journey 和 target item 的交互特色,auc 和准确率必定会打折扣,然而须要针对具体问题具体分析,做召回的优化和排序有个很显著的不同就是须要在性能、准确率、多样性上做 trade-off。
Q:meta-path,session-base 解决问题和出发点是什么?
A:session-base 解决的是裁减稠密的数据后会带来趣味发散的问题。举个极其的例子,有个用户每个月都出差,去到不同的地点。召回后果就会混合多个地点。Meta-path 解决的是相关性低的问题。