今天介紹一個(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)就更好了
水平有限, 歡迎討論.