前沿重器
栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经是20年的事了!)
2024年文章合集最新发布!在这里:再添近20万字-CS的陋室2024年文章合集更新
往期回顾
- 前沿重器[61] | Agentic RAG综述解读
- 前沿重器[62] | 综述解读:大模型在搜索推荐中的应用
- 前沿重器[63] | SIGIR25-个性化实时检索增强机器人主动对话能力
- 前沿重器[64] | 阿里妈妈URM大模型:基于LLM的通用推荐新方案
- 前沿重器[65] | 大模型评判能力综述
今天给大家介绍的是美团的一篇讲搜索广告召回的迭代思路,这个召回的历史比较悠久,经历了多个版本的迭代,通过这篇文章的阅读能感受到各个版本技术的优劣势,也能感受到各种相关技术的变迁,还包含了大量比较深刻的业务理解,收获还挺大的。
文章本身分享的内容非常多,我根据自己的理解和收获给大家讲解。
- 业务背景
- 搜索广告召回发展阶段
- 阶段1——多策略关键词挖掘
- 阶段2——分层召回
- 阶段3——生成式召回
- 阶段设计背后的因素
- 内部技术发展状态
- 技术大环境
- 其他技术启示
业务背景
美团这个APP相信大家都比较熟悉,他们所谓的搜索广告,更多实际中在搜索常见,即我们想吃什么之类的,就会在搜索框内进行搜索。要弄清怎么做搜索,就需要分析用户在这个框里输入什么,按照自己的分析结论,更多是搜厂商家和商品,而根据在线流量计算,商品占绝大部分,从而得到这个场景下的搜索特点。
- 商品搜索意图占大多数,商家占比很低,而物料侧,无论是商品还是商家,美团现在的规模下,物料应该是非常充足的。
- 广告还需要关注广告主,此处主要就是商家侧,存在大量的小店,和电商不通用,小店通常没什么能力做好运营,因此内容质量普遍不是很高。
- 美团产品所拥有的LBS属性(Location Based Services),虽说物料总量大,但是落到地点上,可选数量其实就没那么多了,加上搜索自带的约束,物料数量更少。
搜索广告召回发展阶段
整个搜索广告召回分为3个阶段,分别是多策略关键词挖掘、分层召回、生成式召回。
阶段1——多策略关键词挖掘
手机端的搜索query通常都比较短,美团也不例外,一般都是“烧烤”、“西餐”这种,再者就是二八法则明显,TOP几万的query基本覆盖7成到8成的流量(这意味着极端的,把这些词做好基本就差不多了),再者是美团的广告投放方式就是整个店铺,没有类似买次的说法。基于这些特点,便可以开始设计方案了。
- query侧,通过意图、信息抽取把关键词抽出来。
- TOP关键词直接离线完成挖掘/匹配处理,可解决绝大部分的问题。
- 由于Query到商品的匹配尚不明确,主要是在商家的信息处理不到位,因此最简单的方式便是从商家的信息里抽取出关键词,便可做关键词匹配了。
前两步在搜索领域想必不是什么难事了,于是问题的重点便来到了商家的关键词抽取上。
- 早期的方式便是基于规则挖掘,切词然后通过词频来挖,后续还有词权、互信息之类方式来挖,但这个方式想必召回率不是很高,连续性肯定也不是很好。
- 后续模型加入后,先是考虑抽取式的模型,有了序列标注,然后更新了一些能突破短串、跳跃、顺序等问题的模型,但是准确率仍旧受限。
- 开始突破字面极限。首先是先做一层归一,把能归一到TOP2万的词先归一上去(2万分类/匹配),剩下的使用生成模型,在那个时代的生成模型准确率其实并不高,需要做很多控制。
如此,便形成了挖掘、抽取、生成3各阶段的流程。
补充一下时间线,按照文章讲到,这些技术大概是22年之前吧,因为阶段2明确了是22年开始。
阶段2——分层召回
22年开始,对流量(需求,query信息)和供给特点(物料)进行了分类。把query分成强意图和泛意图,问明确商品的,就是强意图,问模糊的类目的,就是泛意图,例如“烧烤”;供给侧则分为了有供给、弱供给和无供给3个象限,对此分成了4种处理思路。
- 强意图、有供给。这种关键词意图明确,而且对应物料丰富的,直接通过上述的关键词匹配方案便可轻松完成。在关键词挖掘上,在此阶段,已经迭代出众多链路,维护起来非常困难,因此将其逐步迭代成生成式完成统一,后续进行迭代时只用优化生成模型即可;另外,把挖掘工作从离线做成在线,不再用字面匹配(布尔检索),而是用双塔的向量检索,只是这个向量是几万维的Term向量,此时可以把query映射到具体的term下,这种方式可以训练出检索和最终目标一致的模型,在线还是基于槽位的倒排检索,具有一定的可解释性。
- 泛意图、有供给。可以用向量模型来覆盖。这个向量模型经历过多个版本迭代,早期是语义约束的向量模型,第二版开始融入用户的个性化,此处值得注意的是,因为了不让个性化过多干预语义(毕竟搜索的首要要求是语义的相关),两者是分别建模然后叠加来完成端到端的,第三版则是对齐精排,在召回阶段也融入具体商业价值。
- 泛需求弱供给。作者举例的是搜“汉堡王”,则“肯德基”给到的话,用户也可能会下单(注意,此处是搜索广告,所以这个相似相对比较可容忍)。作者选择的是图模型,这是一个关系建模,具有较强而又可控的容纳能力,构建百亿级别节点的图,通过图预训练+微调的模式识别场景。
- 最后一个是没有供给的场景,实在没有资源那啥都没办法,这个就通过流量结合供给运营化的方式解决。
阶段3——生成式召回
2023年,是个大模型出现的节点,大模型伴随着生成式的概念出现,可有效提升召回算法的决策空间。经过尝试,他们总结出了广告子模块落地LLM的三类思想和方式,用思想、学能力、用LLM 。具体的落地如下。
- 离线关键词召回。大模型在算力和效果上仍旧是问题,不能直接用,但是其思维链(CoT)推理和RLHF对齐人类思想还是有帮助的,因此可以借助大模型做一些离线的关键词召回,改进原有的生成模型。
- 向量召回上,升级为多模态模型,LLM大模型对离散Token的收纳和表征能力是有提升的,而稠密领域则可以参考扩散模型,进一步去噪生成目标,可以引入多元信息多步融合的思路,进一步提升向量表征的能力。
- 构建美团领域广告大模型,直接用到实际场景做关键词召回,将离线中等规模的生成式模型替换成大模型,实现大模型在线化。
- 在相关性场景落地,蒸馏CoT推理能力和模型隐层能力。
都说的比较模糊,作者选了两个已经全量的方案来讲。
一个是生成式关键词召回。这里提到3个关键技术,多模态生成式、点到线的序列生成、RLHF对齐,一张图可以概括。
微调这部分,想必大家很感兴趣(俺也一样),除了比较基础的学习领域知识,还要应对千变万化的店铺知识(美团特色了),还有更到末端的实例知识,如猪手->猪肘切片,可以配合用户行为构造RAG,配合形成替换了传统大模型,实现新的召回率提升。
另外是改造并优化了多模态生成式召回。多模态思路本身也非常有意思,一般的多模态更多是考虑物料侧,充分理解物料,但这里考虑的是query侧,用户很可能已经对商品有一定的畅想(例如食物的样子),最终这个思想会体现在商品、商家的图片里,这个信息可以作为辅助信息插入。
这里作者提供了两套思路。
- 一套是早期的,主要利用了两个维度的信息,一个是同query下的历史点击(表征语义->图片的信息),另一个是用户自己的点击序列(表征语义->个性化的信息),两个信息叠加,能丰富query侧的信息,从而召回更多高质量内容。然而这个方案是浅层的,信息叠加的过程模糊,并不能体现递进关系,只有端到端的关系,体现不了多步还原的过程。
- 因此引入了SD(stable difusion)。正向编码里,item编码成向量,加噪还原成白噪声,反向还原去噪时加入query和side info信息还原出query的信息,能够区分出“个性化信息”和“相关性信息”(这俩的分离,在全文里一直贯穿)。
如果是指简单介绍迭代的过程,那到这里已经结束的,我还想多聊一些,比较关键的便是这个迭代背后的逻辑和原因,透过这个我们能吸取到很多技术选型的思路。
阶段设计背后的因素
内部技术发展状态
我们需要知道的是内部的技术状态。所谓的技术状态,是指目前内部目前已有的基础工作以及目前发展的状态,必要的数据、工程链路、复杂特征、基础模型等,是否已经具备。
在早期,技术团队面临的是啥都没有,同时还要面临基础功能的压力,此时应该做的便是用最简单、可控的方式实现功能。搜索广告的基础还是搜索,我们首先需要关注的便是搜索,出的东西必须和搜索是相关的,一个是用户体验,另一个是广告所推内容必须有价值(用户要吃素,给推猪肘子很难产生价值)。因此,关键词匹配肯定是非常适合的方案,这个是可以直接基于物料、query直接就能挖出的内容,挖完了就能上线无比简单。互联网环境的迭代节奏很快,尤其是早期,很多时候没什么时间做深入研究,“先有一个能用的再说”,“比没有强”的策略,非常现实。
中期,在发展过程中,肯定发现问题,针对关键而具体的问题,研究出合适的解决方案,例如挖掘的多链路难以维护,升级困难,可以升级成生成式,字面比较死板可以升级成向量,分离出“泛需求”专项优化,便能进一步提升体验。
在后期,配合新技术东风,快速探索新技术优劣势,然后逐步开始应用,便能在原有情况下更上一层楼。
对于长期发展的产品和技术,这个因素作为一条暗线一直在对技术迭代产生反应。
- 早期,什么基础工作都没有,那我就用最简单的可用技术,先把功能完成。
- 中期,把基础工作逐步搭建起来,适时转化,推上线验证效果,避免长时期没有效果,没有反馈,到时候效果不好这几个月就白干了。
- 后期,通过持续地学习和跟进,掌握新技术并进行进一步尝试,找到新的增长点。
技术大环境
任何的选型,都是基于对应时间线下的技术来进行选型的,尤其是项目早期,大部分情况也没有那个机会做很新的尝试,在应用视角下现有空间做超脱时间线外的尝试,市场是存在容错的,但不同业务和时间点的容错不一样。
回头看美团的技术迭代。在前期,其实并没有什么时间,所以即使是2022年,bert等相关的技术已经出来很久了,但选型上也没有很直接地奔着那里去,而是走的关键词匹配,虽说向量模型也有提到,但更多强调的是挖掘,挖掘后快速上线,用原文的说法就是“维护基本盘”;阶段2,是对业务理解的进一步深入,对场景进行分解并进行针对性优化,开始广泛提到向量化,对多路的挖掘也开始去做集成统一;阶段3才开始腾出手来,去尝试SD,尝试大模型。整个流程,是在追逐技术主流,亦步亦趋,很难有超脱时间线的大突破。
在每个阶段的最终选型结果上看,更多是匹配的实际的项目情况,并非直接去追最新的技术,或者说,最新的技术并不是整套技术方案的主流,而是最新技术和当前环境之间的协调和尝试,更多是最新技术(尤其是大模型的使用)迁就实际项目的需求。
基于这些思路,问个有意思的问题。如果是现在(2025年6月)这个时间线,要逐步迭代完成这套搜索广告召回,会是一个什么路径呢?
其他技术启示
补充总结一些比较小,但是挺重要的技术细节。
-
场景分析还是比较重要的,作者对美团搜索的场景特点理解很深,无论是用户query的特性,还是物料情况。
-
再一次证明字面匹配还是早期非常可靠的方案,尤其是手机端搜索常见,电商、全搜、APP包括美团这种POI、LBS搜索,咱真不要看不起。但值得注意的是,既然做了字面匹配,外围的配合工作还是要有,召回率问题将会是一个长期的困扰。
-
有个发现,此处语义向量召回似乎一直没有作为很核心的主流,更多是考虑生成式了,超短句的语义向量质量其实是一般的,作者更多的工作放在了个性化+语义合并,然后做推理(无论是生成式还是后续的DS,甚至前面的几万token预测),相当于语义在这里更像一个特征,而非直接的训练目标。
-
这个个性化+语义合并的模式,需要引起重视。当然,这也有广告的因素在,广告肯定是要求个性化的,常规的搜索,对个性化的要求,不同场景变化还不小。
-
挖掘的重要性,从前面的关键词,到后面的关系,背后都有挖掘的身影,相信内部对用户的搜索行为有很深入的研究。
-
落地LLM的三类思想和方式, 用思想、学能力、用LLM 。要是有任务目标要落地大模型的,这个思想可以考虑。
-
生成式确实比抽取式在灵活性上有更大的优势,前面作者有提到,实体识别,然后是短串、跳跃、顺序都要解决,可见努力做了不少,但是类似从“西红柿炒蛋”里找到“炒西红柿”还是非常艰难,而生成式的难度相比之下还更简单。
-
任务的拆解和重点优化,是提升大盘的一个重要思路,很多时候,也有些问题是一个很典型的群体的问题,这个很容易从数据分析内体现、针对性优化后便可以对整个大盘带来作用。有一些策略对整体可能效果一般甚至变差,但是对某个重要的局部,可能是提升的。
-
多模态处理物料的应该不少见了,但是处理query的真不多见,这有美团自己场景自己的优势,但实际别的场景可能也有类似的可以考虑,例如,通过分析用户的历史行为做均值,说不定也可以简单地用来做个性化。
-
SD,可能是后期提点的一个思路。