作者:jesangliu,腾讯PCG应用研究员
1、前言
2、业务介绍
●融合系统:对自然结果、垂搜特型结果(卡片)进行整页异构排序,包含点击预估、异构多目标排序等阶段,同时也会进行一些业务顶层的轻量重排序或微调。
●通用垂搜子系统:垂搜检索系统由看点搜索系统演化而来,主要用于对接入对高速迭代、快速部署有很高要求,与通用检索逻辑有较大差别的业务。整体系统的特点是部署便捷、快速,这套系统从设计之初就充分考虑了多业务快速接入的场景,目前承接的主要是特型形态的结果。
●主搜子系统:对十亿级规模的索引库中,对用户的Query进行检索,一般会经历召回、精排两个重要阶段。主要的Doc形态是传统Web网页、Web图片、H5形态网页等,这套系统的特点为,业务形态、效果相对稳定、持续,问题类型有相对的共性,适合算法处于稳定器的业务,主要的难点在于满足用户的中长尾需求。
●召回层:包含文本检索和向量检索两部分,文本检索会按照Query的核心词进行语法树构建,由倒排系统进行Doc归并、截断产出文本召回集合。向量检索部分利用深度模型将Query、Doc映射到隐空间,在线利用向量检索引擎召回与Query相似的N条结果,相比倒排检索能够充分利用PLM对Query和Doc的表示进行学习,实现近似一段式检索,相比传统的召回+粗排的二段式检索有更好的效果。
C、评估体系
●interleaving:Interleaving是一种在线评估用户点击偏好的实验。它是将两个排序列表的结果交织在一起曝光给用户,并记录用户最总的点击偏好。整体的感知增益计算逻辑:
其中wins代表用户最总点击了A列表结果,ties代表持平,loss则代表落败。
则代表感知增益胜出,反之则代表落败。
●GSB:GoodvsSamevsBad是一种采用专家评估的手段。标注专家会对左右两边的排序列表进行评估,一边是来自基线线上,一边是来自试验组线上。对于标注专家而言,他不清楚那边的结果是试验组产生的,然后对这两个排序列表进行打分,GoodorSameorBad。最后统计统计整体的GSB指标:(Good-Bad)/(Good+Same+Bad)
A、1.0时代,群雄割据->三国争霸
对比思考:从系统设计上看,「大一统」VS「抽象高级特征」,是两种完全不同的思路,前者更符合机器学习的理念,暴露更多的子特征细节能够提供更多的信息;后者的思路,对目标进行了高度抽象,具有更好的可解释性。从表面看似乎没有明显的优劣可言,但从工业实践经验看,这里还是有较强的实践结论的。
下面揭晓一下结论,从工业系统设计的角度看,更倾向于「抽象高级特征」这种方案,而非「大一统」的方式。理由有以下几点:
●可解释性:工业算法系统的首要考虑就是如何支撑算法持续、高效迭代。在多目标导向下,「大一统」方式下子特征规模已经达到了100维以上,逆序的问题归因相比「高级特征」来讲,归因难度大、问题会更分散,这个模式也间接鼓励算法同学去新增能够带来指标提升的新特征,而不是去迭代已有的特征。
演进总结:
B、2.0时代,统一复用
人效问题:系统细节的差异,算法角度看,在内部的模型、特征体系、数据结构、代码库,全部是完全不同的。维护两套大型复杂系统,分别投入则必须要面对人力折半的问题,背后的压力是可想而知的。
C、领域自适应
最近几年的NLP领域,预训练方向可以称得上AI方向的掌上明珠,从模型的参数规模、预训练的方法、多语言多模态等几个方向持续发展,不断地刷新着领域Benchmark。预训练通过自监督学习,从大规模数据中获得与具体任务无关的预训练模型。那么,在搜索领域下,如何将预训练语言模型,与搜索语料更好的结合,是我们团队一直在探索的方向。
在实践过程中,我们发现通用预训练的语料,与搜索场景的任务,依然存在不小的gap,所以一个比较朴素的思想是,是否可以将搜索领域的自有数据进行预训练任务。在实际的实验中,我们发现将搜索领域的语料,在基础预训练模型后,继续进行post-pretrain,能够有效的提升业务效果,对下游任务的提升,最大可以大致9%。
SemanticMatching:注重Term间的相似关系,建模Term、Phrase、Sentence间的相似关系。(偏向query,title表达是不是相似,同时认为query和title的重要性一样)
●语义结构Compositionalmeanings:语义匹配的文本通过是具有一定语法结构的,使用语义结构的含义会非常有效。
早期的做法:行业内其实很早就有提出RelevanceMatching的概念,在Transformer结构以前的主要工作,大多通过对Query和Doc的文本建立匹配矩阵,矩阵中的每一个元素是对应位置的Term相似度,然后再通过对匹配矩阵的命中Pattern进行提取,具体来说:
●MatchPyramid(中科院2016AAAI),构建了基于字面匹配或Embedding匹配,构建query-document匹配矩阵,命中提取使用CNN+DynamicPooling+MLP完成。
●DRMM(2016中科院CIKM),提出了一个交互得模型结构,Query中的每一个Term分别与Doc中的所有的Term交互,将相似度离散到直方图上,通过MLP,以及Q中的TermGatingNetwork产出得分;其中TermGating尝试了两种方式,分别是单层FeedForward+softmax和无监督的IDF,实验效果是后者更好。由于Embedding是直接使用的300dword2vec,因此参数量非常小——Matching部分有155个参数,TermGating部分有300个参数。
●K-NRM(2017SIGIR),主要贡献在于提出了RBFKernel的Pooling方式,与前作最大的不同是,Embedding使用随机初始化并端到端训练的方式,总参数量达到了约5000w(绝大部分来自Embedding层)实验效果显著优于DRMM,其中端到端训练Embedding带来了最大幅度的提升,KernelPooling相比基线的pooling方式能带来小幅提升。
●PACRR(2017EMNLP),主要创新点:在对每一个queryterm完成pooling后,使用LSTM建模整体的querycoverage。LSTM每个timestep的输入是concat(pooling后的querytermrepresentation,normalized_IDF)。LSTM的输出维度是1,LSTM的输出直接作为最终的score。
为了兼顾SemanticMatching和RelevanceMatching两者的能力,我们提出了HybridMratrixMatching(HMM)模型,提升模型在核心成分精确匹配和语义泛化匹配两方面的综合能力。具体优化点为:
●Query-Title匹配矩阵建模:
隐式匹配矩阵构造:基于BERT产出的最后一层的tokenembedding,通过dense+cosinesimilarity的方式构造Q-T语义匹配矩阵。
显式文本匹配矩阵构造:基于query与title分词后的词粒度命中信息,构造Q-T精确匹配矩阵,并进一步打平映射到与BERT输入信息相同的token粒度。
●语义匹配与文本匹配信息融合:
CNN汇聚两种匹配矩阵信息:在模型输出层,对隐式和显式匹配矩阵拼接产出N个|Q|x|T|匹配矩阵,通过3D-CNN+WeightedSumPooling的方式来捕捉语义匹配和Term显式匹配相结合的命中pattern,产出匹配矩阵特征向量。
最终得分融合:将匹配矩阵侧产出的特征向量与BERTCLS特征向量拼接,融合产出最终的模型得分。
为了能够验证HybridMratrixMatching(HMM)模型在搜索场景下的匹配能力,我们对模型进行了离线和在线两方面的效果验证。