召回粗排精排-级联漏斗(下)

38796dec65489781fe835c689031ba23.png

文 | 水哥
源 | 知乎

saying

召回区分主路和旁路,主路的作用是个性化+向上管理,而旁路的作用是查缺补漏。
推荐系统的前几个操作可能就决定了整个系统的走向,在初期一定要三思而后行。
做自媒体,打广告,漏斗的入口有多大很重要。美妆,游戏,篮球入口都非常大,做刷题的自媒体会把自己饿死(说的就是我自己)。

召回这里稍微有些复杂,因为召回是多路的。首先我们要解释主路和旁路的差别,主路的意义和粗排类似,可以看作是一个入口更大,但模型更加简单的粗排。主路的意义是为粗排分担压力。但是旁路却不是这样的,旁路出现的时机往往是当主路存在某种机制上的问题,而单靠现在的这个模型很难解决的时候。举个例子,主路召回学的不错,但是它可能由于某种原因,特别讨厌影视剧片段这一类内容,导致了这类视频无法上升到粗排上。那这样的话整个系统推不出影视剧片段就是一个问题。从多路召回的角度来讲,我们可能需要单加一路专门召回影视剧的,并且规定:主路召回只能出3000个,这一路新加的固定出500个,两边合并起来进入到粗排中去。这个栗子,是出现旁路的一个动机。这个过程我们可以用下图来表示:

705c464964c0eb65d8b8e4d087833a3c.png

在上面的图中,梯形的大小表示透出率的大小。

典型的召回都有哪些?

第一种召回,是非个性化的。比如对于新用户,我们要确保用最高质量的视频把他们留住,那么我们可以划一个“精品池”出来,根据他们的某种热度排序,作为一路召回。做法就是新用户的每次请求我们都把这些精品池的内容当做结果送给粗排。这样的召回做起来最容易,用sql就可以搞定。

第二种召回,是i2i,i指的是item,严格意义上应该叫u2i2i。指的是用用户的历史item,来找相似的item。比如说我们把用户过去点过赞的视频拿出来,去找画面上,BGM上,或者用户行为结构上相似的视频。等于说我们就认为用户还会喜欢看同样类型的视频。这种召回,既可以从内容上建立相似关系(利用深度学习),也可以用现在比较火的graph来构建关系。这种召回负担也比较小,图像上谁和谁相似完全可以离线计算,甚至都不会随着时间变化。

第三种召回是u2i,即纯粹从user和item的关系出发。我们所说的双塔就是一个典型的u2i。在用户请求过来的时候,计算出user的embedding,然后去一个实现存好的item embedding的空间,寻找最相似的一批拿出来。由于要实时计算user特征,它的负担要大于前面两者,但这种召回个性化程度最高,实践中效果也是非常好的。

召回的学习目标

一般来说,个性化程度最高的双塔,都会成为主路。它的学习目标,可以类比粗排和精排的关系去学习召回和粗排的关系。而基于graph或者图像相似度的召回,则有各自自己的学习目标。

召回的评估方式

主路召回,我们可以采用粗排的方式,以粗排的序计算NDCG,或者TopN重叠率。但是旁路召回在线下是比较难以评估的。如果采用一样的方式评估旁路,那旁路的作用岂不是和主路差不多?那旁路存在的意义是啥呢?不如把改进点加到主路里面去好了。在实际中,旁路召回虽然线下也会计算自己的AUC,NDCG等指标。但是往往都是只做一个参考,还是要靠线上实验来验证这路召回是不是有用。

在线上,除了AB需要看效果以外,有一个指标是召回需要注意的:透出率指的是最终展示的结果中,有多少比例是由这一路召回提供的。如果我们新建了一路召回,他的透出率能达到30%,AB效果也比较好,那我们可以说这一路召回补充了原有系统的一些不足。反过来,如果你的透出率只有1点几,2点几,那不管AB是涨是跌,我都很难相信结果和这一路召回有关系,似乎也没有新加的必要。

多路的结果如何融合?

多个召回之间的结果综合的时候,要进行去重,可能有多个路返回了用样的item,这时候要去掉冗余的部分。但是,去重的步骤比较是需要经过设计的。有以下几种方法来进行融合:

  • 先来先到:按照人为设计,或者业务经验来制定一个顺序,先取哪一路,再取哪一路。后面取得时候如果结果前面已经有了,就要去掉。

  • 按照每一路打分平均:比如第一路输出A=0.6,B=0.4,第二路输出B=0.6,C=0.4,那么由于B出现了两次,B就需要平均一下,最后得到,A=0.6,B=0.5,C=0.4

  • 投票:和上面的例子类似,但是B出现了两次。我们认为B获得了两个方面的认可,因此它的排序是最靠前的。

