智能召回引擎支持您自定义打分逻辑来影响您的召回结果。
X2I召回默认打分逻辑
在X2I召回服务中,其中X2I表的kkv的v字段,含义为物品相关性的默认排序分。
如下所示X2I表:
trigger_id | item_id | score |
trigger1 | item1 | 1.0 |
trigger1 | item2 | 1.1 |
trigger1 | item3 | 1.2 |
trigger2 | item1 | 2.1 |
trigger2 | item4 | 1.4 |
trigger2 | item5 | 1.5 |
trigger1、trigger2关联的item有默认的分数(item_score),召回过程中,物品的默认分数会影响召回排序结果。
在查询语句中,传入trigger_id时,需要同时传入trigger的权重(trigger_weight),不同的权重表示对trigger的不同重视程度。物品最终的排序得分为item_score * trigger_weight
。
当不同trigger召回相同item时,item最终得分取最大值。
若query中,trigger_list取值为trigger1:1,trigger2:1
,表示trigger1和trigger2的权重均为1,最终的排序结果为
item_id | final_score | 打分过程 |
item1 | 2.1 | max(1 * 1.0, 1 * 2.1) |
item5 | 1.5 | 1 * 1.5 |
item4 | 1.4 | 1 * 1.4 |
item3 | 1.2 | 1 * 1.2 |
item2 | 1.1 | 1 * 1.1 |
若query中,trigger_list取值为trigger1:2,trigger2:1
,表示trigger1的权重为2,trigger2的权重均为1,最终的排序结果为
item_id | final_score | 打分过程 |
item3 | 2.4 | 2 * 1.2 |
item2 | 2.2 | 2 * 1.1 |
item1 | 2.1 | max(2 * 1.0, 1 * 2.1) |
item5 | 1.5 | 1 * 1.5 |
item4 | 1.4 | 1 * 1.4 |
向量召回默认打分逻辑
向量召回默认打分本质上是计算trigger传入的向量与召回表中item向量的向量距离,按照向量距离由小到大排序,向量排序得分以match_score表示,您可以在自定义打分中使用该字段。
自定义打分逻辑
除了默认的打分逻辑外,智能召回引擎支持用户自定义打分语句,来影响粗排结果。
您可以使用召回表中的任意数值字段定义打分表达式完成对召回结果的打分,需要注意的是用户需要确保打分表达式可以正确执行,否则会导致自定义打分异常而引起查询错误。
另外对于向量召回引擎的自定义打分逻辑,我们强烈建议您使用match_score字段作为您自定义打分表达式的参数,以反映向量距离对召回结果的影响。
具体参见自定义打分规则。