依存句法分析(dependency parsing)
研究句子中词与词之间的关系。依存关系由核心词(head)与依存词(dependent)表示,每个核心词对应其成分的中心(如名词之于名词短语,动词之于动词短语)。最常用的关系分为两大类:从句关系(clausal relations)与修饰语关系(modifier relations)。
例如,「趣味」是「脱离」的 DOBJ 关系,也就是直接宾语(Direct object),这就是从句关系;「低级」是「趣味」的 AMOD 关系,也就是形容词修饰语(Adjectival modifier),这就是修饰语关系。
该任务的目的是输入句子,输出词与词之间依存关系。
针对以span级别构建依存树,现有的高阶方法不能完全解决构建问题,提出一种可以解决以span级别的构建依存树的方法。
基于transition的dependency parsing模型
从输入词通过一系列shift-reduce操作逐步构造dependency tree。
基于graph的dependency parsing模型
基于graph的dependency parsing在可能的树空间中搜索给定句子的树(或树),从而最大化某个分数。 这些方法将搜索空间编码为有向图,并采用从图论中提取的方法来搜索空间以获得最佳解决方案。 更正式地说,给定一个句子 S S S,我们寻找 Y \mathscr{Y} Y中的最佳dependency tree,即该句子所有可能的树的空间,它使某个分数最大化。
提出一种新的dependency parsing的方法。该方法通过直接对span-span关系建模来构造dependency tree。该方法包含两个步骤:
使用机器阅读理解(machine reading comprehension, MRC)框架作为backbone来形式化span链接模块,其中的一个span作为查询来提供它应该链接到的span/subtree。
标记(notations)
给定一个输入句子,表示为 s = ( w 0 , w 1 , . . . , w n ) s=(w_0,w_1,...,w_n) s=(w0,w1,...,wn),其中 n n n表示句子的长度, w 0 w_0 w0是一个虚拟的标记,表示句子的根。
将dependency parsing任务公式化为从所有根为 w 0 w_0 w0可能的树中找到得分最高的树。
T ^ = arg max s c o r e ( T w 0 ) \hat T=\arg\max score(T_{w_0}) T^=argmaxscore(Tw0)
每个标记 w i w_i wi都有相对于的子树 T w i T_{w_i} Twi,该子树可以用一个span来表示,其中 T w i ⋅ s T_{w_i}·s Twi⋅s是它最左边的标记, T w i ⋅ e T_{w_i}·e Twi⋅e是最右边的标记。
标记举例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYZ1Mv8G-1669619150799)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026141142126.png)]
T l o v e T_{love} Tlove 表示整个句子 “I love Tim’s cat”, 子树 T c a t T_{cat} Tcat 的span是“Tim’s cat”.
每个有向弧 w i → w j w_i\rightarrow w_j wi→wj表示一对父子关系,其中 T w j T_{w_j} Twj是 T w i T_{w_i} Twi的子树。
打分公式
树由span和它们之间的链接组成,所以将评分函数形式化为:
score ( T w 0 ) = ∑ i = 1 n score span ( T w i ) + λ ∑ ( w i → w j ) ∈ T w 0 score link ( T w i , T w j ) \begin{aligned} &\operatorname{score}\left(T_{w_0}\right)=\sum_{i=1}^n \operatorname{score}_{\text {span }}\left(T_{w_i}\right) \\ &\quad+\lambda \sum_{\left(w_i \rightarrow w_j\right) \in T_{w_0}} \text { score }_{\text {link }}\left(T_{w_i}, T_{w_j}\right) \end{aligned} score(Tw0)=i=1∑nscorespan (Twi)+λ(wi→wj)∈Tw0∑ score link (Twi,Twj)
其中
span提议模块
s c o r e s p a n ( T w i ) score_{span}(T_{w_i}) scorespan(Twi)的得分可以分解为两个部分,从左半span的得分和右半span的得分。
score span ( T w i ) = score start ( T w i ⋅ s ∣ w i ) + score end ( T w i ⋅ e ∣ w i ) \begin{aligned} \text { score }_{\text {span }}\left(T_{w_i}\right) &=\text { score }_{\text {start }}\left(T_{w_i} \cdot s \mid w_i\right) \\ &+\operatorname{score}_{\text {end }}\left(T_{w_i} \cdot e \mid w_i\right) \end{aligned} score span (Twi)= score start (Twi⋅s∣wi)+scoreend (Twi⋅e∣wi)
其中
使用仿射函数来对 s c o r e s t a r t ( j ∣ i ) score_{start}(j|i) scorestart(j∣i)进行span打分。
score start ( j ∣ i ) = x i ⊤ U start x j + w start ⊤ x j \text { score }_{\text {start }}(j \mid i)=\mathbf{x}_i^{\top} U_{\text {start }} \mathbf{x}_j+\mathbf{w}_{\text {start }}^{\top} \mathbf{x}_j score start (j∣i)=xi⊤Ustart xj+wstart ⊤xj
其中
使用以下损失来优化左半span方案模块:
L span start = − ∑ i = 1 n log exp ( score start ( T w i ⋅ s ∣ i ) ) ∑ j = 1 n exp ( score start ( j ∣ i ) ) \mathcal{L}_{\text {span }}^{\text {start }}=-\sum_{i=1}^n \log \frac{\exp \left(\text { score }_{\text {start }}\left(T_{w_i} \cdot s \mid i\right)\right)}{\sum_{j=1}^n \exp \left(\operatorname{score}_{\text {start }}(j \mid i)\right)} Lspan start =−i=1∑nlog∑j=1nexp(scorestart (j∣i))exp( score start (Twi⋅s∣i))
这个目标强制模型对于每个单词 w i w_i wi找到正确的span从开始 T w i ⋅ s T_{w_i}\cdot s Twi⋅s。
对于 score end ( T w i ⋅ e ∣ w i ) \text { score }_{\text {end}}\left(T_{w_i} \cdot e \mid w_i\right) score end(Twi⋅e∣wi)同理有
score end ( j ∣ i ) = x i ⊤ U e n d x j + w e n d ⊤ x j \operatorname{score}_{\text {end }}(j \mid i)=\mathbf{x}_i^{\top} U_{\mathrm{end}} \mathbf{x}_j+\mathbf{w}_{\mathrm{end}}^{\top} \mathbf{x}_j scoreend (j∣i)=xi⊤Uendxj+wend⊤xj
优化右半跨度方案模块:
L span end = − ∑ i = 1 n log exp ( score end ( T w i ⋅ e ∣ i ) ) ∑ j = 1 n exp ( score end ( j ∣ i ) ) \mathcal{L}_{\text {span }}^{\text {end }}=-\sum_{i=1}^n \log \frac{\exp \left(\text { score }_{\text {end }}\left(T_{w_i} \cdot e \mid i\right)\right)}{\sum_{j=1}^n \exp \left(\text { score }_{\text {end }}(j \mid i)\right)} Lspan end =−i=1∑nlog∑j=1nexp( score end (j∣i))exp( score end (Twi⋅e∣i))
span链接模块
给定两个子树 T w i T_{w_i} Twi和 T w j T_{w_j} Twj,链接模块通过打分 s c o r e l i n k ( T w i , T w j ) score_{link}(T_{w_i},T_{w_j}) scorelink(Twi,Twj)来表示 T w j T_{w_j} Twj是 T w i T_{w_i} Twi子树的可能性。
使用机器阅读理解(MRC)框架作为骨干来计算分数。它通过在三元组{context( X X X), query( q q q), answer( a a a)}上操作。其中
该框架最基本的想法是使用子span查询整个句子可以直接提示识别相应的父span,这比简单地输入两个提取的span然后确定它们是否具有父子关系更有效。
构建Query
通过综合考虑span和它的根公式化query:
⟨ s o s ⟩ , T w j . s , T w j . s + 1 , … , T w j − 1 , ⟨ s o r ⟩ , T w j , ⟨ eor ⟩ , T w j + 1 , … , T w j . e − 1 , T w j . e , ⟨ eos ⟩ \begin{gathered} \langle\mathrm{sos}\rangle, T_{w_j} . s, T_{w_j} . s+1, \ldots, T_{w_j}-1,\langle\mathrm{sor}\rangle, \\ \left.T_{w_j},\langle\text { eor }\right\rangle, T_{w_j}+1, \ldots, \\ T_{w_j} . e-1, T_{w_j} . e,\langle\text { eos }\rangle \end{gathered} ⟨sos⟩,Twj.s,Twj.s+1,…,Twj−1,⟨sor⟩,Twj,⟨ eor ⟩,Twj+1,…,Twj.e−1,Twj.e,⟨ eos ⟩
其中
这种结构的表示方法存在一种问题:查询中不包含 T w j T_{w_j} Twj的位置信息。
于是采用一个更方便的策略,其中查询是原始的句子。 < s o s > , < s o r > , < e o r > , < e o s >
answer提取
直接从MRC模型中获取框架
综上所述:
score parent ( T w i ∣ T w j ) = score parent r ( w i ∣ T w j ) + score parent s ( T w i ⋅ s ∣ T w j ) + score parent e ( T w i ⋅ e ∣ T w j ) + score parent l ( l ∣ T w j , w i ) \begin{aligned} &\text { score }_{\text {parent }}\left(T_{w_i} \mid T_{w_j}\right)= \\ &\text { score }_{\text {parent }}^r\left(w_i \mid T_{w_j}\right)+\text { score }_{\text {parent }}^s\left(T_{w_i} \cdot s \mid T_{w_j}\right)+ \\ &\text { score }_{\text {parent }}^e\left(T_{w_i} \cdot e \mid T_{w_j}\right)+\text { score }_{\text {parent }}^l\left(l \mid T_{w_j}, w_i\right) \end{aligned} score parent (Twi∣Twj)= score parent r(wi∣Twj)+ score parent s(Twi⋅s∣Twj)+ score parent e(Twi⋅e∣Twj)+ score parent l(l∣Twj,wi)
在MRC设置中是query和context的拼接,表示为{, query, , context}
h t h_t ht表示从BERT输出的索引t的token的表示。
score parent r ( w t ∣ T w j ) = exp ( h root ⊤ × h t ) ∑ t ′ ∈ context exp ( h root ⊤ × h t ′ ) score parent s ( w t ∣ T w j ) = exp ( h start ⊤ × h t ) ∑ t ′ ∈ context exp ( h start ⊤ × h t ′ ) score parent e ( w t ∣ T w j ) = exp ( h end ⊤ × h t ) ∑ t ′ ∈ context exp ( h end ⊤ × h t ′ ) score parent l ( l ∣ T w j , w i ) = exp ( h l ⊤ × h w i ) ∑ l ′ ∈ L exp ( h l ′ ⊤ × h w i ) \begin{aligned} &\text { score }_{\text {parent }}^r\left(w_t \mid T_{w_j}\right)=\frac{\exp \left(\mathbf{h}_{\text {root }}^{\top} \times \mathbf{h}_t\right)}{\sum_{t^{\prime} \in \text { context }} \exp \left(\mathbf{h}_{\text {root }}^{\top} \times \mathbf{h}_{t^{\prime}}\right)}\\ &\text { score }_{\text {parent }}^s\left(w_t \mid T_{w_j}\right)=\frac{\exp \left(\mathbf{h}_{\text {start }}^{\top} \times \mathbf{h}_t\right)}{\sum_{t^{\prime} \in \text { context }} \exp \left(\mathbf{h}_{\text {start }}^{\top} \times \mathbf{h}_{t^{\prime}}\right)} \\ &\text { score }_{\text {parent }}^e\left(w_t \mid T_{w_j}\right)=\frac{\exp \left(\mathbf{h}_{\text {end }}^{\top} \times \mathbf{h}_t\right)}{\sum_{t^{\prime} \in \operatorname{context}} \exp \left(\mathbf{h}_{\text {end }}^{\top} \times \mathbf{h}_{t^{\prime}}\right)}\\ &\text { score }_{\text {parent }}^l\left(l \mid T_{w_j}, w_i\right)=\frac{\exp \left(\mathbf{h}_l^{\top} \times \mathbf{h}_{w_i}\right)}{\sum_{l^{\prime} \in \mathcal{L}} \exp \left(\mathbf{h}_{l^{\prime}}^{\top} \times \mathbf{h}_{w_i}\right)} \end{aligned} score parent r(wt∣Twj)=∑t′∈ context exp(hroot ⊤×ht′)exp(hroot ⊤×ht) score parent s(wt∣Twj)=∑t′∈ context exp(hstart ⊤×ht′)exp(hstart ⊤×ht) score parent e(wt∣Twj)=∑t′∈contextexp(hend ⊤×ht′)exp(hend ⊤×ht) score parent l(l∣Twj,wi)=∑l′∈Lexp(hl′⊤×hwi)exp(hl⊤×hwi)
mutual dependency
上式中只描述了父级单向依赖关系,而没有描述子级依赖关系。
score child ( T w j ∣ T w i ) = score child r ( w j ∣ T w i ) + score child s ( T w j . s ∣ T w i ) + score child e ( T w j . e ∣ T w i ) + score child l ( l ∣ T w i , T w j ) \begin{aligned} &\operatorname{score}_{\text {child }}\left(T_{w_j} \mid T_{w_i}\right)= \\ &\operatorname{score}_{\text {child }}^r\left(w_j \mid T_{w_i}\right)+\operatorname{score}_{\text {child }}^s\left(T_{w_j} . s \mid T_{w_i}\right)+ \\ &\text { score }_{\text {child }}^e\left(T_{w_j} . e \mid T_{w_i}\right)+\operatorname{score}_{\text {child }}^l\left(l \mid T_{w_i}, T_{w_j}\right) \end{aligned} scorechild (Twj∣Twi)=scorechild r(wj∣Twi)+scorechild s(Twj.s∣Twi)+ score child e(Twj.e∣Twi)+scorechild l(l∣Twi,Twj)
最后 s c o r e l i n k score_{link} scorelink的评分记为
score link ( T w i , T w j ) = score child ( T w j ∣ T w i ) + score parent ( T w i ∣ w j ) \begin{aligned} \operatorname{score}_{\text {link }}\left(T_{w_i}, T_{w_j}\right) &=\text { score }_{\text {child }}\left(T_{w_j} \mid T_{w_i}\right) \\ &+\text { score }_{\text {parent }}\left(T_{w_i} \mid w_j\right) \end{aligned} scorelink (Twi,Twj)= score child (Twj∣Twi)+ score parent (Twi∣wj)
使用多标签交叉熵 L p a r e n t L_{parent} Lparent表示 s c o r e p a r e n t score_{parent} scoreparent
使用二元交叉熵 L c h i l d L_child Lchild表示 s c o r e c h i l d score_{child} scorechild
最终链接模块的交叉熵表示为 L l i n k = L p a r e n t + L c h i l d L_{link}=L_{parent}+L_{child} Llink=Lparent+Lchild
推导
整个模型的推导如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LfNQwgsm-1669619150801)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026153424217.png)]
该算法的关键点在于可以将 s c o r e ( T w 0 ) score(T_{w_0}) score(Tw0)的公式一般化:
score ( T w ) = ∑ T w i ⊆ T w score span ( T w i ) + λ ∑ ( w i → w j ) ∈ T w score link ( T w i , T w j ) \begin{aligned} &\operatorname{score}\left(T_w\right)=\sum_{T_{w_i} \subseteq T_w} \text { score }_{\text {span }}\left(T_{w_i}\right) \\ &+\lambda \sum_{\left(w_i \rightarrow w_j\right) \in T_w} \text { score }_{\text {link }}\left(T_{w_i}, T_{w_j}\right) \end{aligned} score(Tw)=Twi⊆Tw∑ score span (Twi)+λ(wi→wj)∈Tw∑ score link (Twi,Twj)
根据 T w T_w Tw存在路径 w → w i 1 → . . . → w i w \to w_{i_1}\to...\to w_i w→wi1→...→wi可以将上述公式重写为:
score ( T w ) = score span ( T w ) + ∑ T w j ∈ C ( T w ) [ score ( T w j ) + λ score link ( T w , T w j ) ] \begin{aligned} &\operatorname{score}\left(T_w\right)=\operatorname{score}_{\text {span }}\left(T_w\right) \\ &+\sum_{T_{w_j} \in \mathcal{C}\left(T_w\right)}\left[\operatorname{score}\left(T_{w_j}\right)+\lambda \text { score }_{\text {link }}\left(T_w, T_{w_j}\right)\right] \end{aligned} score(Tw)=scorespan (Tw)+Twj∈C(Tw)∑[score(Twj)+λ score link (Tw,Twj)]
projective decoding
给定在提议阶段获得的检索跨度,使用CKY风格的自下而上动态规划算法来找到基于打分公式得分最高的投影树。
Non-projective decoding
射影性质保证每个子树在文本中都是一个连续的跨度。
但是存在一个问题,当树中存在一定数量的非投影时会表现得糟糕。
解决方法就是采用MST(最大扫描树)算法。获取每对标记 w i w_i wi和 w j w_j wj(而不是span)的分数,用 s c o r e e d g e ( w i , w j ) score_{edge}(w_i,w_j) scoreedge(wi,wj)表示。
score edge ( w i , w j ) = max T w i , T w j [ score span ( T w i ) + score span ( T w j ) + λ score link ( T w i , T w j ) ] \begin{gathered} \operatorname{score}_{\text {edge }}\left(w_i, w_j\right)=\max _{T_{w_i}, T_{w_j}}\left[\text { score }_{\text {span }}\left(T_{w_i}\right)\right. \\ \left.+\operatorname{score}_{\text {span }}\left(T_{w_j}\right)+\lambda \operatorname{score}_{\text {link }}\left(T_{w_i}, T_{w_j}\right)\right] \end{gathered} scoreedge (wi,wj)=Twi,Twjmax[ score span (Twi)+scorespan (Twj)+λscorelink (Twi,Twj)]
数据集:
English Penn Treebank v3.0(PTB)数据集
Chinese Treebank v5.1(CTB)数据集
Universal Dependency Treebanks v2.2(UD)数据集
度量指标:
使用unlabeled attachment score(UAS)和attachment score(LAS)作为评价指标。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8KG4kcS-1669619150801)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026163441185.png)]
上表显示了在PTB和CTB上的不同模型的结果。由于这些方法在其方法中同时利用了dependency和constituency信息,因此不能与文中的方法相比较。
将模型与PTB/CTB测试集上的现有状态模型进行了比较。
对于没有预训练 LM 的模型,所提出的基于QAnet的span预测模型优于所有基线,说明了所提出的span预测框架在依赖解析方面的有效性。
对于基于 BERT 的模型,所提出的span预测模型优于基于BERT的Biaffine模型以及其他竞争基线。在 PTB 上,性能已经优于所有以前的基线,除了 LAS 指标与 PTB 上的 HiePTR(95.46 对 95.47)相比,但表现低于基于 RoBERTa 的模型。在 CTB 上,所提出的跨度预测模型获得了 93.14% UAS 的新 SOTA 性能。
对于基于 RoBERTa 的模型,所提出的模型在 PTB 上实现了 97.24% UAS 和 95.49% LAS 的新 SOTA 性能。由于 PTB 和 CTB 几乎只包含投影树,因此投影解码策略明显优于非投影 MST 算法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Wl5O4ea-1669619150802)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026163733790.png)]
上表将模型与现有的在UD测试集上的最先进的方法进行了比较。
将模型与 UD 测试集上现有的最先进方法进行了比较。 除了在西班牙语中,提出的模型比 SOTA 模型略逊 0.02,而用 XLM-RoBERTa 增强的提出的模型在所有其他 11 种语言上实现了 SOTA 性能,平均性能提升 0.3。 由于 UD 中的许多语言都具有显着部分的非投影树,因此 MST 解码的性能明显优于投影解码,从而在几乎所有语言集中带来了新的 SOTA 性能。
候选span数量的影响
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csHwcf5B-1669619150802)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026164057963.png)]
span链接对span检索的影响
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0yvdpwh-1669619150802)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026164109683.png)]
打分函数的影响
XLM-RoBERTa 增强的提出的模型在所有其他 11 种语言上实现了 SOTA 性能,平均性能提升 0.3。 由于 UD 中的许多语言都具有显着部分的非投影树,因此 MST 解码的性能明显优于投影解码,从而在几乎所有语言集中带来了新的 SOTA 性能。
候选span数量的影响
[外链图片转存中…(img-csHwcf5B-1669619150802)]
span链接对span检索的影响
[外链图片转存中…(img-k0yvdpwh-1669619150802)]
打分函数的影响
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7m1xU0t-1669619150803)(C:\Users\Liu\Desktop\Learning\研究生\截图\image-20221026164116073.png)]