注意上面的item最后留下的是哪一路的,透出率就算在谁头上。

召回的问题

假设我们有三路召回ABC,在我们这个时空,业务部署的顺序是A-B-C;在另一个平行时空,业务的部署顺序是C-B-A。问:其他变量都不变的情况下,最终业务的收益是一样的吗?

我个人的理解是,几乎不会一样。先部署的召回会影响整个系统,后来的不管是什么方案,都要在不利于自己的情况下“客场作战”。举一个极端的例子,A是一个特别喜欢土味视频的召回,我们第一版实现的是它。结果A上线以后,不喜欢土味视频的用户全都跑路了。在迭代的过程中我们就会想,唉是不是我们也可以加一路B来专门召回高雅类型视频啊。这时候上线一做,并没有正向,因为喜欢高雅的用户已经没了。这就是部署顺序给整个系统带来后效性的一个极端例子。如果我们一开始换一种做法,先上一路中规中矩的召回C,然后把AB当做补充的旁路加进来,效果是有可能更好的。

因此在最初的时候的操作一定要小心。否则会对算法同学带来很大的后续负担,比如上面这个例子,有一天领导说哎我们现在不够高雅你来搞一个,那你就只能为初期的不正确决定买单了。这个问题并不是说粗排,精排就不会出现。而是在实践中召回这里更容易出现。因为召回的某些方法实现很快,同学很可能一看有收益就推上去了。

入口的规模至关重要

前面讲的漏斗都是针对于item筛选这个角度。从生产者的角度也存在这么一个漏斗:

b5cfa72765a7c4672e4a000ec52b9315.png

一开始是吸引所面向的人群,然后一部分人会点击,点击的人中,一部分人会转化,可能后面会有深度转化等等。最终目的是广告主的获益。这里要说明一下,深度转化是相对于某些行业才有的,比如说电商里面转化了就是购买行为发生了,那已经获利了就不需要后面环节了。而对于游戏,转化一般指的是下载,用户后续氪金了叫深度转化,对于游戏行业这个时候才算获利。

这个漏斗中有两个因素决定最终获利的大小,一个是入口的规模,一个是梯形的斜率。其实在图中,梯形的斜率就可以表示点击率和转化率的大小。如果你的产品很好,这两个指标很高,那留下来的就更多,越能获利。

但是点击率转化率这些东西很难优化(虽然大品牌都有专门的团队来负责)。更多的生产者选择了更简单的那个变量:赛道决定的漏斗入口大小

我们可以以现在这个专栏做一个例子:一般来说,评论是一个很稀疏的行为,假设每10个点赞有1个评论(这样评论率就是10%,这已经是一个非常高的比例了),每10个浏览有1个点赞。我们现在这个专栏的文章,想要获得100个评论,就至少需要10000个对推荐系统感兴趣的读者,这可能都要把知乎上和推荐相关的读者一网打尽了。这就是门槛很高,导致的漏斗的入口很小。但是如果面向的对象是所有学生,那入口就会大很多。

所以这就形成了自媒体的一个现象:选择低门槛。我们可以发现自媒体,往往选择美妆,篮球这样的领域进行创作。因为漏斗的入口足够大,哪个女生不想好看呢?看看篮球又不需要上场去打,也不需要什么思考,门槛也很低。入口足够大,才能保证在链路的最后还有人剩下来。链路的最后往往可能是恰饭,比如说球的可以给球鞋做广告之类的。

最后留两道思考题

第一

为什么我们需要多路召回,而不是一个主路就把所有的情况都涵盖了?

第二

刷单,指的是店家付款请人假扮顾客,用以假乱真的购物方式提高网店的排名和销量获取销量及好评吸引顾客。刷单,一般是由卖家提供购买费用,帮指定的网店卖家购买商品提高销量和信用度,并填写虚假好评的行为。通过这种方式,网店可以获得较好的搜索排名……
--来自《百度百科》

  1. 为什么刷单对商家有利可图?

  2. 它符合我们这两讲中的哪一条性质?

  3. 刷单这种手段是否可以检测出来?涉及到哪一类算法?

