综述 | 事件抽取及推理 (上)
本文轉(zhuǎn)載自公眾號(hào):知識(shí)工場(chǎng)。 ? ? ? ? ? ? ? ? ? ? ? ?
事件概要
事件是一種重要的知識(shí),近年來(lái),越來(lái)越多的工作關(guān)注于從開放域或領(lǐng)域文本中抽取結(jié)構(gòu)化事件知識(shí)。同時(shí),除了本身就很困難的事件抽取任務(wù)之外,近年來(lái),越來(lái)越多的研究者開始關(guān)注于事件的推理工作中(事理推理,事件時(shí)序關(guān)系推理,事件 common sense level 的 intent 和 reaction 推理)。ACE給了事件定義為:
Anevent is a specific occurrence involving participants. An event is something that happens. An event can frequently be described as a change of state.
從中我們可以看到,事件一般是需要包含事件的參與者(角色),并且事件往往可以被描述為一系列狀態(tài)的改變。在事件抽取的過程中,一個(gè)事件往往被更形式化地定義為包含了事件觸發(fā)器(event trigger), 事件類型(event type), 事件元素(event argument) 和事件元素角色(event argument role),因此事件抽取的任務(wù)就是識(shí)別出上述事件要素并且進(jìn)行結(jié)構(gòu)化組織。從 Zero-Shot Transfer Learning for Event Extraction [HuangL,2017]這篇文章中我們也可以得到一個(gè)對(duì)事件抽取任務(wù)很好的定義:
Thegoal of event extraction is to identify event triggers and their arguments inunstructured text data, and then to assign an event type to each trigger and asemantic role to each argument.
因此,通常來(lái)說(shuō),事件抽取的基本任務(wù)都可以用以下幾個(gè)方面概括:
事件觸發(fā)詞檢測(cè) Event (trigger) detection
事件觸發(fā)詞分類 Event trigger typing (一般和detection一起做,歸結(jié)為detection的一部分)
事件元素識(shí)別 Event Argument Identification
事件元素角色識(shí)別 Event Argument Role Identification
舉個(gè)例子來(lái)說(shuō)明這個(gè)幾個(gè)事件要素:
在這個(gè)例子中,觸發(fā)詞 trigger 有兩個(gè),為 injured 和 passed away,因此 event detection 的工作主要是識(shí)別出這兩個(gè)觸發(fā)詞(塊)。之后,需要對(duì)這些觸發(fā)詞進(jìn)行分類,根據(jù)ACE事件觸發(fā)詞分類體系(如下圖),結(jié)合語(yǔ)義應(yīng)該對(duì)應(yīng)分成 Injure 事件和 Die 事件。然后紅字部分 Henry 根據(jù)分析應(yīng)該判別 Henry 是事件的 Argument,角色都是事件的發(fā)起者。
?????? 每個(gè)事件類型都有一個(gè)模板,如下面兩個(gè)圖,列舉了一些時(shí)間類型的模板和模板的基本樣式:
(ACE 2005一些事件類型模板,左圖來(lái)源于?Kang Liu?的?PPT<Open domain Event Extraction from Texts>,右圖來(lái)源于網(wǎng)絡(luò))
事件在確定了 trigger 類型之后,應(yīng)該根據(jù)這些模板來(lái)進(jìn)行填槽(slots)。
事件抽取方法
事件抽取的基本任務(wù)上面已經(jīng)介紹了,學(xué)術(shù)界和工業(yè)界針對(duì)具體的一些任務(wù)都進(jìn)行了自己的研究。這里值得注意的是這幾個(gè)任務(wù)有時(shí)候并不是孤立去解決的,現(xiàn)在越來(lái)越多工作證明 joint 的方法更加有效(比如 event detection 和 event typing 一般都一起做,大多工作都?xì)w結(jié)為 event detection 的部分,[Shulin Liu,etc,2017]也指出一般在判斷事件類型的時(shí)候更需要對(duì)應(yīng)的 Argument role 的信息,以及文本的上下文信息來(lái)共同確定)
同樣,先以一個(gè)簡(jiǎn)單例子來(lái)解釋事件抽取方法:
(圖片來(lái)源于 [Y Chen, 2015] Event Extraction via DynamicMulti-Pooling Convolutional Neural Networks)
在這個(gè)例子中首先 event detection 找到兩個(gè)事件觸發(fā)詞 died 和 fired,然后要 trigger typing 判斷出 died 對(duì)應(yīng)的是 Die 事件,fired 對(duì)應(yīng)的是 Attack 事件,句子上面的黑色線表示的是 trigger 和 argument 之間的關(guān)系,下面的紅線是用 AMR(Abstract Meaning Representations;Banarescu et al., 2013)進(jìn)行的識(shí)別 argument candidates 并且構(gòu)建起event mention 結(jié)構(gòu)。
?????? 從?An Overview of Event Extraction from Text [F Hogenboom .etc ] 中可以總結(jié)出事件抽取方法主要有以下幾種:
??Expert knowledge driven approaches(pattern-based approaches): 這個(gè)類別的方法主要是借助大量的已有的事件 patterns,比較適合于領(lǐng)域的事件抽取,將文本中的句子和已有的事件 patterns 進(jìn)行匹配。同時(shí)使用詞匯+語(yǔ)法 patterns 和詞匯+語(yǔ)法 patterns 來(lái)進(jìn)行 patterns 制作。這種方式往往能夠抽取出準(zhǔn)確度較高的事件表達(dá),但是這種方式比較費(fèi)時(shí)費(fèi)力,并且有領(lǐng)域局限性。
?Data-driven approaches (Machine Learningapproaches): Data driven 的方法借助machine learning 的相關(guān)算法,以及深度模型來(lái)進(jìn)行觸發(fā)詞判斷等。具體來(lái)說(shuō),使用SVM,ME,CNN,RNN等方法來(lái)判斷句子中某個(gè)詞是否是觸發(fā)詞,重點(diǎn)都是在如何學(xué)習(xí)文本中 sentence 的表示,來(lái)提高判斷準(zhǔn)確度。另外,也要用 AMR 進(jìn)行事件本體結(jié)構(gòu)構(gòu)件,并達(dá)到基于事件元素角色、基于事件上下文的自動(dòng)語(yǔ)義標(biāo)注。這種方式的好處在于相對(duì)需要人力較少,并且可以做開放域文本的抽取,但準(zhǔn)確率自然不算高。
?Hybrid event extraction approaches,簡(jiǎn)言之,就是在做 event detection 的過程使用 pattern based 方法,在做 event typing 的時(shí)候要使用 machine learning 的一些方法提高模型的泛化能力,從而在減少人力的情況下盡量做到精準(zhǔn)。基本現(xiàn)在近年的工作都是以這種方法作為基礎(chǔ)的思想,并且在事件表示,事件學(xué)習(xí)結(jié)構(gòu)上下足功夫來(lái)對(duì)事件抽取的各個(gè)具體難題進(jìn)行一一解決。
??其他方法,此處不詳細(xì)介紹
接下來(lái),結(jié)合幾篇具體比較經(jīng)典的事件抽取工作介紹一下一些基本的事件抽取的想法。
Dynamic Multi-Pooling Convolutional Neural Networks
Paper 原文:[Y Chen, 2015] Event Extraction via DynamicMulti-Pooling Convolutional Neural Networks ;這一節(jié)內(nèi)容圖片均來(lái)自此文
在事件抽取的工作中,兩種特征是十分重要的:
lexical-level (詞匯級(jí)別特征): prior knowledge (先驗(yàn)知識(shí))
Sentence-level (句子級(jí)別特征) :從語(yǔ)法特征方面來(lái)幫助更好理解 events 和arguments
詞匯級(jí)別的特征可以用一個(gè)例子來(lái)進(jìn)行詳細(xì)的說(shuō)明,如下面的例子:
這兩個(gè) beat 在兩句不同的句子中,我們?nèi)耸强梢宰R(shí)別前者是在講競(jìng)選總統(tǒng)時(shí)候 Obama 打敗了 McCain,因此這里的觸發(fā)詞 beats 應(yīng)該對(duì)應(yīng)到的事件類型是?Elect?,而后者說(shuō) Tyson 這個(gè)拳擊手打敗了對(duì)手,因此這個(gè) beats 應(yīng)該對(duì)應(yīng)的是?Attack?事件類型。人們之所以知道這樣分類是因?yàn)橛?prior knowledge 即先驗(yàn)知識(shí)來(lái)支撐這樣的分類,即我們知道Obama 和 McCain 是兩個(gè)總統(tǒng)候選者,因此不太可能真的是 Attack 行為(一般來(lái)說(shuō)),而因?yàn)?Tyson 是一個(gè)拳擊手,所以他的 beat 是實(shí)打?qū)嵉?Attack 行為。原文作者將這樣的類似于 prior 的特征成為 lexical-level 的特征。這里我個(gè)人認(rèn)為可以借助知識(shí)庫(kù)(knowledge base,如中文的我們實(shí)驗(yàn)室的 CN-DBPedia 和 CN-Probase,借助 entity linking 工具),將具體的實(shí)體識(shí)別出來(lái),獲取這些實(shí)體豐富的屬性和概念信息,從而可以獲取更多的先驗(yàn)知識(shí)來(lái)進(jìn)行更精準(zhǔn)的實(shí)體 typing 。
?????? Sentence-level 的特征主要就是考慮語(yǔ)法特征進(jìn)去,比較普遍的方法就是用 AMR 工具來(lái)對(duì)事件表達(dá)進(jìn)行 argument candidate 的識(shí)別和事件結(jié)構(gòu)化,即找到每個(gè) argument 和trigger 在語(yǔ)法層面的聯(lián)系,比如 time,arg0,arg1,place.etc,如下圖。
原文作者提出,這種傳統(tǒng)的方法在提取這些特征時(shí)候嚴(yán)重依賴于已有的工具,但已有的工具的準(zhǔn)確程度不能保證,容易導(dǎo)致 error propagation 。因此, sentence-level 和lexical-level 的特征應(yīng)該使用更好的方式來(lái)進(jìn)行學(xué)習(xí)和表示。對(duì)此,作者提出 Dynamic multi-pooling convolutional neural network 。
已有方法去用 CNN 來(lái)對(duì)句子進(jìn)行處理并提取特征,傳統(tǒng)的CNN使用一個(gè) max-pooling層來(lái)對(duì)卷積后的結(jié)果來(lái)做降維和保留顯著特征。池化層(Pooling layer)作用即為此,很多先前工作證明,Max-Pooling 能減少模型參數(shù)數(shù)量,有利于減少模型過擬合問題,因此在很多 CNN 結(jié)構(gòu)中 Max-Pooling 是很自然的選擇。放在句子中的物理含義就是對(duì)一個(gè)句子的表示做 max 操作,從而找出整個(gè)句子最有用的信息。但這樣的操作可能會(huì)對(duì)句子產(chǎn)生信息丟失的錯(cuò)誤,如上圖的例子,一個(gè)攝像師因?yàn)槊儡娞箍讼蛞粋€(gè)酒店開火而死亡,使用傳統(tǒng)的 CNN 的 Max-Pooling 方式最終會(huì)獲取的關(guān)鍵信息就是 a man die,這樣就會(huì)忽略一些重要事實(shí)——這個(gè)句子還有一個(gè)坦克向酒店開火的事件,并且兩個(gè)事件是包含因果關(guān)系的,同時(shí)更重要的是,camera man 這個(gè) argument 作為 die 的發(fā)起者,同時(shí)又是隱含的坦克 fire 事件的受體(雖沒有明顯指出,但是可以推出來(lái)),這些信息都是對(duì) argument role 判定十分重要的。以這個(gè)典型的例子原文作者要說(shuō)明這種用 max-pooling 的方法并不使用于事件抽取任務(wù)中。同時(shí),為了使讀者相信這種情況不是個(gè)例,原文作者使用列數(shù)據(jù)的方式來(lái)直觀說(shuō)明他們研究的必要性和重要性:
(作者對(duì)問題的統(tǒng)計(jì)工作,可見這種問題在數(shù)據(jù)集的比例很高,直接說(shuō)明了問題有研究必要)
下圖為該工作主要模型:
(Architecture. 該圖以argument classification的工作過程作為示例)
該工作包含 event trigger identification 和 classification,以及 argument identification 和 argument role classification 的工作,相對(duì)比起來(lái) trigger identification and classification要相對(duì)簡(jiǎn)單點(diǎn),所以就以比較復(fù)雜的 argument role identification and classification 作為介紹的重點(diǎn)。
模型的任務(wù)是在 trigger identification and classification 做完之后,確定每個(gè)句子中的argument 是哪個(gè)并且應(yīng)該是哪種 argument role,每次對(duì)句子中除了 trigger 的每個(gè)詞當(dāng)做argument candidate,然后進(jìn)行該 candidate 的分類工作。因此抽象成的就是 word 分類任務(wù),輸入是一個(gè)句子,以及句子的 trigger(已知,在句子上標(biāo)注好)和 trigger 的 type (這里講 trigger 是單個(gè) trigger,多個(gè)的話分別去做)。模型從左至右依次介紹:
Embedding learning:word embeddings,這個(gè)不需要太多介紹,skip-gram 做word2vec。Word-level 的特征就主要用 word embedding 獲取,這里如果要引入知識(shí)庫(kù)的知識(shí)作為先驗(yàn)知識(shí)則需要知識(shí)庫(kù)的 embedding,或者對(duì)知識(shí)庫(kù)進(jìn)行知識(shí)的表示建模。
Lexical Level Feature Representation:即單詞 embeddings 的拼接成向量形式
Sentence Level Feature Input:
1)CWF:Context-word feature,上下文特征,這里上下文指的是 argument candidate 上下文,比如圖上藍(lán)色部分,即把 cameraman 作為 argument candidate 作為研究,則句子其他部分是上下文。
2)PF:Position feature,當(dāng)前詞和需要進(jìn)行預(yù)測(cè)類型的 trigger candidate 或者argument candidate 的相對(duì)距離,以 cameraman 為例,則a:-1,cameraman:0,died:1,when:2,an:3, …考慮到上下文位置關(guān)系。
3)EF: event-type feature,事件類型特征是對(duì)于判定 argument candidate 的類別是十分重要的特征。
DCNN:
1)Convolutional layer:對(duì)上述的三個(gè) feature 拼接成的矩陣進(jìn)行卷積操作,這里簡(jiǎn)單解釋一下對(duì)句子的卷積操作:在文本中,一句話所構(gòu)成的詞向量作為輸入。每一行代表一個(gè)詞的詞向量(這里就是CWF+PF+EF),所以在處理文本時(shí),卷積核通常覆蓋上下幾行的詞,所以此時(shí)卷積核的寬度與輸入的寬度相同,通過這樣的方式,我們就能夠捕捉到多個(gè)連續(xù)詞之間的特征,并且能夠在同一類特征計(jì)算時(shí)中共享權(quán)重。 CNN 的作用這里就是捕捉句子的組成結(jié)構(gòu)的語(yǔ)義特征并且把這些語(yǔ)義信息壓縮要 feature map 中,使用 Multi-filters,在句子處理時(shí)候會(huì)自動(dòng)學(xué)習(xí)有多少個(gè) filters 來(lái)學(xué)習(xí)盡可能多的語(yǔ)義,比如一個(gè) filter學(xué) compositional feature,一個(gè)學(xué)習(xí)詞依賴,一個(gè)學(xué)習(xí)構(gòu)詞法等,最終產(chǎn)生多個(gè) feature maps。如果有 m 個(gè) filters,每個(gè) filter 窗口大小為 h,則
2)Dynamic Multi-Pooling:如圖,假設(shè)有三個(gè) feature map,傳統(tǒng)的 max pooling 直接對(duì)每個(gè) feature map 做一個(gè) max 操作來(lái)提取最有用的信息,這里用的 dynamic pooling 就是將每個(gè) feature map 根據(jù) argument candidate 和 trigger 來(lái)進(jìn)行分割操作,即把每個(gè)feature map 都根據(jù) trigger 和 argument 來(lái)切成三塊,計(jì)算的 max value 不是整個(gè) feature map 的 value,而是這三塊分別的 max value。因此,可以看到每個(gè) feature map 經(jīng)過dynamic pooling 的結(jié)果是三個(gè)部分的 max 值:max(c_11), max(c_12), max(c_13)。到這里核心部分完成。
Output:將上面所講的每個(gè) feature map 的 dynamic pooling 的結(jié)果拼接,并加上lexical level feature representation 壓縮后的結(jié)果作為最終的 feature representation,然后過一個(gè)全連接層做分類,分類的結(jié)果包括各個(gè) argument role 和 None role。
整個(gè)模型的主要過程就如上所示,這個(gè)講的是 argument role 的分類方式。Trigger 分類也用同樣的模型架構(gòu),但是輸入少了EF,dynamic pooling 分割時(shí)候也只根據(jù)當(dāng)前 trigger candidate 進(jìn)行分割,其他的都一樣,這里不再贅述。看一下實(shí)驗(yàn)結(jié)果:
可以看出來(lái)這種 DMCNN 模型在 trigger 和 argument role 分類任務(wù)上都表現(xiàn)很好,說(shuō)明了這種模型的效果。
本篇論文總結(jié):
?????? Dynamic multi-pooling?在這里用的十分契合實(shí)際的場(chǎng)景,可以有效解決?argument candidate?可能作為多個(gè)?trigger?的?argument?但是扮演不同?role?的問題,并且對(duì)特征輸入做的十分清晰,輸入特征比較完整。在中文場(chǎng)景中由于中文的特殊性參考?nugget event trigger identification?那篇文章則應(yīng)該把?char feature 考慮進(jìn)去。這篇文章對(duì)事件抽取比較有啟發(fā)性。
下一節(jié)交叉講一下 pooling 選擇的策略,不要一味選擇 max pooling。
Pooling 選擇的策略
這里交叉介紹 pooling 選擇的策略:
?池化的應(yīng)用:降維和保留顯著的特征
?Max pooling 是取整個(gè) feature map 區(qū)域的最大值作為特征,即一個(gè) max feature操作,在自然語(yǔ)言處理中常用于文本分類(text classification),觀察到的特征是一般都是句子的強(qiáng)特征,以便可以區(qū)分出是哪一個(gè)類別,減少噪音影響。
?Average-pooling?通常是用于句子主題模型(topic model),考慮到一個(gè)句子往往不止一個(gè)主題標(biāo)簽,這時(shí)需要盡量多的句子上下文信息,如果是使用 Max-pooling 的話信息過少,所以使用 Average 的話可以廣泛反映這個(gè) feature map 的特征
?K-max pooling:在一個(gè) feature map 上返回K組最大值,即選擇 top k 的 feature 結(jié)果,不至于省略的太多,也不至于太平均,這種方式還保留了這k個(gè)特征的位置信息。
?Chunk-Max Pooling:類似于本文的 dynamic pooling,將 feature map 分為好幾個(gè)塊,具體怎么分塊完全看你關(guān)注句子的哪幾個(gè)部分,要定下哪幾個(gè)部分來(lái)進(jìn)行split 。Chunk-max pooling 和 K-max pooling 的區(qū)別在于,后者是事先不對(duì) feature map 進(jìn)行分割,然后根據(jù)值選最大的幾塊并保留這些值的順序,前者是先選好切割成幾塊,然后對(duì)每塊選該塊中最大的值作為該塊的結(jié)果。這種策略不止在本任務(wù)中,在情感分析也有用。比如我在分析句子情感時(shí)候,可能比較關(guān)注但是(but)這個(gè)詞,我就可以根據(jù) but 進(jìn)行分割。原因就是比如一個(gè)評(píng)價(jià)說(shuō)“某個(gè)商品很好,很漂亮,等等等等夸了一大堆, BUT 太貴了買不起”,其實(shí)是在含有負(fù)面情感在這邊,如果 max pooling 那肯定判定是位正面情感,但用這種 chunk-max pooling 方法就能有效甄別出這種情感轉(zhuǎn)折,特征的位置信息在這里就體現(xiàn)的尤為重要。
Event Argument 對(duì)事件抽取的促進(jìn)
Paper原文:[Shulin Liu.etc,2017]? Exploiting Argument Information to Improve Event Detection viaSupervised Attention Mechanisms. 本節(jié)圖片均來(lái)自此論文
?
這篇文章進(jìn)行一下簡(jiǎn)單介紹,跟上面一篇文章是同一個(gè)研究組進(jìn)行的,主要強(qiáng)調(diào)的是 eventargument 對(duì)于 event trigger detection 的重要性。以一個(gè)例子說(shuō)明:
Fired 這個(gè) event trigger 到底應(yīng)該對(duì)應(yīng)的是哪個(gè)事件類型?如果只用 surface text 的話無(wú)法判斷 Anwar 到底是什么,根據(jù)上下文可以得知 former protégé(role=Position)這個(gè)argument 角色,則可以輔助判斷這個(gè) fired 應(yīng)該是一個(gè) end-position 的事件 trigger 類型。
?????? 這篇文章進(jìn)一步說(shuō)明 event trigger identification and classification (ED任務(wù))和event argument identification and classification (AE任務(wù))這兩個(gè)任務(wù)不應(yīng)該獨(dú)立去研究,應(yīng)該把兩個(gè)任務(wù)放在一起 joint 去研究。但 joint 的模型往往作為一個(gè) multi-task 任務(wù),loss 是聯(lián)合起來(lái)進(jìn)行訓(xùn)練的,語(yǔ)料中 argument 的數(shù)目較 trigger 要多得多,則模型偏向去提高 AE 任務(wù)。同時(shí) joint 模型往往需要預(yù) predict 一些 trigger candidate , 在預(yù) predict 的過程也沒有考慮 Argument 的影響。這篇文章用 supervised attention 來(lái)進(jìn)行借助 argument role 進(jìn)行 ED 任務(wù), argument word 將會(huì)比其他上下文 word 獲取更多 attention 。在訓(xùn)練中 attention 值根據(jù)實(shí)體的類型、上下文等信息進(jìn)行確定。結(jié)構(gòu)如下所示:
本篇內(nèi)容的工作突出點(diǎn)就是用了 context 中的實(shí)體的類型信息和 supervised attention機(jī)制,他們的 attention 機(jī)制也就是用標(biāo)注的 argument 來(lái)使 argument 的部分享有更大的 attention 權(quán)重,方法比較簡(jiǎn)單,有興趣可以原文仔細(xì)閱讀。
Imitation Learning 和 GAN 在事件抽取中的應(yīng)用
Paper原文:[T Zhang, H Ji, etc.] Joint Entity and Event Extraction with Generative Adversarial Imitation Learning
本篇文章來(lái)自于 Prof. Ji Heng 的研究組,這篇文章站在更高的角度,將 IE 任務(wù)中的兩種 entity extraction 和 event extraction 結(jié)合起來(lái),提出一種端到端的基于模仿學(xué)習(xí)( imitation learning ) 的聯(lián)合實(shí)體和事件抽取模型,同時(shí)為抽取出的實(shí)體打上 argument role 的分類標(biāo)簽。并且作者在訓(xùn)練過程中使用了逆強(qiáng)化學(xué)習(xí)方法 ( inverse reinforcement learning ) 來(lái)提高模型的能力.
?
問題描述和舉例:
在兩個(gè)句子中,有著同一個(gè)觸發(fā)詞(mention 相同),并有著相似的事件描述和上下文,傳統(tǒng)的方法很難通過上下文詞匯和語(yǔ)法特征去正確判別這個(gè)觸發(fā)詞應(yīng)該觸發(fā)哪個(gè)事件,屬于哪種類型。即模型對(duì)于這種要深層次分析語(yǔ)義從而進(jìn)行觸發(fā)詞識(shí)別的能力不夠。? ? ? ? ? ? ? ??
舉例描述: Death 這個(gè)事件觸發(fā)詞可能觸發(fā)一個(gè) Execute 事件或者一個(gè) Die 事件。我們可以看到這兩句話可以認(rèn)為有相似的 local information(word embeddings)和contextual features(兩件事都在描述一個(gè)犯罪事件)。因此,傳統(tǒng)的有監(jiān)督學(xué)習(xí)的方法會(huì)去計(jì)算 death 這個(gè)詞在觸發(fā)詞類型上的概率分布,由于在標(biāo)準(zhǔn)數(shù)據(jù)集中 death 標(biāo)注為 Die 類型的比 Execute 多,從而會(huì)錯(cuò)誤標(biāo)注成為 Die 類型事件。
之后,原文作者對(duì)這種錯(cuò)誤的原因進(jìn)行了精彩的分析,如果有興趣的讀者可以轉(zhuǎn)到原文去仔細(xì)閱讀 introduction 部分。這里總結(jié)分析問題如下:首先原文作者提出這種錯(cuò)誤是由于缺乏對(duì)錯(cuò)誤 label 的學(xué)習(xí),傳統(tǒng)的多分類問題往往使用交叉熵(cross entropy)來(lái)仔細(xì)研究為什么學(xué)習(xí)器學(xué)的是對(duì)的,但對(duì)錯(cuò)誤的 label 一視同仁,沒有對(duì)這些錯(cuò)誤的label進(jìn)行深入的分析。模型學(xué)習(xí)的是提取大量特征,搞各種奇技淫巧來(lái)學(xué)習(xí)怎么正確去標(biāo)記句子,但有時(shí)候卻無(wú)法處理一些 ambiguous instances ,這種情況往往錯(cuò)誤的特征在計(jì)算概率時(shí)候沒有被減少。因此,從錯(cuò)誤 label 中去學(xué)習(xí),獲取更多信息是提高模型 robust 的關(guān)鍵。
另外,原文引入 RL 也很巧妙,還原到人去學(xué)習(xí)怎么避免錯(cuò)誤的場(chǎng)景,然后讓機(jī)器去模仿人的動(dòng)作,原文如下:
?To simulate this behavior fortraining an automatic extractor, we could assign explicit scores on those challenging cases – or rewards in terms of Reinforcement Learning (henceforth,RL).
方法部分:
?????? 原文方法歸結(jié)為幾點(diǎn):使用模仿學(xué)習(xí)的思想用 Q-Learning 來(lái)做序列標(biāo)記任務(wù),找出哪些 word 是 entity 哪些是 trigger 。之后用用 policy gradient 來(lái)做事件對(duì)應(yīng) argument role 的判定,同時(shí)值得注意的是在訓(xùn)練過程中 extractor 的 reward 是由 GAN 來(lái)動(dòng)態(tài)評(píng)估的。
這里簡(jiǎn)要介紹下 IRL 的引入原因: 實(shí)際任務(wù)中設(shè)計(jì) reward 很困難,從認(rèn)了專家提供的ground-truth 去反推 reward 有利于該問題。于是,對(duì)于給定狀態(tài)空間 S,動(dòng)作空間 A, 并且給定決策軌跡數(shù)據(jù)集 π,每個(gè) π 由一個(gè) s 和 a 的序列集合組成。
IRL 執(zhí)行思想:
欲使機(jī)器做出和 ground-truth 相同的行為,等價(jià)于在某個(gè) reward 的環(huán)境里求解最優(yōu)策略,該最優(yōu)策略產(chǎn)生的軌跡與范例軌跡一致
初始很難獲取所有 policy,可以從隨機(jī)策略開始,迭代求解更好的 reward 函數(shù),基于? reward 獲取更好的 policy,最終求得最符合范例數(shù)據(jù)集的 reward 和 policy?
(RL的一些關(guān)鍵部分對(duì)應(yīng)的信息抽取領(lǐng)域的內(nèi)容)
下面是 QL 做 entity 和 trigger 識(shí)別的框架圖,這里進(jìn)行簡(jiǎn)要介紹,需要讀者有一定 RL背景知識(shí)。作者使用 Bi-LSTM 做 context embeddings ,然后輸入到 forward LSTM 和全連接層去產(chǎn)生預(yù)測(cè)結(jié)果到 Q-Table 里面。
q-table的生成公式為:
? ? ? ? ? ? ? ? ? ? ? ? ??
其中,f_sl 操作就是 forward lstm 和 fully connect layer,然后 s_1,…s_t-1 ,說(shuō)的是句子中當(dāng)前詞之前的所有詞標(biāo)記的狀態(tài), a 對(duì)應(yīng)的是一系列的標(biāo)記 action , theta 是參數(shù)集。 Q-table 主要獲取所有分類的得分, extractor 就從 table 中獲取 rank 得分最大的標(biāo)記作為標(biāo)記。這樣在每一步都會(huì)計(jì)算一個(gè) extractor 的標(biāo)記和 ground-truth 的標(biāo)記的差別,以此來(lái)計(jì)算 reward。
當(dāng)前打的標(biāo)記也會(huì)用 Bellman Equation 來(lái)對(duì) Q-table 中的值不斷地進(jìn)行更新,更新的策略為:
?中間那個(gè) max 前面的符號(hào)是用來(lái)控制當(dāng)前狀態(tài)和下個(gè)狀態(tài)的影響的大小。
以 Die 那個(gè)例子來(lái)看下學(xué)習(xí)過程:
從 Q-table 可以看到,剛開始 die 的分高,等式 4 會(huì)懲罰 Q 值,后面之后如果extractor 產(chǎn)生了一個(gè)對(duì)的 label Execute , Q 值就會(huì)被升高,從而讓決策強(qiáng)化。
接下來(lái)是判斷 Argument role 的工作,由于是借鑒之前工作的,因此這里也簡(jiǎn)單說(shuō)一下,就是考慮了 candidate argument? 和 trigger 的上下文,得到 contextual embedding,同時(shí)也考慮了句子中各個(gè)實(shí)體的類型信息和 trigger 的類型信息,這種方式之前的 paper 也強(qiáng)調(diào)了,做法其實(shí)沒有太大本質(zhì)差別。結(jié)構(gòu)框架圖如下所示:
文章另一個(gè)重點(diǎn)是用 GAN 來(lái)進(jìn)行 reward 評(píng)分,通過不斷對(duì)比 extractor 的標(biāo)記結(jié)果和 ground truth 進(jìn)行對(duì)抗。具體引入的原因是由于序列標(biāo)注和角色標(biāo)注都很復(fù)雜,所以reward 值應(yīng)該是動(dòng)態(tài)變化的
?舉個(gè)例子:作者認(rèn)為 extractor 應(yīng)該給那些把觸發(fā)詞標(biāo)記成實(shí)體的情況比那些對(duì)觸發(fā)詞沒啥特殊標(biāo)記的情況更低的分值,就是如果對(duì)這些情況都預(yù)先定義一個(gè) reward 值的話有點(diǎn) expensive 。所以用 IRL 來(lái)動(dòng)態(tài)評(píng)估 reward
1)這里對(duì) GAN 進(jìn)行訓(xùn)練的過程進(jìn)行闡述: GAN 在訓(xùn)練過程中擴(kuò)大了正確和錯(cuò)誤標(biāo)記的 rewards 值的差距,即對(duì)學(xué)習(xí)正確的 label 的例子將會(huì)給更高 reward 分,學(xué)習(xí)錯(cuò)誤的label 的例子將會(huì)適當(dāng)給更低的 reward 分,這樣不斷擴(kuò)大學(xué)習(xí)中正負(fù)標(biāo)記的 margins。
2)在訓(xùn)練的最后幾個(gè) epoch ,就會(huì)獲取一個(gè)比較好的動(dòng)態(tài)的 reward 值,這個(gè) reward 值就可以反過來(lái)導(dǎo)向 extractor 去進(jìn)行正確標(biāo)記。
總的來(lái)說(shuō),這篇文章從寫法和思想上都是十分有啟發(fā)性的,鼓勵(lì)讀者在閱讀本次簡(jiǎn)單的介紹之后去實(shí)際讀一下這篇文章,現(xiàn)在這篇文章掛在 Arxiv 上。
本篇部分介紹了事件抽取的基本步驟,和一些經(jīng)典的事件抽取任務(wù)的方法,希望能對(duì)大家有所幫助。同時(shí),我們這次的介紹將分上下兩部分,下部分將在之后的公眾號(hào)進(jìn)行推文,主要介紹的是一篇 zero-shot 方法在 event extraction 的使用,以及整個(gè)事件推理的專題。近年來(lái)事件推理逐漸引起注意,包括事理圖譜構(gòu)建、common sense level 的事件起因和反應(yīng)的推理,事件因果關(guān)系推理,事件時(shí)序關(guān)系等等都將在下一次的推文中進(jìn)行詳細(xì)介紹。
參考文獻(xiàn):
1.?Huang L, Ji H,Cho K, et al. Zero-Shot Transfer Learning for Event Extraction[J]. arXiv preprint arXiv:1707.01066, 2017.
2.?Ahn D. The stages of event extraction[C]//Proceedings of the Workshop on Annotating and Reasoning about Time and Events. Association for Computational Linguistics,2006: 1-8.
3.?Hogenboom F,Frasincar F, Kaymak U, et al. An overview of event extraction from text[C]//Workshop on Detection, Representation, and Exploitation of Events in the Semantic Web (DeRiVE 2011) at Tenth International Semantic Web Conference(ISWC 2011). Koblenz, Germany: CEUR‐WS. org, 2011, 779: 48-57.
4.?Zhang T, Ji H.Event Extraction with Generative Adversarial Imitation Learning[J]. arXiv preprint arXiv:1804.07881, 2018.
5.?Chen Y, Xu L,Liu K, et al. Event extraction via dynamic multi-pooling convolutional neural networks[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on NaturalLanguage Processing (Volume 1: Long Papers). 2015, 1: 167-176.
6.?Liu S, Chen Y,Liu K, et al. Exploiting argument information to improve event detection viasupervised attention mechanisms[C]//Proceedings of the 55th Annual Meeting ofthe Association for Computational Linguistics (Volume 1: Long Papers). 2017, 1:1789-1798.
7. Event extraction from text.Liu Kang, 2017
8.?Huang L, CassidyT, Feng X, et al. Liberal event extraction and event schema induction[C]//Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2016, 1: 258-268.
9.?Feng X, Qin B,Liu T. A language-independent neural network for event detection[J]. Science China Information Sciences, 2018, 61(9): 092106.
10.?Lin H, Lu Y, HanX, et al. Nugget Proposal Networks for Chinese Event Detection[J]. arXiv preprint arXiv:1805.00249, 2018.
OpenKG.CN
中文開放知識(shí)圖譜(簡(jiǎn)稱OpenKG.CN)旨在促進(jìn)中文知識(shí)圖譜數(shù)據(jù)的開放與互聯(lián),促進(jìn)知識(shí)圖譜和語(yǔ)義技術(shù)的普及和廣泛應(yīng)用。
點(diǎn)擊閱讀原文,進(jìn)入 OpenKG 博客。
總結(jié)
以上是生活随笔為你收集整理的综述 | 事件抽取及推理 (上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | Wordly Wise(W
- 下一篇: 论文浅尝 | DSKReG:基于关系GN