论文笔记—HopRetriever—AAAI

14 篇文章 0 订阅
1 篇文章 0 订阅

Paper

HopRetriever: Retrieve Hops over Wikipedia to Answer Complex Questions.

Defination

SymbolFunction
Retriever依据检索模块
Reader答案抽取模块
q q q问题
K K K知识
D p = D_p= Dp=Retriever ( q , K ) (q, K) (q,K)用于回答问题 q q q的多个文档
a = a= a=Reader ( q , D q ) (q,D_q) (q,Dq)答案
d i d_i di文档 i i i
e i e_i ei d i d_i di描述的实体
m i , j = e i → d i e j m_{i,j}=e_i\stackrel{d_i}{\rightarrow} e_j mi,j=eidiej在介绍 e i e_i ei d i d_i di中“提及”了 e j e_j ej

Hop encoding

Mention embedding: m i , j \mathrm{m}_{i,j} mi,j

在实体 e e e的两侧加入名为[MARKER]的token,第一个[MARKER]输出的表示作为“提及”向量。
m i , j = { B E R T [ M − j ] ( q ; d i ) , i f    m i , j ∈ M m P ( 均 匀 向 量 ) , o t h e r w i s e \mathrm{m}_{i,j}= \left\{ \begin{aligned} BERT_{[M-j]}(q;d_i), && if \;m_{i,j}\in M \\ \mathrm{m}_P(均匀向量), && otherwise \end{aligned} \right. mi,j={BERT[Mj](q;di),mP,ifmi,jMotherwise

Document embedding: u j \mathrm{u}_j uj

被提及的 e j e_j ej的非结构化文档,通过BERT的[CLS]输出作为 u j \mathrm{u}_j uj
u j = B E R T [ C L S ] ( q ; d j ) \mathrm{u}_j=BERT_{[CLS]}(q;d_j) uj=BERT[CLS](q;dj)

Knowledge fusion: h o p i , j \mathrm{hop}_{i,j} hopi,j

a m = h W k m i , j a_m=\mathrm{h}\mathrm{W}_k\mathrm{m}_{i,j} am=hWkmi,j
a u = h W k u j a_u=\mathrm{h}\mathrm{W}_k\mathrm{u}_j au=hWkuj
{ w m , w u } = s o f t m a x ( { a m , a u } ) \{w_m,w_u\}=softmax(\{a_m,a_u\}) {wm,wu}=softmax({am,au})
h o p i , j = w m ⋅ W v m i , j + w u ⋅ W v u j \mathrm{hop}_{i,j}=w_m\cdot\mathrm{W}_v\mathrm{m}_{i,j}+w_u\cdot\mathrm{W}_v\mathrm{u}_j hopi,j=wmWvmi,j+wuWvuj

  1. h \mathrm{h} h:检索历史编码,相当于 q u e r y query query
  2. W k \mathrm{W}_k Wk:将 m i , j \mathrm{m}_{i,j} mi,j u j \mathrm{u}_j uj映射为 k e y key key

Probability of retrieving d j d_j dj: p ( d j ) p(d_j) p(dj)

从前 t − 1 t-1 t1步检索得到实体 e i e_i ei,在第 t t t步,由 e i e_i ei确定检索 d j d_j dj的概率为 p ( d j ) p(d_j) p(dj)
p ( d j ) = s i g m o i d ( h t T h o p i , j ) h t = { h s , t = 1 R N N ( h t − 1 , h o p k , i ) t ≥ 2 p(d_j)=sigmoid(\mathrm{h}_t^\mathrm{T}\mathrm{hop}_{i,j})\\ \mathrm{h}_t= \left\{ \begin{aligned} \mathrm{h}_s, && t=1\\ RNN(\mathrm{h}_{t-1},\mathrm{hop}_{k,i}) && t\geq2 \end{aligned} \right. p(dj)=sigmoid(htThopi,j)ht={hs,RNN(ht1,hopk,i)t=1t2

  1. h s \mathrm{h}_s hs:初始隐藏状态向量
  2. h o p k , i \mathrm{hop}_{k,i} hopk,i t − 1 t-1 t1步的编码
  3. h o p e hop_e hope:检索进程结束标识
h o p hop hop编码注释
h o p i , j hop_{i,j} hopi,j f ( m P , u j ) f(\mathrm{m}_P,\mathrm{u}_j) f(mP,uj) e j e_j ej d i d_i di中未被“提及”
同上 f ( m i , j , u j ) f(\mathrm{m}_{i,j},\mathrm{u}_j) f(mi,j,uj) e j e_j ej d i d_i di中被“提及”
h o p s , j hop_{s,j} hops,j f ( m P , u j ) f(\mathrm{m}_P,\mathrm{u}_j) f(mP,uj)选择 d j d_j dj作为开始
同上 f ( m P , u e ) f(\mathrm{m}_P,\mathrm{u}_e) f(mP,ue)检索结束

Sentence-Level Retrieval

s i , l = B E R T [ S M − l ] ( q ; d i ) p ( s i , l ) = s i g m o i d ( h t W s s i , l ) \mathrm{s}_{i,l}=BERT_{[SM-l]}(q;d_i)\\ p(s_i,l)=sigmoid(\mathrm{h}_t\mathrm{W}_s\mathrm{s}_{i,l}) si,l=BERT[SMl](q;di)p(si,l)=sigmoid(htWssi,l)

  1. s i , l \mathrm{s}_{i,l} si,l d i d_i di中第 l l l个句子结尾处插入[SM-l]对应的句子marker
  2. p ( s i , l ) p(s_i,l) p(si,l):若 p ( s i , l ) > 0.5 p(s_i,l)>0.5 p(si,l)>0.5,则第 l l l个句子作为答案的支撑句子。

Objective Functions: Cross Entropy

paramfunc
d j d_j dj正确文档为 d j d_j dj
s i , l s_{i,l} si,l d i d_i di中的第 l l l个句子
L i L_i Li支撑句子下标
  1. t t t步检索对应的目标函数:
    log ⁡ p ( d j ) + ∑ d ‾ j ∈ D , d ‾ j ≠ d j log ⁡ ( 1 − p ( d ‾ j ) ) \log p(d_j)+\sum_{\overline{d}_j\in D,\overline{d}_j\neq d_j}\log(1-p(\overline{d}_j)) logp(dj)+djD,dj=djlog(1p(dj))
  2. 支撑句子预测目标函数:
    ∑ l ∈ L i log ⁡ p ( s i , l ) + ∑ l ∉ L i log ⁡ ( 1 − p ( s i , l ) ) \sum_{l\in L_i}\log p(s_{i,l})+\sum_{l\notin L_i}\log(1-p(s_{i,l})) lLilogp(si,l)+l/Lilog(1p(si,l))
    同时max两个目标函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值