DEKCOR:使用外部知识来进行常识QA任务
本文最后更新于:2022年12月5日 下午
DEKCOR:使用外部知识来进行常识QA任务
Fusing Context Into Knowledge Graph for Commonsense Question Answering
论文链接:2012.04808.pdf (arxiv.org)
论文代码:https://github.com/microsoft/DEKCOR-CommonsenseQA
本文进行常识问答任务(Commonsense Question Answering),利用了外部知识源ConceptNet和Wikitionary。
如图,基本思路是通过ConceptNet检索出问题中concept到目标答案的edge,然后再通过Wikitionary检索出问题和答案的定义,最终拼在一起送给ALBERT。
这里用的数据集中会包含问题的Concept,如图,Q是Where would you find magazines alongside many other printed works
,然后数据集还会告诉你这个Q的Concept是magazines
。
使用ConceptNet找edge的时候会使用一个KCR算法(csqa/Model_details.md at master · jessionlin/csqa (github.com)):
- 已知concept 和答案的concept
- 假如两者有直接的边,那就选择那条边
- 假如没有,则从出发,找到与他相邻的条边。
- 由于ConceptNet会将边分类,所以可以得出每种边的数量。每种边计算出权重。(这种算法会基于更少的边更多的权重)
- 由于ConceptNet自带一个权重,于是将这个权重与上一步权重相乘得到最终的权重。
在提取Wikitionary定义的时候,也有一个算法:
- 先检索原始格式(例如taking notes)
- 通过Spacy得到lemma form进行检索(好像是把动词还原,例如take notes)
- 检索最后一个单词(例如notes)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!