Blame view

docs/Untitled 2.96 KB
dad3c867   tangwang   configs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  

  一、 增加款式意图识别模块

  意图类型: 颜色,尺码(目前只需要支持这两种)

  

  

  二、 意图判断

  - 意图召回层:

  每种意图,有一个召回词集合

  对query(包括原始query、各种翻译query 都做匹配)

  - 以颜色意图为例:

  有一个词表,每一行 都逗号分割,互为同义词,行内第一个为标准化词

  query匹配了其中任何一个词,都认为,具有颜色意图

  匹配规则: 用细粒度、粗粒度分词,看是否有在词表中的。原始query分词、和每种翻译的分词,都要用。

  

  

  三、 意图使用:

    当前 SKU 置顶逻辑在「分页 + 详情回填」之后

  流程是:run_rerank → 按 from/size 切片 → page fill → _apply_sku_sorting_for_page_hits → ResultFormatter

    要改为:  

    1. 有款式意图的时候,才做sku筛选  

    2. sku筛选的时机,改为在reranker之前,对所有内容(rerank输入的所有spus)做sku筛选

    3. 从仅 option1 扩展到多个维度,识别的意图,包含意图的维度名(color)和维度名的泛化词list(color、颜色、colour、colors...),遍历spu的option1_name,option2_name,option3_name字段,看哪个能匹配上意图的维度名list,哪个匹配上了,则在这个维度筛选。

      1. 比如匹配到option2_name,那么取每一个sku的option2_values。如果没匹配到任何一个,那么把三个属性值都用空格拼接起来。这个值要记录下来。有两个作用:

        1. 用来跟query匹配,看哪个更query相关性更高,以此进行最优sku筛选,把选出来的sku置顶,并替换spu的image_url

        2. 用来做rerank doc的title补充,从而参与rerank

    4. Rerank doc (有款式意图的时候)要带上属性后缀,拼接到title后面。在调用 run_rerank 前,对每条 hit 生成「用于重排的 doc 文本」(标题 + 可选后缀)  

  

  - sku筛选的规则也要优化: 

  现在的逻辑是,先做包含的判断,找到第一个 option_value被query包含的,则直接认为匹配。没有匹配的再用embedding相似度。

  改为: 

    1. 第一轮:遍历完,如果有且仅有一个被query包含,那么认为匹配。  

    2. 第二轮:如果有多个符合(被query包含),跳到3。如果没有,对每个词都走泛化词表进行匹配。  

    3. 第三轮:如果有多个,那么对这多个,走embedding相关性取最高的。如果一个也没有,则对所有的走embedding相关性取最高的

    这个sku筛选也需要提取为一个独立的模块。

  

  细节备注:

  intent 考虑由 QueryParser 编排、具体实现拆成独立模块,主义好,现有的分词等基础设施的复用,缺失的英文分词可以补充。

  在重排窗口内,第一次 ES 查询会把 _source 裁成「重排模板需要的字段」,默认只有 title 等,不包含 skus / option*_name。因此,有意图的时候,需要给这一次的_source加上 skus / option*_name