【轉載】指代消解筆記

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接: https://blog.csdn.net/tcx1992/article/details/83377233

基礎原理:

共指消解技術主要用於解決多個指稱對應同一實體對象的問題。在一次會話中,多個指稱可能指向的是同一實體對象。利用共指消解技術,能夠將這些指稱項關聯(合併)到正確的實體對象,因爲該問題在信息檢索和天然語言處理等領域具備特殊的重要性,吸引了大量的研究努力。共指消解還有一些其餘的名字,好比對象對齊、實體匹配和實體同義。css

共指消解問題的早期研究成果主要來自天然語言處理領域,近年來統計機器學習領域的學者愈來愈多的參與到這項工做中。html

基於天然語言處理的共指消解是以句法分析爲基礎的,表明方法是Hobbs算法和向心理論(centering theory)。Hobbs算法是最先的代詞消解算法之一,主要思路是基於句法分析樹進行搜索,所以適用於實體與代詞出如今同一句子中的場景,有必定的侷限性。git

向心理論的基本思想是:將表達模式(utterance)視爲語篇(discourse)的基本組成單元,經過識別表達式中的實體,能夠得到當前和後續語篇中的關注中心(實體),根據語義的局部連貫性和顯著性,就能夠在語篇中跟蹤受關注的實體。github

隨着統計機器學習方法被引入該領域,共指消解技術進入了快速發展階段,McCarthy等人首次將C4.5決策樹算法也被應用於解決共指消解問題。web

除了將共指消解問題視爲分類問題以外,還能夠將其做爲聚類問題來求解。聚類法的基本思想是以實體指稱項爲中心,經過實體聚類實現指稱項與實體對象的匹配。其關鍵問題是如何定義實體間的類似性測度。Turney基於點互信息來求解實體所在文檔的類似度,可以有效的實現共指消解。算法

基於統計機器學習的共指消解方法一般受限於2個問題:訓練數據的(特徵)稀疏性和難以在不一樣的概念上下文中創建實體關聯。爲解決該問題,Pantel等人基於Harris提出的分佈類似性模型,提出了一個新的實體類似性測度模型,稱爲術語類似度(term similarity),藉助該模型能夠從全局語料中獲得全部術語間的統計意義上的類似性,據此能夠完成實體合併,達到共指消解的目的。markdown

以上轉自
做者:我偏笑_NSNirvana
連接: https://www.jianshu.com/p/4f09043e22ea
來源:簡書
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

基於二元分類的方法

通常而言,共指消解系統的輸入是預處理中得到的各類實體表述(Mention)。相關的預處理主要包括文本斷句、詞性標註、命名實體識別、嵌套名詞短語識別等。針對中文等沒有空格分隔的語言還須要在文本斷句以後進行分詞處理。這些前處理通常採用一些相關的模塊來得到。共指消解的國際評測中,爲了更加精準的評測共指消解算法的性能,組辦方通常都會提供標註好 Mention 的語料。網絡

共指消解須要考慮的特徵主要分爲如下幾類:詞彙、距離、一致性、語法、語義等。詞彙特徵主要考慮兩個 Mention 的字符串的匹配程度,通常而言字符串相同程度越高的 Mention共指機率越大。距離特徵主要考察兩個 Mention 的句子距離,這個主要依據是共指事實上也是一種局部性的替代關係, 越是臨近的 Mention 之間共指機率越大。 通常而言,兩個 Mention 相隔超過三個句子,共指的可能性就會很小了。一致性特徵詳細能夠分爲性別、單複數、語義類別等是否一致。這組特徵主要起到篩選的做用。語法關係用來判斷兩個 Mention 的語法角色之間的關係,因爲對句子深層的語法分析還很難辦到,這裏主要採用的是一些基於特定模板的方法,例如判斷兩個 Mention 之間是否被逗號格開或者相鄰等來決定是否具備同位關係。語義特徵主要是考察兩個 Mention 在語義類別不一致時是否知足上下位或者同義、近義關係。這種判斷主要依賴於具體的語言學詞典,例如英文上的 WordNet(Fellbaum, 1998)、中文上的 HowNet(董振東,董強, 2001)等。app

端到端的神經共指消解

這裏主要介紹一篇大牛論文的相關思路
參考文獻機器學習

Lee K, He L, Lewis M, et al. End-to-end Neural Coreference Resolution[J]. 2017:188-197.

Task

將任務制定爲對文檔中每一個可能的span的一組決策。輸入是一篇包含了 T T 個單詞的document D D ,同時利用了一些metadata,如speaker (說話者信息) 和genre (文檔類型信息)。

D D 中可能的span的數量 N = T ( T + 1 ) 2 N=\frac{T(T+1)}{2} 。分別用START(i) 和END(i)來表示 D D 中span i i ( 1 i N 1\leqslant i \leqslant N )開始和結束時的索引。文中以START(i) 來對span進行排序編號,對於START(i) 相同的span,考慮END(i)。

