2022年CCKS论文报告
任务五
论文:A Search-Enhanced Path Mining and Ranking Method for Cross-lingual Knowledge Base Question Answering
1. 概述介绍:
- 把整个任务划分成四个步骤:
- 问题分类:Question classification determines whether the answer to a question is two-hop or three-hop.
- 主要实体抽取:Principal entity extraction extracts principal entities in user ques-tions.
- 增强路径搜索:Search-enhanced candidate path mining obtains possible answer paths.
- 候选实体排名:Candidate path ranking selects the top path as the correct answer.
用下图可以概括:
2. 任务描述(略)
2022年ccks评测任务通过链接直接看第五个任务即可。
3. 方法论:
因此要对四个步骤进行实现
- 对于问题分类:
- 作者发现数据集里都是2或者3跳的问题,那么就是做一个分类问题,所以采用的xlm-roberta-base预训练模型作为编码器,采用FGM的对抗学习策略提高分类模型的鲁棒性。
- 对于主要实体的挖掘:
- 通过数据集,作者发现问题中的主要实体就是答案的第一个实体,所以不需要额外的链接。
- 所以第二步中,使用训练数据中的答案去标注问题中的实体。
- 基于W2NER来作为他们的实体提取模型。
- 但是在这其中,使用神经网络会存在一些问题,他们就使用三元组中的第一个实体去构建了一个实体库,实体库是按照他们长度排列的,并且通过整词的匹配去问题中找。
- 基于以上的这个思想,把整词匹配和NER融合,得到更加精准的结果。有以下规则
- 如果NER的结果是整词匹配的结果是互相的子集,那么整词匹配的结果作为主要实体
- 如果两个毫无关系,使用NER作为主要实体。
- 如果NER的结果不在实体库中,那么就找一个实体库中最相似的作为实体。
- 搜索增强候选路径挖掘
- 由于举办方提供的跨语言并行实体对不完整,所以作者主要通过向量搜索和基于翻译的ES搜索对其进行扩展。
- 向量搜索:
- 向量搜索可以扩展跨语言并行实体对。作者把中文实体图、英法实体图中的所有实体做成一个集合,
- 使用langid工具把这个集合分成了中文实体和英法实体集合。
- 有了不同的集合就可以使用LaBSE模型去构建向量搜索的库。
- 作者还是用了faiss做实体的向量搜索,这是一个开源的相似搜索库。
- 通过向量搜索就能够对应不同语言的实体。
- 基于翻译的ES搜索
Sentencepiece:https://zhuanlan.zhihu.com/p/159200073
- 为了设置更细粒度的索引,使用了Sentencepiece进行分词,去构建一个ES的搜索库。
- 构建了搜索库后,采用多语言模型mbart,将尾实体翻译成其他语言。
- 然后使用ES搜索找到他们最相似的实体,建立跨语言并行实体对。
- 为了提高准确度,采取了以下措施:
1. 中文繁体转简体
2. 使用LaBSE相似度重排了搜索结果
3. 严格按照语言区分ES搜索库
4. 扩展了跨语言的并行实体对后,找到所有满足条件的候选路径。
- 路径排名
- 为了选出最合适的,作者把这个看作二分类问题,就是用正确性来表示是否匹配。
- 用了四种不同的分类模型,用四个模型共同的集成结果来选出最合适的答案。
- xlm-roberta-base
- xlm-roberta-large
- infoxlm
- mbert
- 数据问题
- 对于二分类问题的模型需要数据,因此作者把训练集的问题翻译成其他两种语言,其中主要实体不翻译。从而构造了新的问答对。
- 负采样训练
- 在知识图谱中,从整个图谱中找到正确的答案可能概率很低,存在许多错误路径,因此负样例太多,正例太少。所以需要做到平衡,所以设计了一个负样例获取的方法,随机从错误路径中获得。
- 但是不用做到正例负例的平衡,因为本来就不应该一样多,训练带来的效果也不好。
- 另外,作者把curriculum learning的方法加入了负例训练样本,如下图的设计,就对训练集划分了三个难度,然后负样本训练就从中选择,然后给模型结果。
课程学习:curriculum learning
https://zhuanlan.zhihu.com/p/362351969
概念:模仿人类的学习过程,主张让模型先从容易的样本开始学习,并逐渐进阶到复杂的样本和知识。
课程学习的核心问题是得到一个ranking function,该函数能够对每条数据/每个任务给出其learning priority (学习优先程度)。这个则由难度测量器(Difficulty Measurer)实现。另外,我们什么时候把 Hard data 输入训练 以及 每次放多少呢? 这个则由训练调度器 (Training Scheduler)决定。因此,目前大多数CL都是基于"难度测量器+训练调度器 "的框架设计。根据这两个是否自动设计可以将CL分成两个大类即 Predefined CL 和 Automatic CL。
- 提出了一种路径特征提取,就是用关系来做三元组,但是效果不好。
- 课程学习:前面介绍过就是一个模仿人类的习惯,从简单到难学习的一个过程。作者用它来作用于初始化负样本构造器,使其能够推断整个样本数据。依据是按照相似度,如果相似度前五,那就是很难分辨,设定位难,6-10,11-20设置中等,高于20就是简单。
- 模块聚合:就是前面提到的用了四个模型,然后四个模型的结果共同作用得到最后的结果。
4. 实验
其实验的描述就是按照四个任务进行描述
- 对于第一个任务:问题分类
第一个任务描述的就是一个分类问题,用了FGM提高了分类的准确率。
- 主要实体挖掘
验证和比较和单独使用NER、单独使用整词匹配和两个混合的方法,从图就能知道本来有一点缺陷的方法,两者最终可以互补。
- 候选路径挖掘的搜索增强
在这里有两个方法,
- 对于vector search,作者使用LaBSE做embedding,faiss作为索引,去除桶形和量化以提高精度。
- 对于ESsearch,使用mbart模型去翻译ES搜索的结果实体。
在搜索完成后,使用LaBSE模型去计算相似度,然后去重排所有搜索的结果。
最后也拓宽了结果的范围,这样以保证正确的结果不会被筛选掉。
- 路径排名
路径的排名是通过四个方法的共同结果来呈现的,从图中就可以看到各个模型单独使用和共同使用的得分分数。
HITS@n:
该指标是指在链接预测中排名小于的三元组的平均占比。具体的计算方法如下:
H I T S @ n = 1 ∣ S ∣ ∑ i = 1 ∣ S ∣ Ⅱ ( r a n k ≤ n ) HITS@n = \frac{1}{|S|}\sum^{|S|}_{i=1} Ⅱ(rank≤n) HITS@n=∣S∣1∑i=1∣S∣Ⅱ(rank≤n)
上述公式涉及的符号和MRR计算公式中涉及的符号一样,另外是indicator函数(若条件真则函数值为1,否则为0)。一般地,取等于1、3或者10。该指标越大越好。
- 端到端的评测结果
从结果上看,官方提供的不完整的数据集F1仅仅达67.8%,作者通过了向量搜索和ES搜索扩充了跨语言实体对,使最后的结果达到91%07。第二阶段的官方数据F1得分在64.53%。同理,使用作者的方法F1达到了91%73。
5. 总结
结论就是本文把这个跨语言的图谱检索分成的四个子任务,第一个任务就是问题的分类,第二个任务是主要实体的挖掘,第三任务是候选路径挖掘的搜索增强以及最后的排序。
作者主要说官方提供的数据不完整,起不到跨语言的能力,因此核心卖点就是在路径搜索中使用了向量搜索和基于翻译的ES搜索,以此覆盖了正确的搜索路径。在最后的任务中使用了一种集成的策略,用四个模型共同决策。
最终的效果就是达到了第一阶段的0.9107的F1和第二阶段的0.9173的F1。
若有不对指出,欢迎支持,共同成长,一起学习。