利用預(yù)訓(xùn)練語言模型拓展實(shí)體集合

?? Reading Group 的 pdf 版本

今天介紹一個(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è)例子,原有集合{德州,杭州,青島},可以拓展為{林芝,六盤水}之類的。

簡單的話,我們用聚類 Contextual Embedding(類似于 Word Sense Induction 中的做法), 或者用 pair-wise loss 增強(qiáng) Similarity 的計(jì)算可以給到一個(gè)結(jié)果。

但這樣操作會(huì)有兩個(gè)缺點(diǎn):

  1. 單純的相似度計(jì)算,容易拓展不準(zhǔn)確的實(shí)體(非同級(jí),反義詞,High level 相似,但細(xì)粒度不同).
  2. 隨著集合的拓展,容易出現(xiàn)語義偏移等誤差累計(jì)問題.

如果能獲得實(shí)體集合的類別名稱,能減少歧義,促進(jìn)對(duì)實(shí)體集合的理解。

本文從這個(gè)角度出發(fā),通過兩個(gè) query 分別預(yù)測(cè)實(shí)體類別和實(shí)體, 試圖更好的利用預(yù)訓(xùn)練模型中的語言知識(shí)。

image

初看可能思路比較簡單,只是做一個(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).
image

Class Name Generation

這一部分是三個(gè)階段中最簡單的一個(gè),主體架構(gòu)就是 MLM。

這個(gè)過程類似于一個(gè)已知特定的下位詞,尋找通用的上位詞這個(gè)過程。

使用 Hearst(1992)年提出的,六個(gè) pattern 構(gòu)建 query。
每次隨機(jī)抽取三個(gè)實(shí)體組成一個(gè) query。
這些 query 簡短,主要起到的構(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 的候選集依次向前。

最大長度限制在 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(c_p) 和一些負(fù)樣本(C_N, 用于后面輔助選擇 entity).

一個(gè)簡單的想法,統(tǒng)計(jì)前面一個(gè)階段每個(gè) class name 出現(xiàn)的次數(shù),作為排序的指標(biāo),但是容易更偏向短 token。

M^{k}(e, c)=\frac{1}{k} \max_{X X_{e},|X|=k} \sum_{{x} \in X} \max_{{x}^{\prime} \in X_{c}} \cos \left({x}, {x}^{\prime}\right)

這邊定義一個(gè)實(shí)體-類別相似度 M,其通過兩個(gè) Max 獲取到最相關(guān)的共現(xiàn)關(guān)系。
X_e 表示語料集中所有 entity 的 representation,X_c 表示 Hearst pattern 用 MASK 遮掉實(shí)體詞的 representation.

內(nèi)層 Max 是尋找每一個(gè) entity representation 最吻合的 query pattern,外層本質(zhì)上是一個(gè)篩選 Top-k 的 contextual.

對(duì)于原始實(shí)體集合 E 中的每一個(gè)實(shí)體 e_i 都獲得一個(gè) class ranking list L_i.

最后的 class score 用各個(gè) ranking list 的排名倒數(shù)和,s(c)=\sum_{i=1}^{|E|} \frac{1}{r_{c}^{i}}.

通過這樣操作放大不同排名 class name 之間的差距。

取 S(c)最大的作為正例c_p, 選取各個(gè) ranking list 中排名都比c_p低的作為負(fù)樣本C_N.

Class-guided Entity Selection

先用 AutoParse 從 raw text 的 Corpus 中抽取 entity 候選集。

然后定義 class-entity 匹配程度,從兩個(gè)角度出發(fā)。

  • Local score,{score}_{i}^{l o c}=M^{k}\left(e_{i}, c_{p}\right)
  • Global score, {score}_{i}^{g l b}=\frac{1}{\left|E_{s}\right|} \sum_{e \in E_{s}} \cos \left({v}_{e_{i}}, {v}_{e}\right)

第一個(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ī)抽取出來的子集E_S\in E,以期降低 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_i 加到 E 中再做一次 Class Name Ranking.
講道理如果沒有發(fā)生語義偏移的話,那應(yīng)該c_p還是第一,c_p 應(yīng)該還是要比所有 negative sample 排名要高。

在這邊就用一個(gè)指示函數(shù)來做這件事,當(dāng)然用指示函數(shù)就相對(duì)于去截?cái)?,是一個(gè) filter 兜底的過程。

然后,重復(fù)抽取子集E_ST 次,構(gòu)建出 T 個(gè) Entity Ranking List.

這邊用兩種模式,匯集這 T 次的結(jié)果。

  1. 排名的倒數(shù). s^{t}\left(e_{i}\right)=\frac{1}{r_{i}^{t}}
  2. 相對(duì) score. s^{t}\left(e_{i}\right)=\frac{{score}_{i}^{t}-\min_{e_{j} \in R^{t}} {score}_{j}^{t}}{\max_{e_{j} \in R^{t}} {score}_{j}^{t}-\min_{e_{j} \in R^{t}} {score}_{j}^{t}}

實(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í)展示出來。

image

實(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 語料中語義的情況。

image

這張表可能要結(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)。

image

當(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.

image
image

Case study 中可以看見 negative class name 很高質(zhì)量,能夠分離特別相近的語義。

Discuss

  1. CGExpan 是一種從預(yù)訓(xùn)練 LMs 中提取信息的一種模式。
  2. 不需要 train,也使得 pipeline 的誤差傳遞會(huì)比較少。
  3. class name, filter 策略效果還是比較明顯的。
  4. 但目前 entity set 只有 55 個(gè),樣本量整體偏小,另外 wiki 被 BERT 訓(xùn)過,泛化性需要進(jìn)一步考證。
  5. 不過這套模式,擴(kuò)展性比較強(qiáng),可以用于主題擴(kuò)展,商品擴(kuò)展等。作者也寫了一下 future work,比如說擴(kuò)展抽象概念,構(gòu)建語義族。
  6. 如果有 pair-wise 的對(duì)比實(shí)驗(yàn)就更好了

水平有限, 歡迎討論.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容