全部产品
Search
文档中心

智能开放搜索 OpenSearch:类目预测功能使用

更新时间:Dec 20, 2023

流程介绍

2

温馨提示:图中的内容必须都配置上,类目预测才会生效。

流程演示

创建并训练类目预测模型

  1. 在左侧导航栏中,进入排序配置->类目预测页面,点击“创建”,进入创建流程。

7777

  1. 进入创建流程后,需要填入模型名称,数据类型,商品ID,商品标题,类目ID,类目名称,过滤条件等信息。

001

  • 数据类型:

    • 物品数据即为当前应用中已有的文档数据,但需要应用中需要事先保存类目ID、物品标题以及类目名称三个字段的数据;

    • 行为数据为上传的用户点击行为采集数据,具体可参考数据采集文档

  • 类目ID:应用中表示类目ID的字段,支持INT类型。必填。

  • 物品标题:应用中表示物品标题的字段,支持TEXT、LITERAL类型。必填。

  • 类目名称:应用中表示类目名称的字段,支持TEXT、LITERAL类型。必填。

  • 过滤条件:选填。如果要填写,需要保证过滤条件中出现的字段名称必须是应用结构中的字段名称。过滤条件支持的操作运算符有:<、>、<=、>=、=、!=。多个过滤条件之间为AND关系,必须要使用英文逗号(,)分隔,表示且关系(暂不支持或关系)。例如,过滤条件为 is_onsale > 0。

  1. 配置完成后点击完成进入类目预测模型详情页:

002

  1. 模型创建完成后,返回类目预测页面,看到模型状态为“待训练”,点击“启动训练”,训练模型数据。

003

类目预测训练状态:

  • 待训练:表示模型刚创建完成,但未做数据训练的模型。

  • 训练中:表示模型创建完成后进入训练但还未完成训练的模型。

  • 训练失败:表示数据错误造成的模型训练失败的模型。

  • 未应用:表示模型训练成功,但并未在召回和排序功能中应用该模型。

配置查询分析和排序表达式

  1. 在左侧导航栏中,进入召回配置->查询分析页面,点击“创建”,进入创建流程。

876878788

  1. 进入创建流程后,按下图流程进行规则的编辑和创建。

11

  1. 然后在粗排或者精排中生效类目预测模型。在左侧导航栏中,进入 排序配置->策略管理 页面,点击“创建”,进入创建流程。

9999999999

以下为应用到基础排序中的流程:

  1. 进入创建流程后填写策略名称,首先选择基础排序(第一轮粗排),选择类型(目前控制台配置仅支持表达式,后续还会支持自定义插件)。

33333333333333333333333333

  1. 然后在排序配置中,选中算分特征下的category_score()

767676767676

  1. 并配置搜索字段以及该算分特征的权重,并保存配置。

8787878787

以下为应用到业务排序中的流程:

  1. 进入创建流程后填写策略名称,首先选择业务排序(第二轮精排),选择类型(目前控制台配置仅支持表达式,后续还会支持自定义插件)。

jichu

2.然后在排序配置中,选中内置函数下的category_score(cate_id_field)

bbbbbbbbbbbbbbbb

3.将cate_id_field改为模型的类目ID,并保存配置。

cccccccccccc

4.模型应用成功后的状态。

006

5.搜索测试效果展示,需要添加参数raw_query=查询词。

5

通过SDK调用查询接口

设置查询参数raw_query:

  • 用于类目预测查询;只有查询词和raw_query的内容一致时,查询时,才会去查查询分析中配置的类目预测;

  • 一般建议设置为终端用户输入的原始查询词。格式:

    raw_query=content
    //API传参content需要URL_ENCODE(SDK不需要encode);content为原始查询词

    实例:假设某个应用的查询分析规则配置如下表所示:

索引名

查询分析规则名

配置类目预测

index1

rule1

No

index2

rule2

Yes

index3

rule3

Yes

  1. 查询的索引没有配置类目预测,请求中有raw_query,不会查询类目预测,查询正常返回;

  2. 查询的索引没有配置类目预测,请求中无raw_query,不会查询类目预测,查询正常放回;

  3. 查询的索引配置类目预测,请求中无raw_query,不会查询类目预测,查询正常返回:a. query=index2:'search_query'

  4. 查询的索引配置类目预测,请求中有raw_query,但和查询索引中的查询词不同,不会查询类目预测,查询正常返回:a. query=index2:'search_query'&raw_query=raw_query

  5. 查询的索引配置类目预测,请求中有raw_query,且和查询索引中的查询词相同,查询类目预测,查询正常返回:a. query=index2:'search_query'&raw_query=search_query

  6. 查询包含多个索引时,且query中有raw_query:a. query=index2:'index_query' AND index3:'search_query'&raw_query=search_query       # 类目预测在index3上生效;b. query=index2:'search_query' AND index3:'search_query'&raw_query=search_query      # 类目预测会优先在index2上生效,如没有结果,会查询index3上的类目预测

注意事项

  • 单个应用最多创建5个类目预测模型。

  • 查询分析规则中配置的类目预测模型,其训练字段必须是该包含在该查询规则所应用的索引中;

  • 在创建类目预测模型之前,需要保证类目预测所使用的相关字段(类目ID)已添加到属性字段列表中

  • 当查询分析中配置了类目预测时,如果查询请求中设置了category_prediction参数,查询会报错。

  • 必须同时配置了查询分析(类目预测)、排序表达式(category_score)、查询时带有固定参数(raw_query),类目预测模型才会生效。

  • 类目ID必须为正数,不能为负数,否则查询会报错server error。

  • 相关管控API:算法周边

进阶

  1. 查询规则中配合实体识别功能使用类目预测,可以扩大类目预测的召回。查询分析会更加实体识别的结果,在原query查询得到类目预测无结果时,会按照一定规则对query进行丢词,进一步查询类目预测,并将丢词后的类目预测结果作为最终的类目预测结果返回。具体见实体识别的文档。

  2. 目前支持对训练出的类目预测模型进行人工干预。用户实现干预操作的过程与查询分析干预类似,类目预测干预的操作步骤,请点击查看文档