主要内容
- Open-Domain Question Answering相关部分论文阅读摘要
- DrQA(Reading Wikipedia to Answer Open-Domain Questions)
- 改进的TF-IDF关键词提取方法
- Denoising Distantly Supervised Open-Domain Question Answering
- Document Gated Reader for Open-Domain Question Answering
- Reinforced Ranker-Reader for Open-Domain Question Answering
- MULTI-STEP RETRIEVER-READER INTERACTION FOR SCALABLE OPEN-DOMAIN QUESTION ANSWERING
- Learning to Transform, Combine, and Reason in Open-Domain Question Answering
- Attention Is All You Need
- UNIVERSAL TRANSFORMERS
- Ranking and Sampling in Open-Domain Question Answering
Open-Domain Question Answering相关部分论文阅读摘要
本文是我在进行Open-Domain Question Answering的论文调研中阅读的部分论文的摘要,希望对大家有所帮助
DrQA(Reading Wikipedia to Answer Open-Domain Questions)
-
提供问题,给出5篇最相关文章
-
借助于TF-IDF加权的词向量分析,以及n-gram和bigram的技术
-
相关文章:https://blog.csdn.net/asialee_bird/article/details/81486700
TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
-
tf
T F i j = n i j ∑ k n k j TF_{ij} = \frac{n_{ij}}{\sum_k n_{kj}} TFij=∑knkjnij其中,j是文章编号
-
idf
I D F i = log ∣ D ∣ ∣ { j : t i ∈ d j } ∣ + 1 IDF_i = \log \frac{|D|} {|\{j:t_i \in d_j\}| + 1} IDFi=log∣{j:ti∈dj}∣+1∣D∣其中,i是词条编号,j是文章编号,d是文章,D是语料库,+1是为了防止分母为0
-
tf-idf
T F − I D F i j = T F i j × I D F i TF-IDF_{ij} = TF_{ij} \times IDF_i TF−IDFij=TFij×IDFi
-
问题
容易造成同类文本掩盖,即词语出现次数多的未必不重要
-
-
相关算法TF-IWF算法:《改进的TF-IDF关键词提取方法》
改进的TF-IDF关键词提取方法
-
预处理:
考虑同义词的现象,计算词语相似度,将大于阈值的词语作为同一个词语进行合并(只对高词频词语进行此操作;只对同词性的词语计算相似度)
-
核心
用IWF代替IDF,直接计数词频,而代替有该词的文章数
T F − I W F i j = T F i j × I W F i = n i , j ∑ k n k , j × log ∑ i = 1 m n t i n t i + 1 TF-IWF_{ij} = TF_{ij} \times IWF_i = \frac{n_{i, j}}{\sum_k n_{k,j}} \times \log \frac{\sum_{i = 1} ^ m n_{t_i}}{n_{t_i} + 1} TF−IWFij=TFij×IWFi=∑knk,jni,j×lognti+1∑i=1mnti
Denoising Distantly Supervised Open-Domain Question Answering
思路:先筛选答案可能出现的段落,再从段落中筛选答案
-
文本编码
可以将文本单词向量置于多层神经网络中学习,也可置于双向RNN中学习(LSTM)
-
问题编码
先类似于文本编码处理,再进行一次自注意力操作,用一个加权平均值表示问题向量
-
段落筛选
分别用每个词和问题进行匹配,将段落中匹配度最大的作为段落的代表词,将该词的匹配度的softmax作为该段落的概率
Document Gated Reader for Open-Domain Question Answering
思路:对各文章进行评分,并对文章内各答案进行评分,两者结合得到最终评分
- 预处理:对文本和问题进行一次RNN和注意力匹配
- 借助深层神经网络对文本中各个单词和问题中各个单词的匹配程度进行评分,并利用类似CNN的方法采用3*3的窗口将匹配表卷积成100维向量,对100维向量进行池化
- 将池化结果(来自各篇文章)再通过一次LSTM,得到最终评分
Reinforced Ranker-Reader for Open-Domain Question Answering
背景:传统的Open-Domain Question Answering中,将任务分为ranker和reader,并将ranker和reader分别训练。ranker的训练常常希望ranker尽可能提取出包含答案的段落,但这未必有利于reader从中获取答案。
思路:将ranker和reader分开,采用强化学习方法,根据reader获取答案的效果,改进ranker,从而使ranker训练为尽可能提取出reader容易获取正确答案的段落。
- Match-LSTM:首先将问题和文本各自BiLSTM,然后进行一次文本和问题的Attention,借助这个Attention的结果和之前BILSTM的结果改进文本和问题中的向量
- Ranker:利用Match-LSTM的结果,池化使每篇文章仅保留一个向量,根据这组向量计算文本的结果得到每篇文章的评分
- Reader:利用Match-LSTM的结果,估计答案的开始位置和结束位置。为了提高训练效果,在训练时人为插入一些错误文本。
MULTI-STEP RETRIEVER-READER INTERACTION FOR SCALABLE OPEN-DOMAIN QUESTION ANSWERING
思想:模拟人类阅读理解的方法,先粗略总体阅读,从中选出部分文章精读,如果发现选取的文章不够好,则根据精读的结果重新整体阅读,如此反复,直到得到期望的答案,或者判定无法得到答案;为了更好地规模化,文本阅读采取不依赖问题地阅读,再根据问题选取的方式,这样即使没有问题,也可以提前将语料库加以预处理。
- Retriever:先采用一个Bi-LSTM,再进行池化,得到每个文章的向量表示;再计算每个文章和问题的内积,该内积即为每篇文章在该问题下的分数。为了高效率地进行内积的计算,文中提到了一种高性能地计算内积的方法。
- Reader:直接借用他人已经研究好的reader。
- Multi-Step-Reasoner:从reader接近给出结果的位置提取出一个表达reader当前状态的向量,和上一个reader状态相联合后作为新的状态,提供给Retriever进行下一轮的文本筛选。反复多次,直到提取出满意的答案。
Learning to Transform, Combine, and Reason in Open-Domain Question Answering
思想:不借助RNN,完全采取Attention的方法,从极多的文章中获取信息,进行答案提取(注意这个模型没有采用常见的Ranker-Reader的方式)。
- Transformer:方法完全和Attention Is All You Need 一文中给出的方法相同。
- Universal Transformer:方法完全和Universal Transformers 一文中给出的方法相同。
Attention Is All You Need
本文主要是给出了Attention以及Multi-Head Attention的计算方法,并给出了Transformer的计算模型。
关键公式:
Attention:
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
)
=
s
o
f
t
m
a
x
(
Q
K
T
D
K
)
V
\mathrm{Attention}(Q,K,V)=\mathrm{softmax}(\frac{QK^T}{\sqrt{D_K}})V
Attention(Q,K,V)=softmax(DKQKT)V
Multi-Head Attention:
M
u
l
t
i
H
e
a
d
(
Q
,
K
,
V
)
=
C
o
n
c
a
t
(
h
e
a
d
1
,
…
,
h
e
a
d
h
)
W
O
w
h
e
r
e
h
e
a
d
i
=
A
t
t
e
n
t
i
o
n
(
Q
W
i
Q
,
K
W
i
K
,
V
W
i
V
)
\mathrm{MultiHead}(Q, K, V ) = \mathrm{Concat}(\mathrm{head}_1,\dots, \mathrm{head}_h)W_O\\ \mathrm{where}\ \mathrm{head}_i = \mathrm{Attention}(QW_i^Q , K W_i^K , V W_i^V )
MultiHead(Q,K,V)=Concat(head1,…,headh)WOwhere headi=Attention(QWiQ,KWiK,VWiV)
Positional Encodings:
P
E
(
p
o
s
,
2
i
)
=
sin
(
p
o
s
/
1000
0
2
i
/
d
m
o
d
e
l
)
P
E
(
p
o
s
,
2
i
+
1
)
=
cos
(
p
o
s
/
1000
0
2
i
/
d
m
o
d
e
l
)
PE(pos,2i) =\sin(pos/10000^{2i/d_{model}})\\ PE(pos,2i+1) =\cos(pos/10000^{2i/d_{model}})
PE(pos,2i)=sin(pos/100002i/dmodel)PE(pos,2i+1)=cos(pos/100002i/dmodel)
UNIVERSAL TRANSFORMERS
特色:解决Transformer难以处理长文本的缺点。
整体结构和Transformer基本相同,但采用了一些RNN的思想。
关键公式:
P
i
,
2
j
t
=
sin
(
i
/
1000
0
2
j
/
d
)
+
sin
(
t
/
1000
0
2
j
/
d
)
P
i
,
2
j
+
1
t
=
cos
(
i
/
1000
0
2
j
/
d
)
+
cos
(
t
/
1000
0
2
j
/
d
)
.
P^t_{i,2j} =\sin(i/10000^{2j/d})+\sin(t/10000^{2j/d})\\ P^t_{i,2j+1} =\cos(i/10000^{2j/d})+\cos(t/10000^{2j/d}).
Pi,2jt=sin(i/100002j/d)+sin(t/100002j/d)Pi,2j+1t=cos(i/100002j/d)+cos(t/100002j/d).
Ranking and Sampling in Open-Domain Question Answering
特色:在Ranker部分注意考虑了paragraph-paragraph Attention,提高Ranker性能;训练时注意不只提供给Reader最佳文本,而适当引入了噪音文本,以提高Reader的鲁棒性,这是通过sample的过程来实现的。
- Ranker:
- Encoding Layer:每一个单词的向量表示由词向量、字符向量的池化以及common word(即同时出现在问题和文本中的取1,否则取0)构成,之后采用一个BiLSTM进行处理。
- Word-level Matching Layer:先对文章和内容进行Attention,再对文章进行self-attention,最后进行一次BiLSTM。
- Sentence-level Matching Layer:先池化得到问题的一个向量表示,然后通过计算每篇文章和问题的Attention并池化得到文章的向量表示,然后对文章进行self-attention和BiLSTM,最终经过softmax得到评分。
- Reader:直接借用他人的Reader
- Ranking and Sample Strategy:文中提供了五种选取文本供Reader训练的方法,其中经过实验效果最好的方法是先随机取样,收敛后再按照Ranker的评分按概率取样。
博客中的各个小标题的名字即为对应论文的标题,如有需要,可以自行搜索论文原文哦!