該任務是爲每個span i i (詞跨度,如:「我 愛 北京 天安門」中,「我 愛」、「我 愛 北京」、「北京」、「北京 天安門」等都是span) 指定一個先行語 (antecedent, 指向的語言單位) y j y_j y j y_j 可能的取值集合爲 Y ( i ) = { ϵ , 1 , . . . , i 1 } \mathcal Y(i)=\{\epsilon,1,...,i-1\} ,一個虛擬先行語 ϵ \epsilon 和全部前文的span。span i i 真正的先行語爲span j j ( 1 j i 1 1\leqslant j \leqslant i-1 ),即表示 i i j j 之間有共指鏈。虛擬先行語 ϵ \epsilon 表明兩種可能的情形: (1) span不是實體mention; (2)span是實體mention但它與前文的任何span都不存在共指。這些決策隱式地定義了最終的聚類,其能夠經過對一個先行語預測結果集合中的全部span進行分組來實現。

模型部分:

模型的目標是學習到一個最可能產生正確等價類的條件機率分佈 P ( y 1 , . . . , y N D ) P(y_1,...,y_N|D)
f ( y 1 , , y N D ) = i = 1 N P ( y i D ) = i = 1 N e x p ( s ( i , y i ) ) y Y ( i ) e x p ( s ( i , y ) ) f(y_1,{\ldots},y_N|D)= \prod_{i=1}^N P(y_i|D) =\prod_{i=1}^N \frac{exp(s(i,y_i))}{\sum_{y' \in \mathcal Y(i)}exp(s(i,y'))}
其中, s ( i , j ) s(i,j) D D 中span i i 和span j j 之間共指鏈的pairwise score。這裏的配對的共指得分(coreference score)由三個因素決定: (1) span i i 是不是一個mention,(2) span j j 是不是一個mention, (3) j j 是否爲 i i 的一個先行語:
s ( i , j ) = { 0 j = ϵ s m ( i ) + s m ( j ) + s a ( i , j ) j ϵ s(i,j)=\begin{cases}0 & j=\epsilon\\s_m(i)+s_m(j)+s_a(i,j) & j\neq \epsilon\end{cases}
這裏 s m ( i ) s_m(i) 爲span i i 成爲一個mention的得分, s a ( i , j ) s_a(i, j) 表明span j j 成爲span i i 的一個先行語的pairwise score。
在這裏插入圖片描述
Step1:計算每一個span的向量表示,並以此對各潛在mention(文本中表明同一實體的不一樣表述)打分。具體的作法是:將編碼信息切分紅一組sentence(句子)組,對每個sentence獨立地構建深度學習模型,將特徵矩陣輸入到深度學習模型(如長短時記憶網絡LSTM、卷積神經網絡CNN等)中,獲得由sentence構成的篇章文本中每個詞的向量表示。對於每一個span,將其中的每一個詞進行組合(如矩陣拼接)獲得span的向量表示。而後對span的向量表示進行非線性映射,獲得每一個潛在mention的分數,並以該分數大小對mention進行修剪,獲得必定數量的mention。
在這裏插入圖片描述
Step2:對每一對span的向量表示計算先行語得分。經過對兩個span的mention score及它們的配對先行語得分求和,獲得一對span最終的共指得分。
s m ( i ) = w m F F N N m ( g i ) s_m(i)=\pmb w_m \cdot {\rm FFNN}_m(\pmb g_i)
s a ( i , j ) = w a F F N N a ( [ g i , g j , g i g j , ϕ ( i , j ) ] ) s_a(i,j)=\pmb w_a \cdot {\rm FFNN}_a([\pmb g_i, \pmb g_j,g_i \circ g_j, \phi (i, j)])
其中 \cdot 表示內積(點積, dot product), \circ 表示對應元素相乘(element-wise multiplication),FFNN表明一個前饋神經網絡,用來計算輸入到輸出向量的非線性映射。
先行語評分函數 s a ( i , j ) s_a(i,j) 包含了各span中明確的元素類似性 g i g j g_i \circ g_j ,及從metadata中speaker、genre信息和兩個span之間距離信息編碼的特徵向量 ϕ ( i , j ) \phi (i, j)

訓練過程:

因爲先行語是隱(latent)變量,所以優化目標爲由標準等價類(gold clustering)產生的全部正確先行語的邊緣對數似然函數,即:
l o g i = 1 N y ^ Y ( i ) G O L D ( i ) P ( y ^ ) log\prod_{i=1}^N \sum_{\hat y \in \mathcal Y(i)\cap {\rm GOLD}(i) }P(\hat y)
其中, G O L D ( i ) {\rm GOLD}(i) 是包含span i i 在內的標準等價類中全部span的集合。若是span i i 不屬於一個gold簇或者其全部的gold先行語都被裁剪掉了,則 G O L D ( i ) = { ϵ } {\rm GOLD}(i)=\{ \epsilon \}
以上目標函數能夠經過SGD、Adam等優化算法進行優化。
代碼地址 (其中,中文的詞向量用了預訓練好的word2vec)

相關文章
相關標籤/搜索