想到答案的同学可以写在评论里,我们在下一讲的开头会先分析一下这两个问题。

下期预告

推荐系统全链路(4):打压保送重排-模型之外

往期回顾

1.召回 粗排 精排,如何各司其职?

2.拍不完的脑袋:推荐系统打压保送重排策略

3.简单复读机LR如何成为推荐系统精排之锋?

4.召回粗排精排-级联漏斗(上)

5be5f82c415b1b97d666ff9ee6c5444d.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

5c130ecd5954f8dd111a31c688e36bdc.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学术联赛 | 运用知识图谱技术,赋能多领域应用 ——“未来杯”AI学术联赛总决赛暨颁奖典礼圆满落幕...

本文转载自公众号:AI学习社。由北京大学软件工程国家工程研究中心主办,华为终端有限公司及中软国际教育科技集团全程战略支持,STEER TECH科技平台、北京乐智元素科技有限公司、艾肯文化传媒(北京)有限公司、AI TIME承办…

LeetCode 1013. 将数组分成和相等的三个部分

1. 题目 给定一个整数数组 A&#xff0c;只有我们可以将其划分为三个和相等的非空部分时才返回 true&#xff0c;否则返回 false。 形式上&#xff0c;如果我们可以找出索引 i1 < j 且满足 (A[0] A[1] … A[i] A[i1] A[i2] … A[j-1] A[j] A[j-1] … A[A.lengt…

谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!

文 | 小伟编 | 小轶前言说到多任务学习&#xff0c;大家都不陌生&#xff0c;不管是在学术界还是工业界都已经有了很多成熟的探索与应用。在理想的多任务学习中&#xff0c;各个任务对彼此应当是有益的&#xff0c;所有任务相互促进&#xff0c;从而达到超过单任务学习的效果。…

LeetCode 888. 公平的糖果交换(哈希set)

文章目录1. 题目2. 解题2.1 暴力查找2.2 哈希set1. 题目 爱丽丝和鲍勃有不同大小的糖果棒&#xff1a;A[i] 是爱丽丝拥有的第 i 块糖的大小&#xff0c;B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友&#xff0c;所以他们想交换一个糖果棒&#xff0c;这样交换后&#…

OpenKG开源系列 | 面向知识的推理问答编程语言KoPL(清华大学)

OpenKG地址&#xff1a;http://openkg.cn/tool/koplGitHub地址&#xff1a;https://github.com/THU-KEG/KoPL网站地址&#xff1a;https://kopl.xlore.cn开放许可协议&#xff1a;MIT License贡献者&#xff1a;清华大学&#xff08;曹书林、史佳欣、姚子俊、吕鑫、聂麟骁、逄凡…

前端组件化开发实践

前言 一位计算机前辈曾说过&#xff1a; Controlling complexity is the essence of computer programming.随着前端开发复杂度的日益提升&#xff0c;组件化开发应运而生&#xff0c;并随着 FIS、React 等优秀框架的出现遍地开花。这一过程同样发生在美团&#xff0c;面临业务…

LeetCode 937. 重新排列日志文件(自定义排序)

1. 题目 你有一个日志数组 logs。每条日志都是以空格分隔的字串。 对于每条日志&#xff0c;其第一个字为字母数字标识符。然后&#xff0c;要么&#xff1a; 标识符后面的每个字将仅由小写字母组成&#xff0c;或&#xff1b;标识符后面的每个字将仅由数字组成。 我们将这…

预训练时代微调新范式,高性能加速2800%,NLPer赶紧看过来!

一、导读PaddleNLP 是兼具科研学习和产业实践能力的 Python NLP 工具包&#xff0c;提供中文领域丰富的预训练模型和部署工具&#xff0c;被高校、企业开发者广泛应用。近日&#xff0c;PaddleNLP v2.1正式发布&#xff0c;为开发者带来三项重要更新&#xff1a;开箱即用的工业…

论文浅尝 | GaussianPath: 用于知识图谱推理的贝叶斯多跳推理框架

笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生来源&#xff1a;AAAI’21链接&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/16565多跳推理由于对下游任务例如问答和图谱补全的可解释性受到关注。多跳推理是一个典型的顺序决策过程&#xff0c;可表述…

AllenAI 发布万能问答系统 MACAW!各类题型样样精通,性能大幅超越 GPT-3!

