简单方法增加Query召回的多样性
2020年8月3日大约 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。