今天介紹一個(gè)小眾的 Task, 實(shí)體集合拓展(Entity set expansion).
Empower Entity Set Expansion via Language Model Probing. ACL 2020.
Yunyi Zhang, Jiaming Shen, Jingbo Shang, Jiawei Han
任務(wù)的目標(biāo)是拓展原有的實(shí)體集合兔沃,向其中添加相同類別的實(shí)體嗤瞎,注意這里的實(shí)體類別一般不是傳統(tǒng)的 7 大 NER 類別,更偏向 Fine-grained 的。
舉個(gè)例子伟件,原有集合{德州,杭州弛说,青島}容客,可以拓展為{林芝,六盤水}之類的二跋。
簡(jiǎn)單的話,我們用聚類 Contextual Embedding(類似于 Word Sense Induction 中的做法)战惊, 或者用 pair-wise loss 增強(qiáng) Similarity 的計(jì)算可以給到一個(gè)結(jié)果。
但這樣操作會(huì)有兩個(gè)缺點(diǎn):
- 單純的相似度計(jì)算扎即,容易拓展不準(zhǔn)確的實(shí)體(非同級(jí)吞获,反義詞,High level 相似铺遂,但細(xì)粒度不同).
- 隨著集合的拓展衫哥,容易出現(xiàn)語義偏移等誤差累計(jì)問題.
如果能獲得實(shí)體集合的類別名稱,能減少歧義襟锐,促進(jìn)對(duì)實(shí)體集合的理解撤逢。
本文從這個(gè)角度出發(fā),通過兩個(gè) query 分別預(yù)測(cè)實(shí)體類別和實(shí)體, 試圖更好的利用預(yù)訓(xùn)練模型中的語言知識(shí)粮坞。
初看可能思路比較簡(jiǎn)單蚊荣,只是做一個(gè) MLM 的預(yù)測(cè)。
但如果只是這樣莫杈,最多只是讓生成的實(shí)體更符合生成的 class name互例,但很容易產(chǎn)生誤差傳遞的問題, 并沒解決語義偏移的問題。
文中使用了一些 tricks, 來試圖解決以上問題筝闹,(體現(xiàn)在閱讀觀感上媳叨,就會(huì)覺得這個(gè)模型有點(diǎn)繁瑣)腥光。
Class-guided Entity Expansion
具體來說,這是一個(gè)三階段的 pipeline 模型糊秆。
- 集合類名生成(class name generation).
- 集合名稱排序(class name ranking).
- 集合指導(dǎo)下的實(shí)體選擇(class-guided entity selection).
Class Name Generation
這一部分是三個(gè)階段中最簡(jiǎn)單的一個(gè)武福,主體架構(gòu)就是 MLM。
這個(gè)過程類似于一個(gè)已知特定的下位詞痘番,尋找通用的上位詞這個(gè)過程捉片。
使用 Hearst(1992)年提出的,六個(gè) pattern 構(gòu)建 query汞舱。
每次隨機(jī)抽取三個(gè)實(shí)體組成一個(gè) query伍纫。
這些 query 簡(jiǎn)短,主要起到的構(gòu)建層次化語義昂芜,強(qiáng)化歸納類別信息的作用莹规,例如Country such as China, Japan, South Korea.
- NPy such as NPa
- such NPy as NPa
- NPa or other NPy
- NPa and other NPy
- NPy, including NPa
- NPy, especially NPa
通過 Mask pattern 中 class name 部分,預(yù)測(cè)出最符合當(dāng)前三個(gè)實(shí)體的 class name说铃。
但這樣操作也只能預(yù)測(cè)出 single token 的 class name访惜, 適用性較差。
這邊就采用一個(gè)迭代+beam search 的策略腻扇。依次向前填詞债热。例如先預(yù)測(cè)出來country
, 然后再去預(yù)測(cè)Asia country
.
每輪選取 top-k 的候選集依次向前。
最大長(zhǎng)度限制在 3幼苛,然后利用 pos tag 工具(nltk)來篩除非名詞短語窒篱。
和很多 pipeline 模型一樣,這個(gè)階段的目標(biāo)只是高 recall舶沿,通過多次 sample entity subset 來盡可能提高 recall墙杯。
Class Name Ranking
單純的做上面的 MLM 任務(wù),使用的只是 LM 學(xué)到的分布括荡,不一定符合當(dāng)前 Corpus.
在這個(gè)階段高镐,目標(biāo)是篩選出來最佳 class name() 和一些負(fù)樣本(, 用于后面輔助選擇 entity).
一個(gè)簡(jiǎn)單的想法,統(tǒng)計(jì)前面一個(gè)階段每個(gè) class name 出現(xiàn)的次數(shù)畸冲,作為排序的指標(biāo)嫉髓,但是容易更偏向短 token。
這邊定義一個(gè)實(shí)體-類別相似度 M邑闲,其通過兩個(gè) Max 獲取到最相關(guān)的共現(xiàn)關(guān)系算行。
表示語料集中所有 entity 的 representation, 表示 Hearst pattern 用 MASK 遮掉實(shí)體詞的 representation.
內(nèi)層 Max 是尋找每一個(gè) entity representation 最吻合的 query pattern苫耸,外層本質(zhì)上是一個(gè)篩選 Top-k 的 contextual.
對(duì)于原始實(shí)體集合 E 中的每一個(gè)實(shí)體 都獲得一個(gè) class ranking list .
最后的 class score 用各個(gè) ranking list 的排名倒數(shù)和州邢,.
通過這樣操作放大不同排名 class name 之間的差距。
取 S(c)最大的作為正例, 選取各個(gè) ranking list 中排名都比低的作為負(fù)樣本.
Class-guided Entity Selection
先用 AutoParse 從 raw text 的 Corpus 中抽取 entity 候選集褪子。
然后定義 class-entity 匹配程度量淌,從兩個(gè)角度出發(fā)骗村。
- Local score,
- Global score,
第一個(gè)式子,使用 Class Name Ranking 中定義的 M类少,來獲取 Corpus 中和 class name 中最吻合的 k 個(gè)位置作為其表示叙身。
這邊稱之為 local,感覺想表達(dá)這種 score 只蘊(yùn)含相似度頭部部分硫狞,是一種局部的評(píng)價(jià)。
第二個(gè)式子晃痴,先 mean pooling Corpus 中所有該實(shí)體的 contextual representation残吩,然后與 origin 實(shí)體集合中的實(shí)體做 cos 相似度。
注意倘核,我們計(jì)算時(shí)用的是從 E 中隨機(jī)抽取出來的子集泣侮,以期降低 noise 的作用,有一點(diǎn) boosting 的感覺紧唱。
這種算是追求 contextual-free 的操作活尊。
最后的 score 值,由兩者的乘積方根表示漏益。
到這里我們實(shí)際上是可以做一個(gè) Entity Ranking List(R)輸出, 但是好像還沒用到 negative class name.
回想一下蛹锰,我們前面分析的會(huì)出現(xiàn)的問題,第一個(gè)是 ambiguous 這個(gè)試圖用 class name绰疤,還有后面的一些 score 計(jì)算方式來解決铜犬;第二個(gè)語義偏移,我們好像還沒辦法解決轻庆。
這邊就用一個(gè)回溯的思想癣猾,把 entity 加到 E 中再做一次 Class Name Ranking.
講道理如果沒有發(fā)生語義偏移的話,那應(yīng)該還是第一余爆, 應(yīng)該還是要比所有 negative sample 排名要高纷宇。
在這邊就用一個(gè)指示函數(shù)來做這件事,當(dāng)然用指示函數(shù)就相對(duì)于去截?cái)喽攴剑且粋€(gè) filter 兜底的過程像捶。
然后,重復(fù)抽取子集T 次转捕,構(gòu)建出 T 個(gè) Entity Ranking List.
這邊用兩種模式作岖,匯集這 T 次的結(jié)果。
- 排名的倒數(shù).
- 相對(duì) score.
實(shí)驗(yàn)解決顯示五芝,方案 1 效果會(huì)更好點(diǎn)痘儡。
值的注意的是這種模式還提供了刪除前期 expanded entity 的可能。
重復(fù)上述 pipeline 直到 set 達(dá)到預(yù)定大小(50) 或者連續(xù)三次 set 不變.
Experiments
在 Wiki 和 APR 這兩個(gè)數(shù)據(jù)集上進(jìn)行測(cè)試枢步。
Wiki 是 Wikipedia Corpus 的子集沉删,APR 則是 15 年的一個(gè)新聞數(shù)據(jù)集渐尿。
因?yàn)?BERT 在 Wikipedia 上 trained 過,在 Wiki 上測(cè)試能夠反映出來這個(gè)方法能不能把 pre-trained 學(xué)到的知識(shí)展示出來矾瑰。
實(shí)驗(yàn)結(jié)果相較于之前的 baselines 有顯著提升砖茸,尤其是在 MAP@50 中。
Ablation experiments 中殴穴,NoCN 是去掉 Class name 模塊直接計(jì)算 score凉夯,相對(duì)于一個(gè)只用 BERT representation 的方案。
通過對(duì)比這個(gè)強(qiáng) baseline采幌,可以發(fā)現(xiàn)加上 class name 對(duì)于整體語義理解很有幫助劲够。
NoFilter 在 Wiki 上差異不大,在 APR 上就比較大了休傍,可能是 BERT 已經(jīng)能很好控制 Wikipedia 語料中語義的情況征绎。
這張表可能要結(jié)合 case study 才能分析,對(duì) 55 個(gè) entity set 進(jìn)行分析磨取,MAP@10 比較穩(wěn)定人柿,到還好解釋,對(duì)于 SetExpan 應(yīng)該屬于全面優(yōu)于的佐證忙厌,對(duì)于其他 ablation 模式凫岖,更偏向于對(duì)于 Top 靠前差異不大。
但對(duì)于 MAP@20 比較穩(wěn)定就有些迷惑慰毅,大概率是微笑的偏差造成百分比的放大隘截。
這個(gè)結(jié)果也和前面的 result 比較吻合,對(duì)于 NoFilter 提升的有限(當(dāng)然感覺主要還是 Wiki 的原因汹胃,Wiki 占了 40/55)婶芭。
當(dāng)提供 ground truth class name 時(shí)可以發(fā)現(xiàn)在 APR 上提升明顯,在 Wiki 上差異不大着饥,反而是 CGExpan 學(xué)出來的 class name 效果更好(可能更少的噪聲)
調(diào)節(jié) M 中的 k(top-k co-occurrence), 當(dāng) k>5 的時(shí)候提升不明顯了犀农,所以實(shí)驗(yàn)中設(shè)定 k=5.
Case study 中可以看見 negative class name 很高質(zhì)量,能夠分離特別相近的語義宰掉。
Discuss
- CGExpan 是一種從預(yù)訓(xùn)練 LMs 中提取信息的一種模式呵哨。
- 不需要 train,也使得 pipeline 的誤差傳遞會(huì)比較少轨奄。
- class name, filter 策略效果還是比較明顯的孟害。
- 但目前 entity set 只有 55 個(gè),樣本量整體偏小挪拟,另外 wiki 被 BERT 訓(xùn)過挨务,泛化性需要進(jìn)一步考證。
- 不過這套模式,擴(kuò)展性比較強(qiáng)谎柄,可以用于主題擴(kuò)展丁侄,商品擴(kuò)展等。作者也寫了一下 future work朝巫,比如說擴(kuò)展抽象概念鸿摇,構(gòu)建語義族。
- 如果有 pair-wise 的對(duì)比實(shí)驗(yàn)就更好了
水平有限, 歡迎討論.