文 | python前言GPT-3 等超大规模预训练语言模型&#xff0c;在少监督任务&#xff08;few-shot tasks&#xff09;上取得了令人瞩目的成绩。而这篇文章中&#xff0c;AllenAI的研究员提出了大规模生成式问答模型&#xff0c;MACAW。基于多角度预训练&#xff0c;MACAW可以用于…

论文浅尝 | SMBOP: Semi-autoregressive Bottom-up Semantic Parsing

笔记整理&#xff1a;陈永锐&#xff0c;东南大学博士来源&#xff1a;NAACL 2021概述近年来语义解析的事实上的标准解码方法是使用自顶向下的深度优先遍历对目标程序的抽象语法树进行自回归解码。该工作提出了一种替代方法&#xff1a;半自回归自底向上解析器&#xff08;SMBO…

美团酒店Node全栈开发实践

前后端分离的背景 “前后端分离”显然已不是什么新鲜的话题&#xff0c;Zakas在2013年10月份就曾发表过一篇博客《Node.js and the new web front-end》讨论Node背景下新时代的前端。毫无疑问&#xff0c;Node的出现给JavaScript语言带来了新的生机&#xff0c;也使得前端开发者…

统计学习方法总结

统计学习方法总结 阅读目录(Content)0. 相关知识点0x1: 监督学习1. 模型假设空间2. 生成模型与判别模型的联系与区别 3. 学习策略4. 分类问题与回归问题5. 利用模型进行预测和分析0x2&#xff1a;模型评估与模型选择1. 训练误差与测试误差2. 过拟合与模型选择0x3&#xff1a;正…

LeetCode 997. 找到小镇的法官(图的出度和入度)

1. 题目 在一个小镇里&#xff0c;按从 1 到 N 标记了 N 个人。传言称&#xff0c;这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在&#xff0c;那么&#xff1a; 小镇的法官不相信任何人。每个人&#xff08;除了小镇法官外&#xff09;都信任小镇的法官。只有…

哈工大|NLP数据增强方法?我有15种

文 | rumor源 | 李rumor卷友们好&#xff0c;我是rumor。十一假期过的太快了&#xff0c;不知道你们缓过来没有&#xff0c;没有的话今天我们就来一起读一篇综述缓缓&#xff0c;弥补假期没学习的遗憾。这篇40多页的综述出自哈工大车万翔老师的团队&#xff0c;一共总结了15种N…

论文浅尝 | Wordly Wise(WoW) - 用于语音视觉知识问答的跨语言知识融合模型

笔记整理: 谭亦鸣&#xff0c;东南大学博士生来源&#xff1a;NAACL’21链接&#xff1a;https://aclanthology.org/2021.naacl-main.153.pdf论文提出了一种新的知识图谱问答数据集命名为FVSQA&#xff0c;这是一种语音视觉知识问答类型的任务&#xff0c;即问题形式为音频&…

美团Android DEX自动拆包及动态加载简介

概述 作为一个android开发者&#xff0c;在开发应用时&#xff0c;随着业务规模发展到一定程度&#xff0c;不断地加入新功能、添加新的类库&#xff0c;代码在急剧的膨胀&#xff0c;相应的apk包的大小也急剧增加&#xff0c; 那么终有一天&#xff0c;你会不幸遇到这个错误&a…

LeetCode 83. 删除排序链表中的重复元素(链表)

1. 题目 给定一个排序链表&#xff0c;删除所有重复的元素&#xff0c;使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2示例 2: 输入: 1->1->2->3->3 输出: 1->2->3来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#…

用多模态信息做 prompt,解锁 GPT 新玩法

文 | 子龙编 | 小轶自多模态大火以来&#xff0c;井喷式地出现了许多工作&#xff0c;通过改造预训练语言模型&#xff0c;用图像信息来增强语义信息&#xff0c;但主要集中在几个 NLU 任务上&#xff0c;在 NLG 上的研究比较少。今天要介绍的这篇 paper Multimodal Conditiona…

论文浅尝 | 基于时序知识图谱的问答

笔记整理&#xff1a;姚云志&#xff0c;浙江大学在读博士&#xff0c;研究方向为自然语言处理。链接&#xff1a;https://arxiv.org/pdf/2106.01515.pdf时序知识图谱是一种多关系的知识图谱&#xff0c;相较于常规的知识图谱&#xff0c;时序知识图谱中的关系中会与时间段相关…