Query类目预测

前言

  • QP(Query Processor)的简述:
    Query(查询)是表达用户意图的一种方式,在算法中对Query理解相当于帮助建立用户和系统的关联。在搜索系统中QP(Query Processor)模块负责这部分工作,主要包括:query归一化,query分词,query改写,query类目预测,命名实体识别,term weighting等。

  • 关键模块:
    Query类目预测:
    对用户query进行分类,判断用户的商品类目意图,可在粗排、精排阶段,辅助进行query和item相关性的计算,或者应用于搜索产品辅助功能中的导航、相关搜索等。
    Query改写:
    通过对用户的query进行归一、纠错、拓展、丢词等处理,做到更好的商品召回和匹配。
    Query实体识别:
    对query进行序列标注,识别query中的品牌、品类等属性信息,以帮助更精细的匹配用户意图。
    Query改写
    Query term weighting:
    通过识别query中term的重要度,理解用户核心意图,进一步提升query和商品的相关性。

Query类目预测

query类别预测存在的问题
  1. query长度较短,包含信息太少。
  2. 一个query往往不一定只与一个类目相关,其可能与多个类目相关
  3. 长尾搜索query较多,较难统计归类
  4. 类目上流量马太效应严重,存在较多类目流量较少。
  5. 类目一般分为多级,越靠近叶子节点,预测难度越大。
  6. 类目间存在重叠情况,本身区分难度较大。例如毛衣和针织衫

主要方法有基于统计、基于内容、基于特征融合三大类。

基于统计

1.一方面,搜索系统往往可以积累大量的用户行为数据,如点击、收藏、购买等。另一方面电商场景有比较健全的商品类目体系。结合这两点,用户搜索query后点击/购买商品的类目分布,可以反映出该query的类目预测分布。 基于此,可以使用频率统计的方法(如query点击/成交频次或成交率)得到query的类目的分布,并通过拍阈值、规则过滤等方式,筛选出相对准确的query类目预测结果。
2.除了利用点击行为,还可以进一步引入时间衰减因子和session信息:给近时间的行为更高的权重;短session内更换query,给最后的query点击行为更高的权重。
3.而对于行为较少的长尾query,则可以通过其他辅助行为信息进行补充,如同session的query挖掘:同一个session的query往往具有相同的意图,其类目预测结果也往往一致。如果session中有头部query,则头部query的类目预测结果可以拓展到session中的长尾query。

基于内容

基于内容的类目预测一般有无监督和有监督两种方式

  • 无监督方式可以通过贝叶斯统计、互信息、LDA等方式从商品内容中聚合得到类目关键词及其权重对query term按各类目下的关键词进行加权求和,得到高置信的类目预测结果。
  • 有监督方式则基于人工标注数据或基于点击行为的弱监督数据,通过文本分类的方法训练类目预测模型。
  • 同样对于长尾的query,基于内容的方法可以通过丢词、关键词匹配、编辑距离、word2vec距离等方式映射到头部query,得到其类目预测结果。此外基于头部query训练的分类模型,往往也可以有足够的泛化能力适应长尾query。
基于特征融合:

基于统计和内容的方式可以产出很多帮助query类目预测的统计特征或文本特征,而基于众多的特征再训练一个分类器(如LR/GBDT/DNN等)进行特征融合,往往可以更加准确的预测query类目。这种特征融合的模型可作为一个判别器,进一步判断基于统计和内容方法得到的类目候选是否准确。常见的特征如:

  • Query点击、加购、成交等行为商品类目统计频次/概率、Query下所有类目的归一化分布、比例等。
  • Query召回类目下的商品数、占Query的商品数比例、占类目下的总商品比例。
  • 类目所属的一级类目、领域等。
  • Query成交价格和商品类目成交价格匹配程度。
  • 子模型分数,如基于文本内容的类目预测模型的预测分数。
  • Query词命中类目关键词分布加权分数
特征选择的方法

在这里插入图片描述
更多搜索的类目意图是多面的

基于DNN+GBDT的Query类目预测融合模型

  • 解决的问题:
    1.点击模型,统计历史的类目点击数据对于曝光较多的类目会占优势,对于类目商品体量不均的情况,会使得点击分数更偏向体量大的类目;而且如果存在类目新发商品或新增类目的情况,即使点击数据在近日内有增量,但是也很难在统计值上追上已有类目,所以需要一个根据增量预估整体的方法。
    2.在先验模型中的一个重要假设,就是召回的商品越多,越可能是相关的类目,其实并没有考虑语义上是否能保证相关,例如:“茶几”这个Query可以召回“纸巾盒”类目的很多商品,但其实文本语义上这两个意图并不相关。

  • 提出基于DNN+GBDT的类目预测融合模型
    先验模型中对于召回的类目,要做语义上的判断和区分。最后,通过人工经验的规则方式将两者融合,得到最终的类目判别结果。而随着商品分布的和用户行为的变化,固定的阈值方法难以满足线上的准确率要求,需要有更合理的综合特征的方式。

