跳至主要內容

简单方法增加Query召回的多样性

bbruceyuan大约 2 分钟算法妙用算法妙用

1. 真正的Qeury召回的多样性

对于用的输入的Qeury,对于不同用户输入的同一个Qeury,理论上每一个人感兴趣的点可能是不一样的,所以说可以返回一些多样性的答案来达到满足更多用户需求的目的。

2. 我们所面临的召回多样性问题?

我们现在面临的是一个游戏领域的QA问题,采用的方案是比较传统的检索加召回两段式模型。TODO

3. 分析Query发现的问题?

在分析业务数据的时候,发现有两种比较典型的问题:

第一种是召回模型检索的出来的Query都是比较相似的,因为QA库里面的Qeury比较丰富,所以我们的模型能发现很多比较相似的Query,假设用户输入的Query是”Hello world",那么检索出来的模型可能是 1. hello world 2. hello world! 3. hrllo world! 4. hallo world! 5. hello word。那么对于这一个召回模型来说,其实是不合理的,并不需要这么一样的Clauster Question Query, 只要有一两个就OK了。

第二种是召回模型检索出来的Query都是属于一个簇的,但是这些Query在语言形态上并不是一致,比如用户的input query是“hi", 那么检索出来的Query可能是 1. hello 2. hi 3. 你好 4. Bonjour 5. こんにちは。那么对于这种不同语言,但是在语义空间上比较相似的Query,其实只要选择一两个,用于后续的精排就可以了。

4. 足够简单的方法

4.1 Question id多样化

据统计,有超过10%的数据,top 16的query的question id都是一样的。那么我们可以加入如果有10个query的Question id都一样了,那么可以一次召回后续的其它Question id的Query。

4.2 使用最小编辑距离选择Query

对于第一种情况,可以使用最小编辑距离选择合适的Query。