全部产品

类目预测功能介绍

更新时间:2020-11-24 17:11:21

什么是类目预测

搜索引擎的效果优化是一个很大的话题,在查询意图理解阶段可以有语义理解、命名实体识别、词权重分析、拼写纠错等优化手段,在排序阶段可有文本相关度、人气模型、类目预测等优化手段,通过配置查询分析策略和调整排序公式,我们对于效果优化可以有很大的发挥空间,再通过AB测试来对比不同优化策略的效果表现,我们可以做到效果优化心中有数。
那么这其中的类目预测是个什么样的功能?简单来说,用户输入一个query,查询得到一批物品,通过计算每一个物品所属的类目与query之间的相关度,只要物品的排序公式中引用了这个相关度,那么对于这个物品来说,它所属的类目与query的相关度越高,它的排序公式的计算结果就获得了越高的排序得分,从而这个物品就会排在越前面。
举个例子,用户输入的query是“光明”,查询到一批物品,这批物品中可能有一部分所属的类目是“牛奶”,另一部分所属的类目是“大米”。因为根据行为数据,搜索“光明”的人里面,点击“牛奶”类目下的物品的人要比点击“大米”类目下的物品的人多得多,我们事先训练了类目预测模型,模型已经表达了这个信息,那么模型会给出这样的预测结果,对于“光明”这个query来说,“牛奶”类目与“光明”的相关度,要比“大米”类目与“光明”的相关度高多了,所以在计算每个物品的排序分的过程中,“牛奶”类目下的物品所获得的得分要比“大米”类目下的物品得分高,从而“牛奶”类目下的物品会排在更前面。这样我们通过模型就预测了用户搜索“光明”的意图更大的可能是想找“牛奶”类目下的物品,这样的排序结果才是一个比较符合用户预期的结果,用户才更有可能点进去了解详情,从而提升搜索的业务价值。
1

类目预测基本原理

类目预测的目标是预测搜索的query与类目的相关度,它需要用到历史query数据、点击行为数据、类目下的物品信息数据。具体来说是把历史上搜过的query收集起来,结合query查询之后的点击行为数据,与类目下的物品信息联系起来,使用这些数据来训练模型,由模型来刻划query与类目之间的数据规律。
训练模型首先需要有数据源,对应到产品上,创建类目预测模型时先要与某个应用关联起来,关联应用之后,我们就可以确定训练模型所需的三类数据:

  1. 历史上在该应用搜索过的所有query,这部分数据由应用后台的日志数据可以得到,关联应用后默认可以取得。
  2. 类目数据和物品数据,这部分数据由用户在准备模型训练时从应用中指定字段,至少需要指定应用中的类目id字段、物品标题字段,也就是说要求事先把这两个字段的内容存入应用中。
  3. 应用的点击行为数据,这部分数据需要用户在产品上做埋点上报,上报的数据越全面、质量越高,意味着模型的特征越丰富,效果越好。

考虑到上报行为数据往往有一个页面埋点的设计、开发、发布的周期,我们提供了两个选项,带行为数据的模型训练和不带行为数据的模型训练。
带行为数据的模型训练,适用于行为数据已经正确上传,在开始训练时会自动做入口条件检查,确保数据量、数据质量、数据完整度都能达到要求,这个时候的模型训练,大致有如下步骤:

  1. 使用历史query和类目信息,抽样生成样本数据,使用行为数据进行样本数据打标签
  2. 通过对行为数据进行指标统计、特征计算等操作,生成点击行为类特征
  3. 结合query和类目下的物品标题,对query和标题分词后,计算query文本与物品标题文本的语义类特征
  4. 如果行为数据上传了成交类行为数据,会对成交行为数据进行指标统计、特征计算,生成成交类特征,这类特征对于模型的意义是使得成交表现较好的物品排在更前面
  5. 把以上抽样生成的样本数据和这些样本数据的行为特征、语义特征、成交特征和样本的标签,综合起来作为训练数据,输入到算法中进行迭代训练
  6. 训练完成后就得到了描述样本中query和类目相关度关系的模型,利用这个模型就可以预测未知的query和类目的相关度

不带行为数据的模型训练,适用于没有上传行为数据,或行为数据质量较差的场景,只需要指定应用中的类目id字段和物品标题字段,就可以开始训练模型,由于没有行为数据,样本打标签没有依据,那么会使用另一类算法来训练模型,仅通过query和类目下物品标题的文本数据,进行分词后,计算query文本与物品标题文本的语义相关度,这也就是query与类目的相关度。
理论上使用了行为数据的模型效果要优于不使用行为数据的模型,训练模型的特征越丰富,模型对于query和类目的数据规律的刻划越全面,做出的预测越准确。但是不管是带行为数据的模型还是不带行为数据的模型,训练的过程都经过了大量的实验,使用不同场景的数据,做了精心的参数调优,确保效果能符合预期。

如何使用类目预测

必要条件

进行模型训练需要数据源,有数据源才能生成样本数据,有了样本数据才能做特征计算,才能训练模型,所以训练模型之前必须先绑定某个应用,绑定了应用,也就有了应用数据、应用的query数据、应用的行为数据,这些都是类目预测模型所需要的数据。
如果还没有上传点击行为数据,或不想使用点击行为数据进行训练,或点击行为数据尚未满足训练的入口条件,那么可以先不使用点击行为数据来训练模型,这个时候类目预测模型需要从应用中选择三个字段的数据,分别是:类目id、物品标题、类目名称,也就是说应用中需要事先保存这三个字段的数据。其中类目id和物品标题是必不可少的,它们是模型训练得以正常运行的前提,类目名称是可选的,在模型训练完成后,会输出部分模型的预测结果供人为评估效果,类目名称将被用于效果评估页面中,供人为评估query与类目的相关度是否符合预期,如果不提供类目名称,只显示类目id,显然人为评估的时候是看不懂的,所以建议训练的时候提供类目名称字段。
如果已上传了点击行为数据,那么除了选择上述的字段内容,在进行模型训练时,还可以选择关联行为数据的选项,只要行为数据满足训练的入口条件,后台就会使用这部分数据训练模型。

操作步骤

  1. 在应用下创建类目预测模型。
  2. 应用类目预测模型:首先需要在查询分析中应用该模型,然后再在粗排、精排中生效模型。
  3. 创建一个查询分析,配置上类目预测并选择1中创建的模型
  4. 查询中生效类目预测模型:SDK调用查询接口,输入raw_query参数。

具体操作流程可参考类目预测功能使用