京东搜索EE链路演进
发布时间:2024-11-15 05:31:55点击:
搜索系统中容易存在头部效应,中长尾的优质商品较难获得充分的展示机会,如何破除系统的马太效应,提升展示结果的丰富性与多样性,助力中长尾商品成长是电商平台搜索系统的一个重要课题。其中,搜索EE系统在保持排序结果基本稳定的基础上,通过将优质中长尾商品穿插至排序结果中将优质商品动态展示给用户,提升用户体验与搜索结果丰富性,是破除马太效应的一大助力。
本文将从搜索EE近期的全量迭代出发,展现其链路演进的整体脉络,包含:EE自适应动态探测模型——EE场景建模方式升级——打分与穿插两阶段一致性升级——探测与自然流量全局联动优化四个阶段,梳理对搜索EE的思考与下一步迭代方向。
一、EE自适应动态探测模型
传统EE模型从商品曝光置信度、打分置信度等角度出发,决策EE商品的展示位置以及穿插位置,较少从用户浏览意图与探索意愿的差异化角度,来考量探测力度。其可能导致用户在宽泛浏览与挑选商品时,缺少丰富的商品选择,在决策购买时反而穿插了探索商品的误判情景,影响用户的搜索体验,不能充分发挥搜索EE系统的探索和利用(Explore & Exploit)两大能力。
针对以上探测错配情况,可尝试在EE模型中显式建模用户的“逛”、“买”探索偏好,进一步结合偏好,自适应调整搜索EE的利用与探索力度。对于偏“逛”用户增强EE探索力度,提供更丰富的探索展示;对于购买意愿明显的用户,提供更直接的购买选择。通过对用户探索偏好的显式建模,能够在提升用户的转化效率的同时提升搜索结果丰富性。
相较于原有EE模型,自适应探索对EE模型的自适应探索能力进行了升级,主要体现在如下三点:(1)对用户探索偏好进行差异化建模:"逛" "买"用户提供动态差异化探测力度,在转化效率和搜索丰富性中取得平衡。(2)以用户浏览深度为子任务建模到EE模型中:以浏览深度作为用户意愿的重要指标,并建模到EE模型中,显式增强模型对用户浏览意愿的感知。(3)提升模型对探索性特征利用性:对探索偏好的显式建模,提升探索性特征在模型中的学习权重,在EE过程中对探索特征进行充分利用。
为了增强EE模型的自适应探索能力,针对原有EE模型进行如下升级:
(1)探索偏好网络Explore-Net
在保持原有的EE模型主网络Exploit-Net基础上,添加了探索偏好网络Explore-Net(图中左下绿色部分),提升模型对用户探索意图的差异化建模。
考虑到用户的探索意图只与个人特性、搜索词相关,因此Explore-Net的输入特征仅使用用户侧、Query侧中相关特征。
为进一步度量特征与探索偏好的关联性,统计不同浏览深度下各特征的分布差异,剔除了未与浏览深度明显相关特征,如搜索词长度等,精简特征空间提升预估精度。
EE原模型的输入中包含探索性特征,但在进行搜索排序任务中易被其他特征掩盖导致利用率不强,在探索偏好建模中显式构建了探索偏好网络Explore-Net,对用户探索意图进行独立建模构建,增强探索性特征的重要性。
优化后的EE模型具有Exploit-Net与Explore-Net双塔结构,Exploit-Net对商品进行精准化打分,对候选商品进行充分利用;Explore-Net对用户探索意愿进行建模,根据用户偏好动态调整探索力度,共同构成商品探索与利用的完整机制。
(2)用户浏览深度回归任务构建
在原有的训练过程基础上,添加了用户浏览深度回归任务(图中左上红色部分),提升模型对用户浏览意愿的感知性,增强EE模型的自适应探索能力。
浏览深度作为用户浏览意愿的直观体现,表现了用户的探索意愿,因此使用浏览深度预估任务作为模型训练的辅助任务,对用户偏好进行显式建模。
在辅助任务类型的考量上,综合考虑了将浏览深度划分不同区间进行预测的分类任务,以及对浏览深度的回归任务。在实验中分类任务体现出较为明显的头尾倾向性,输出值分布不均匀,实践中最终选用了回归任务作为辅助任务。
在样本数据分析中,发现用户的浏览深度差异化极大。为了平衡浏览深度的差异,保障模型输出值的均匀性与差异性,对浏览深度标签进行了log平滑放缩,并选用RMSE-loss作为辅助任务的损失函数对浏览深度任务进行构建。
在模型训练中头尾样本相对较少,对过浅和过深的两类样本预测准确性偏低。为平衡样本间差异,在损失函数的样本权重设计中,对由浅到深相应样本,其权重为先减小后增大的 “凹形”权重,平衡头尾和腰部样本的准确性。
(3)Explore-Net与主网络的二次融合
Explore-Net 和 Exploit-Net 进行了融合(图中中上红色部分),增强模型整体对探索性特征的利用,提升EE隐层embedding丰富性,对探索偏好较强的用户提升了不确定性打分,提升探索商品的范围和丰富度。
由于在用户浏览深度回归任务上对用户的探索偏好进行了显式建模,Explore-Net的输出embedding对探索性特征进行了高维抽取,能够对用户偏好进行自适应建模。
为让探索偏好特征更好地参与到整体任务训练中,平衡打分的精准性与差异化,将Explore-Net的深层表征与Exploit-Net的深层表征进行拼接融合,提升EE模型隐层embedding的丰富性和表征能力,提升模型打分能力。
用户的探索偏好与商品的不确定性预估有直接的相关关联。对于探索意图较强的用户,提升商品打分的不确定性,助力更丰富的商品穿插到搜索结果中,反之亦如此。因此在不确定性预估模块中,设计在探索表征层面进行融合。
在不确定性预估(SVGP)模块中,将浏览深度回归网络输出值与方差预估部分进行了二次融合,对于探索偏好较强的用户,显式强化了商品不确定性打分,提升探索力度。
(1)探索利用效果分析
在相同的预测集上,统计了平均打分探测力度随浏览深度变化情况
相比原模型,自适应探索模型的平均探测力度,随浏览深度增大而逐渐增大,体现出session维度的显著差异化。
②EE实验位下穿插商品位置分析:
在各实验位下,统计平均插入位置与浏览深度的变化情况。
结论: Test桶结果,随着浏览深度增大,商品的平均插入位置相比原模型有所前移,探索力度增强。
通过以上对探索利用的效果分析,自适应探索模型符合设计预期,在浏览深度较低的session下插入商品较少,探索力度较弱;在浏览深度较深的session下,EE模型的探索意愿更强,模型探索力度更大,穿插商品位置有所前移。
保持搜索效率持平的情况下,EE核心指标提升明显并全量上线,流动性、探索成功率提升近 0.5%。
商品建模方式思考:
差异化建模用户探索意图后,EE模块实现了对不同用户自适应调整探索并取得了一定收益。用户侧建模方式优化后,对商品侧建模方式进行升级改造,将是进一步提升EE探测模型的合理切入点。
二、EE场景建模方式升级
原主网络建模方式为点击率单任务,点击作为转化的前置行为,建模点击行为实现对潜力中长尾的探索助力。同时在实践中,通过样本label进行动态权重调整,隐式建模转化属性,兼顾转化效率。
仅建模点击对高转化属性商品并不友好,同时是对标题党行为的潜在鼓励,和EE模块优化整体生态环境、打造搜索长期价值的初衷有所偏差。因此升级思路不再局限于仅关注曝光后获得点击这一前置链路行为,而是对整体转化链路进行建模,关注商品的多维度属性。
在原有基础上引入转化行为的显式建模任务,将主网络结构从点击单任务升级为点击转化多任务,以多任务方式增强不同行为的建模质量,实现对商品的更全面、更准确建模。
在EE自适应探索机制基础上,EE场景建模方式升级对原有模型进行了如下优化与升级:
(1)SVGP模块交互方案设计
原模型中主网络和辅助模块在SVGP模块中交互,新版方案中辅助任务是否需要与SVGP模块进行交互? 即随机高斯过程是否需要同样作用于建模转化任务,是方案设计首要考虑的问题。
具体实验中,发现SVGP会导致收敛后AUC指标在千分位级别降低,即其在引入不确定性功能的同时,会轻微降低模型效果。考虑到目前SVGP模块已带来所需的探索能力,难以通过多SVGP堆叠方式带来收益。因此升级方案选择将辅助任务构建成纯净任务,其仅建模商品属性而不构建对应的SVGP模块。
(2)多任务网络框架实现
EE探测线上耗时较低,建模方式升级后需延续这一目标。虽然主流多任务结构MMOE性能更为优越,但线上耗时将有增加风险,因此选择更轻量级的share bottom方式,在基本不增加线上耗时的情况下完成多任务建模。升级方案把多任务被设计为双任务模型,使用低层网络进行表征抽取,在高层维度使用两个tower分别建模主任务和辅助任务。
选择双任务为ctr任务+ctcvr任务,考虑到点击样本比订单样本更丰富, ctr正样本更多,对于需要大量引导点的SVGP模块更为友好。同时点击相对购买行为的不确定性更高,在点击预测上引入不确定性打分更为合理,因此将ctr作为主任务、ctcvr为辅助任务进行配置。
前述迭代过程中模型结构如图中间所示,低层网络编码输入信息后使用两个浅层tower分别学习不同任务, 该结构潜在缺点为一方面可能导致低层网络梯度被某个任务主导(例如ctr任务),另一方面上层tower过浅可能导致任务学习不够充分。
进一步探索仅共享特征、增加任务tower深度的网络结构。在多任务分数融合方式相同的情况下,新结构线上表现更佳,因此最终结构如上图最右所示,使用较深的tower head建模各自任务,彼此间仅共享特征。
上述模型在离线指标上取得了不错的收益且线上表现更优,但遇到了大盘效率和EE相关指标无法同时提升的问题。分析梳理现有方案实验后,认为目前多任务融合方式相对朴素、存在改善提升空间。
选取带权相加、直接相乘和幂次指数相乘三种方式。由于缺乏合适的理论量化分析工具,因此选择从实验结果出发选取最优融合方式和融合系数,为此开发了离线融合寻参模块,将predict时各head打分结果保存后,通过网格搜索方式选取最优参数。
通过在多组数据上遍历寻优确定不同融合方式的最优系数,并基于此开展线上实验选取表现最优方式,最终我们选取带权相加方式,在EE指标提升的同时保持大盘效率指标持平。
(1)模型建模升级效果分析
在相同的预测集上,统计了离线打分分布情况
分布由橙色线条(原版)变为蓝色线条(升级后版本),整体更加平缓,保证不同商品彼此更具备区分度。
统计线上打分分布情况,对线上探测情况进行分析
结论: 横轴为曝光数量大于等于N,纵轴为distinct sku数量,下图表明模型升级后在仅探索一次的dst sku数量上有所下降,减少偏随机的一次性探测,但在多次探索商品上有所提升,表明test更倾向于探索中腰部商品。
(2)线上效果
搜索效率持平情况下,流动性指标、探索成功率提升显著并全量上线。
链路一致性思考:
E打分模型优化后,能够一定程度实现探索力度随用户探索意愿的动态调整。但从整体EE链路上看 (候选集生成 → EE打分 → 动态展示),EE动态穿插决策与打分阶段相互独立,其结果由一个xgb回归模型决定,两个阶段的联动关系和一致性程度弱。如何跟随用户浏览意愿,将 EE打分→ 动态展示 两个环节能够同步、一致性地调整,是进一步的优化方向。
三、打分与穿插端到端一致性升级
打分与穿插展示两个阶段一致性未能对齐,可能导致激进的模型打分无法匹配上丰富的穿插展示,无法同步放大EE的探测效果。此外,两个阶段分别由两个模型独立控制,也增加了维护和迭代成本。
面对此一致性问题,升级了端到端打分与穿插方案。EE模型中建模的用户浏览意图,不仅影响EE探测的力度大小,也同时决定动态穿插展示的策略强弱。两阶段的决策过程端到端实现,将流量进行更合理分配,宽泛意图的用户能够达到探测更激进、穿插更多的共振。
1、端到端动态穿插机制优化点
端到端动态穿插机制在原有自适应探索基础上,升级点主要体现在如下三点:
(1)浏览深度预估精准度升级: 在EE探索偏好建模网络Explore-net基础上,提升浏览深度预测精准度。
根据session浏览深度分布,动态分配各深度下穿插商品量,提升EE穿插商品占比调控可操作性。
(3)模型打分与动态穿插数量端到端一致性增强: 采用EE主模型的浏览深度,映射得到当前session下穿插商品数量,端到端解决EE穿插商品数量与EE商品打分两个任务,提升两阶段一致性。
2、方案实践
在EE自适应探索机制基础上,端到端动态穿插机制对原有动态穿插机制进行了如下优化与升级:
(1)动态穿插机制端到端建模
①浏览深度预估任务优化
浏览深度代表了用户在session下的浏览意愿,是EE流量进行合理分配的基础性指标。在不同浏览深度的session下,匹配适合数量的EE商品能在保障效率的前提下提升搜索结果丰富性。
进一步优化了自适应探索模型中Explore-Net对浏览深度预估子任务的准确性,对其输出的浏览深度预估值进行评估,其准度明显高于原有xgb模型,可以对原有xgb模型进行替换。
②端到端建模浏览深度与模型打分
自适应探索实验中使用Explore-Net对模型打分进行差异化探索,其中的浏览深度预估任务可以沿用到穿插商品数量任务中,使模型具有端到端建模两个子任务的能力。
(2)合理设计浏览深度与穿插商品数量映射
在准确预估浏览深度的情况下,通过将浏览深度预估值映射到穿插数量中,保障穿插数量与模型打分一致性,在更深的session下有更多的商品穿插数量和更强的探测力度。
3、升级效果
(1)动态穿插效果分析
①浏览深度预测准度分析:
对比两模型的浏览深度预估准确性,使用均方根对数误差(Root Mean Squared Logarithmic Error, RMSLE)指标进行衡量
在同样的验证集下,Explore-net模型的预估精度明显优于原模型。
②探索打分、动态穿插一致性效果分析:
检查各浏览深度下base与test两个机制下各浏览深度下预设的插入商品曲线和穿插商品数量分布图。
(2)线上效果
搜索效率持平情况下,EE核心指标有一定提升并全量上线。
流量整体联动优化思考:
在对EE流量进行整体优化后,商品探索力度与EE流量分配能够随用户浏览意愿进行自适应调整,但从全局商品展示结果中看,EE探测流量与自然流量相互独立,两者之间并未建立充分的联动与结合。
将视角逐渐放宽到整个排序链路,如何做好EE流量与自然流量的联动,发挥EE在搜索排序链路后置位的优势充分补充与优化自然流量是下一个关心的问题。
四、感知上下文的品牌店铺维度探测
在搜索链路中,EE处于相对后置的位置,然而原EE系统未充分利用这一感知优势,对前序排序结果感知能力较弱。在一些强势品牌、店铺主导的关键词下,存在头部品牌、店铺扎堆现象,优质新品、中长尾商品无法露出,马太效应明显。
对此问题,尝试跳出仅考虑商品维度探测的局限,从更高的品牌、店铺维度视角,对排序结果进行全局性联动优化,建立感知上下文的多维度探测能力。其设计旨在增强对上下文排序结果的感知能力,并在自然流量中对商品分布进行联动优化,系统性缓解排序链路的马太效应。
1、感知上下文的多维度探测机制优化点
感知上下文的多维度探测机制在原有EE探测能力基础上,进行了如下三个方面的优化:
(1)新增EE探测系统对上下文感知能力: 对EE前的排序上下文结果进行充分的感知,对自然流量下原有搜索排序结果进行自适应的穿插优化。
除了现有支持的商品粒度探测,从更宏观的品牌、店铺等维度视角对排序生态进行优化。
(3)EE流量与自然流量联动全局性优化: 缓解部分词下头部品牌和店铺扎堆现象,提升排序多样性,避免对头部品牌、店铺商品进行更多探测、加剧马太效应。
本次升级在原有的搜索EE穿插机制下进行了如下能力的增强与优化:
(1)新增上下文感知能力
在原有搜索EE穿插机制基础上,新增加上下文感知能力,对搜索词属性和上下文排序结果的商品分布进行计算,指导后续的穿插过程
为保障搜索排序结果合理性,避免产生体验性问题,感知上下文能力将判断query词是否是品牌词(如:华为)或型号词(如:iphone),决定是否开启品牌维度探测;判断query词是否是精准店铺词,决定是否开启店铺维度探测。
新增上下文排序结果感知能力,通过统计上链路搜索结果排名前k的商品中的品牌和店铺的分布情况,判断是否存在品牌或店铺的集中现象,进而决定是否开启多维度探测能力。
(2)优化原有穿插机制
在感知能力作为多维度探测启动开关基础上,优化了原有的穿插机制,通过EE展示效果与自然流量结果联动提升搜索结果丰富性与多样性,对搜索结果进行直接高效的影响。
①由感知能力模块判断用户搜索意图和商品分布,决定是否进行多维度探测
对用户搜索意图直接的搜索词动态开启多维度探测功能,如query为品牌词或型号词则不应进行品牌维度探测,如query为店铺词则不进行店铺维度探测,避免影响搜索结果的准确性。考量搜索结果的前k个商品的品牌/店铺分布,判断是否存在头部品牌/店铺扎堆的问题,当同一品牌/店铺下商品占比超过p%后,不再插入该类型EE商品。
如不再插入该类型EE商品,在候选商品中剔除该类型,其余商品按照EE打分结果插入到排序结果中,不影响EE穿插过程与穿插数量,保障EE穿插位置和展现效果合理性。
3、升级效果
(1)多维度探测效果分析
在EE穿插过程中,由于部分EE模型打分较高的头部品牌/店铺的商品在EE候选商品中被剔除,剩余商品模型打分稍低导致穿插位置发生后移或无法穿插进排序结果中,为了避免EE穿插曝光占比降低,提升了各浏览深度下EE穿插商品的配额。实验期间EE曝光占比base与test基本持平。
下面对比了多款热词下EE穿插商品情况。
燃气热水器关键词下,前30个商品中美的占13个,海尔9个,其余品牌露出少。 |
base EE机制穿插入5个商品,其中美的3个,万和、苏泊尔各一个,加剧头部集中问题。 |
test EE机制穿插入6个商品,其中苏泊尔2个,万和、京东京造、奥克斯、阿诗丹顿各一个,搜索结果多样性改善明显。 |
洗碗机关键词下,前30个商品中美的占15个,其余品牌露出少。 |
base EE机制穿插入5个商品,均为美的产品,加剧头部集中问题。 |
test EE机制穿插入6个商品,其中华帝、小米各2个,科勒、HYUNDAI各一个,搜索结果多样性改善明显。 |
在多组query词下,test机制相较于base机制在穿插的过程中减少了头部品牌/店铺的插入,增强了展示结果的丰富性,缓解马太效应;同时注意到test机制由于部分头部品牌/店铺商品被滤除,穿插位置相对有所后移,在排序靠后的位置受配额影响多插入1-2个商品,整体曝光量与base基本一致,与分析一的结论一致。
(2)线上效果
在保持搜索效率持平的情况下,多样性指标大幅提升并全量上线。
本文重点阐述了在搜索EE机制迭代过程中的思考与演进历程,搜索EE作为优化搜索生态与缓解搜索马太效应的重要工具,在演进过程中也围绕搜索结果丰富性和体验性进行了系统性优化。
在优化思路上,不断寻找EE系统的瓶颈问题,在自适应探索机制和建模方式升级提供差异化商品探索力度;将商品打分与穿插商品个数进行联动,端到端优化EE流量分配问题;之后将视野扩展到全局流量,通过多维度探索机制联动自然流量,使EE流量作为自然流量的互相补充。整体思路体现出从商品间探索打分优化——EE流量个性化分配——与自然流量全局优化的迭代进程。
搜索EE后续还将面临更多的问题和挑战,后续会继续沿用这样的迭代思路在更多方面进行探索与深入: