DPR和REALM论文笔记

本文介绍了DPR和REALM两种模型。DPR采用双塔结构进行问题和段落匹配,通过不同策略选择负样本增强训练效果。REALM则结合了知识检索与增强编码器,实现对知识的有效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DPR(2020 EMNLP)

该论文的模型主要是一个双塔结构如下所示:

IMG_0456

整个模型的训练数据D包含m个例子,其中每个例子由一个问题qiq_iqi、一个相关段落pi+p_i^+pi+、n个不相关段落pi,1−,⋯ ,pi,n−p_{i,1}^-,\cdots,p_{i,n}^-pi,1,,pi,n
D={⟨qi,pi+,pi,1−,⋯ ,pi,n−⟩}i=1m \mathcal{D}=\left\{\left\langle q_i, p_i^{+}, p_{i, 1}^{-}, \cdots, p_{i, n}^{-}\right\rangle\right\}_{i=1}^m D={qi,pi+,pi,1,,pi,n}i=1m
loss函数:

image-20220926134007803

负样本的选择方式:

  1. Random:从语料库中随机抽取一个passage,基本上都是跟当前question无关的;
  2. BM25:使用基于BM25的文本检索方式在语料库中检索跟question最相关的文本, 但要求不包含答案;
  3. Gold: 在训练样本中, 其他样本中的positive passage。即对于训练样本 iiij,qij, q_ij,qi 对应的正样本 是 pi+p_i^{+}pi+, 而这个 pi+p_i^{+}pi+可以作为 qjq_jqj 的负样本。

In-batch negatives

一个批次的大小为B,则Q和P就是一个大小B×dB\times dB×d的矩阵,S=QPTS=QP^TS=QPT则是一个大小为B×BB\times BB×B的矩阵,其中第i行表示qiq_iqi和B个段落的相似度,其中pip_ipiqiq_iqi的相关段落,因此剩下的B−1B-1B1个段落就可以当做问题qiq_iqi的负样本段落。

REALM(2020 ICML)

image-20220927100941342

knowledge Retriever:
p(z∣x)=exp⁡f(x,z)∑z′exp⁡f(x,z′) p(z \mid x)=\frac{\exp f(x, z)}{\sum_{z^{\prime}} \exp f\left(x, z^{\prime}\right)} p(zx)=zexpf(x,z)expf(x,z)

f(x,z)= Embed input (x)⊤ Embed doc (z) f(x, z)=\text { Embed }_{\text {input }}(x)^{\top} \text { Embed }_{\text {doc }}(z) f(x,z)= Embed input (x) Embed doc (z)

image-20220927121814792

然后经过一个线性层降维(作者在google ai发布的blog里面显示维度降到了128):

image-20220927121919442 image-20221016164943941

Knowledge-Augmented Encoder:
p(y∣z,x)∝∑s∈S(z,y)exp⁡(MLP⁡([hSTART(s);hEND(s)]))hSTART(s)=BERT⁡START(s)( join BERT(x,zbody))hEND(s)=BERT⁡END(s)( join BERT(x,zbody)) \begin{aligned} p(y \mid z, x) & \propto \sum_{s \in S(z, y)} \exp \left(\operatorname{MLP}\left(\left[h_{\mathrm{START}(\mathrm{s})} ; h_{\mathrm{END}(\mathrm{s})}\right]\right)\right) \\ h_{\mathrm{START}(\mathbf{s})} &=\operatorname{BERT}_{\mathrm{START}(\mathbf{s})}\left(\text { join }_{\mathrm{BERT}}\left(x, z_{\mathrm{body}}\right)\right) \\ h_{\mathrm{END}(\mathrm{s})} &=\operatorname{BERT}_{\mathrm{END}(\mathrm{s})}\left(\text { join }_{\mathrm{BERT}}\left(x, z_{\mathrm{body}}\right)\right) \end{aligned} p(yz,x)hSTART(s)hEND(s)sS(z,y)exp(MLP([hSTART(s);hEND(s)]))=BERTSTART(s)( join BERT(x,zbody))=BERTEND(s)( join BERT(x,zbody))

Inverse Cloze Task(ICT)
PICT(b∣q)=exp⁡(Sretr (b,q))∑b′∈ ЄATCH exp⁡(Sretr (b′,q)) P_{\mathrm{ICT}}(b \mid q)=\frac{\exp \left(S_{\text {retr }}(b, q)\right)}{\sum_{b^{\prime} \in \text { ЄATCH }} \exp \left(S_{\text {retr }}\left(b^{\prime}, q\right)\right)} PICT(bq)=b ЄATCH exp(Sretr (b,q))exp(Sretr (b,q))
公式(1)两边log求导的推导过程如下:

IMG_0457

IMG_0458

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值