基于GBDT融合模型的类目预测
  • 点击模型
    类似于排序中ctr预估的方法,通过Query和类目下的商品的历史点击行为,预测Query和类目的未来的点击行为。主要使用Query历史7天、15天的曝光、点击等统计特征。
    考虑到前面提到的第二个问题曝光带来的不公平点击差异,所以在回归的目标上加上了该类目下展现pv的正则项,使得本身展现高的类目会在未来的展现比例得到一定的弱化。

  • 价格&成交模型
    类目之间的商品的价格差异,在区分类目意图的差异上有着重要作用。
    例如,用户搜索“手机”,自然召回的商品有主件“手机”类目和配件“手机保护套”类目,我们可以通过query下的成交价以及各个类目的商品价格加入到特征中。
    所以我们建立了一个基于成交和价格的回归模型,同样利用历史的统计信息作为特征主要包括
    a. query在类目下的成交价格
    b. 类目下商品的价格
    c. 类目的成交金额
    d.query的成交均价等
    其中的类目下商品价格,为了排除掉过高过低的商品价格,我们在模型中使用在一段时间窗口内,该类目下成交商品价格平均值。

  • 基于DNN的先验模型(Deep Prior Model)
    对于Query能召回商品的类目的集合可以作为相关类目的一个较小候选集合;然后,对于这部分类目,需要计算词构成的语义的匹配程度的分数。在计算语义的匹配模型中,我们采用了多层神经网络的方法,通过词的embedding方式表示Query和类目,然后通过Query和类目的采样做目标,来训练这个网络。

  • 特征说明
    a. Query Embedding:**用每个词id的embedding做组合,其中加入了每个词的统计权重和意图权重。**词的统计权重主要为词在Query日志中的搜索pv;意图权重主要为词的标签信息设置的人工权重,例如品牌词、品类词、型号词可能在意图中有更高的权重。最终词的权重表示为 log( pv ) * tag_weight。
    b. Category Words Embedding:每个类目下的词,计算tf*idf,这里的idf计算将每个类目作为一个doc,即在越多类目中出现的词,约不重要。选取每个类目下的最高权重的词来表示类目,并进行带权的embedding计算(全连接)。
    c. Cate Id Embedding:类目id直接做embedding
    d. Cate State Feature:主要为类目下商品的平均成交价等连续值统计特征。

  • 样本&采样
    样本为Query和类目的pair对,主要来源于以下几个部分:
    a. 当前类目与该类目路径名称(其中的词作为Query)为正样本;当前类目和与该类目具有相同父类目(只向上一层)的叶子类目的名称为负样本。
    b. 对于有行为的类目,每个类目下随机抽取有行为商品,对每个商品,获取其ctr高的Query作为正样本;同时,这部分Query可以召回的非该行业或一级类目的商品类目为负样本。
    c. 对于没有行为的类目和商品,对商品标题中的词做随机采样,作为正样本。此时选择组成Query的词数目有限制,选择过短的随机Query会带来很大的歧义。同时和前面的方法相同,生成的Query召回的非该行业或一级类目的商品类目为负样本。
    d. 基于少量人工规则的采样,基于类目之间的互斥关系,Query的正样本类目对应的互斥类目为负样本。

  • 总结&思考
    1.为什么使用点击的数据?
    点击的样本在准确性上有较高的保证,而且从数据的观察发现,每个类目下的高点击的Query并不一定是和类目相关,但是Ctr高的query往往与类目的关联性很大。而且由于我们丰富了类目的表示,即类目用词来表示的同时也增加了一定的泛化性,也就是说对于词表达比较相似的类目,即使自身行为并不丰富,也可以通过与其表达相似的类目来学习得到和Query的关联性。
    选择类目下各个商品的Query与选择类目整体的Query,前者可以带来更丰富的特征,后者可以在统计的丰富上保证准确性。

    2.为什么不使用多分类目标的模型?

    最开始设计方案时其实调研过多分类的方案,最后还是选择二分类的框架主要原因有两个:首先 Query的类目预测不同于商品,往往会存在多个合适的类目预测结果,所以如果采用Softmax loss的多分类,则会由于loss本身的限制,难以使得多个类目同时为正,就算是整体的平均loss最低,对于多label的样本中的loss也是比较高;另外,最重要的一点是先验模型的计算是可以预先知道候选类目的,也就是通过召回限制,可以得到Query的候选类目在一个小的集合范围中,相比多分类的全label空间,要缩小了很多倍(15000->50),而且如果以类目作为特征而不是label,可以得到很多类目的统计以及描述类特征。

基于GBDT的Ensemble模型

前面所述分别从行为反馈和商品分布得到不同维度的相关性描述,在线上版本的模型中对于各个特征采用分数的规则来决策得到最终的相关类目。我们改进了原有通过人工经验的方式设置相关性分档的规则,通过人工标注的样本,将多个特征通过GBDT模型做最后的决策分档模型。
目前在GBDT的特征包括:
a. 先验模型分数(Deep Prior Score)
b. 点击分数、价格&成交分数,在Query下所有类目的归一化、比例等。
c. Query召回类目下的商品数、占Query的商品数比例、占类目下的总商品比例。
d. Query分词长度、Query召回的类目总数(描述宽泛性的Query)
e. 类目所属的一级类目、行业等

参考资料
1.https://zhuanlan.zhihu.com/p/351083652
2.基于DNN+GBDT的Query类目预测融合模型

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值