前言
一篇2023年4月26日才掛上arxiv的文章,是我看到的第一篇用LLM解決NER任務(wù)的文章,在我看來,LLM才是NER問題的最優(yōu)解,尤其是小樣本場景,具有豐富先驗知識的LLM,其涌現(xiàn)能力總能讓我嘆為觀止。
Abstract
LLM在NER上的表現(xiàn)低于基線,這是因為二者任務(wù)不同,前者是文本生成任務(wù),后者是序列標(biāo)記任務(wù)。GPT-NER通過將序列標(biāo)記任務(wù)轉(zhuǎn)換為LLM的生成任務(wù)來彌補(bǔ)二者的差距。例如輸入是Columbus is a city,輸出@@Columbus## is a city,@@##是需要提取的實體的標(biāo)記。為了解決LLM的幻覺問題,即LLM傾向自信地將NULL輸出當(dāng)做實體,本文為還提出一種自我驗證策略,提示LLM詢問自己提取的實體是否屬于標(biāo)記的實體標(biāo)簽。在五個廣泛使用的數(shù)據(jù)集上GPT-NER都實現(xiàn)了與完全監(jiān)督基線相當(dāng)?shù)男阅埽⑶以谛颖緢鼍癎PT-NER表現(xiàn)優(yōu)于監(jiān)督模型。
1. Introduction
LLM只需要簡單的示例,就可以為新的測試輸入生成結(jié)果。在情境學(xué)習(xí)的框架下,LLM已經(jīng)在各種NLP任務(wù)如翻譯、問答、關(guān)系抽取取得了可喜的成果。但是由于LLM和NER任務(wù)不同,LLM在NER上表現(xiàn)遠(yuǎn)遠(yuǎn)低于baseline。GPT-NER可以將NER任務(wù)轉(zhuǎn)換為文本生成任務(wù),這種策略可以顯著降低生成編碼輸入序列的標(biāo)簽信息文本的難度,實驗表明該策略顯著提升了性能。
為了緩解LLM傾向自信地將NULL輸出當(dāng)做實體的問題,提出一種自我驗證策略,放置在實體提取階段之后,提示LLM詢問自己提取到的實體是否屬于標(biāo)記的實體標(biāo)簽。這種方式可以有效解決幻覺問題,從而顯著提高性能。
實驗部分達(dá)到了與完全監(jiān)督相等的性能,此外由于token長度限制(4096)性能無法穩(wěn)定,如果使用超過20K長度token的GPT-4,肯定還能有所提升。
GPT-NER在低資源、小樣本NER表現(xiàn)優(yōu)于監(jiān)督模型。
2. Related Work
2.1 Named Entity Recognition
命名實體識別 (NER) 是一項識別文本中的關(guān)鍵信息并將其分類到一組預(yù)定義類別中的任務(wù)。
2.2 Large Language Models and In-context Learning
將LLMs用于下游任務(wù)的策略可以分為兩類,微調(diào)和情境學(xué)習(xí)。前者需要在下游的監(jiān)督數(shù)據(jù)上繼續(xù)訓(xùn)練更新參數(shù),后者提示LLM在小樣本演示下生成文本,更好的prompts和演示可以提升情境學(xué)習(xí)的性能。
3. Background
3.1 NER as Sequence Labeling
解決NER常見的方法是將其作為序列標(biāo)注任務(wù),可以分為兩個步驟:表示提取和分類。
表示提取: 旨在獲得輸入序列token的高維表示,將輸入句子送入編碼器模型如BERT,然后將最后一層embedding作為token的高維表示
h
i
∈
R
m
×
1
h_i\in \mathbb{R}^{m \times 1}
hi?∈Rm×1。
分類: 每個嵌入的高維向量被送到MLP,使用softmax生成分布。
4. GPT-NER
GPT-NER使用LLM解決NER任務(wù),它遵循情境學(xué)習(xí)的一般范式,可以分解為三步驟:
- 構(gòu)建Prompt,對每個輸入句子都構(gòu)建一個prompt;
- 將構(gòu)建的prompt喂入LLM中得到生成的文本序列;
- 將文本序列轉(zhuǎn)換為實體標(biāo)簽。
下面介紹如何讓LLM適應(yīng)NER任務(wù)的策略。
4.1 Prompt Construction
上圖是GPT-NER的示例,由三部分組成。
4.1.1 Task Description
任務(wù)描述可以進(jìn)一步分解為三部分:
- 第一句話是任務(wù)的描述,告訴LLM使用語言知識產(chǎn)生輸出;
- 表示要提取實體的類別,對于每個輸入的句子,構(gòu)建N次提示,每一次對應(yīng)一個實體類型,可以理解為N個二分類任務(wù),這是受到token長度的限制;
- 描述小樣本演示的位置。
4.1.2 Few-shot Demonstration
每個標(biāo)記句子的格式需要滿足:
- 包含每個單詞標(biāo)簽的信息,可以很容易轉(zhuǎn)換為實體類型序列;
- 可以由LLM順利生成。
比如句子"Columbus is a city",生成"LOC O O O",條件1很容易滿足,但是對于生成序列,LLM需要學(xué)會文本對齊,這增加了生成任務(wù)的難度,此外作者發(fā)現(xiàn)GPT-3很難生成和輸入等長的句子。為了解決這個問題,作者設(shè)計了特殊符號包圍實體,如下所示:
這種方式顯著降低了文本生成的難度。
4.1.3 Input Sentence
這部分將當(dāng)前輸入語句輸入到LLM中,并期望LLM根據(jù)4.1.2節(jié)中定義的格式生成輸出序列。
4.2 Few-shot Demonstrations Retrieval
4.2.1 Random Retrieval
最直接的策略是從訓(xùn)練集中隨機(jī)選取K個樣本,但是這樣無法保證檢索到的示例在語義上接近輸入。
4.2.2 kNN-based Retrieval
為解決隨機(jī)檢索相關(guān)性問題,可以從訓(xùn)練集中檢索輸入序列的K近鄰,首先計算所有訓(xùn)練樣本的表示,在此基礎(chǔ)上獲得輸入序列的k個最近鄰居。
**基于句子級表示的kNN:**使用文本相似度模型,獲得訓(xùn)練示例和輸入序列的句子級表示計算余弦相似度找到kNN。這樣的缺點(diǎn)是顯而易見的,NER是token級任務(wù),更關(guān)注局部,可能找到的示例不包含NER。
實體級嵌入:首先使用微調(diào)的NER標(biāo)記模型提取所有token的實體級表示,對于長度為 N 的給定輸入序列,我們首先遍歷序列中的所有token以找到每個token的 kNN,獲得 K × N 檢索到的標(biāo)記。接下來,我們從 K×N 檢索到的token中選擇前 k 個token,并使用它們的關(guān)聯(lián)句子作為演示。
4.3 Self-verification
LLM存在幻覺或者過度預(yù)測問題,如下所示:
其中Hendrix被識別為位置信息顯然錯誤,為此作者提出了自我驗證策略。給定 LLM 提取的實體,我們要求 LLM 進(jìn)一步驗證提取的實體是否正確,回答是或否。
同樣,這需要少量的演示來提高自我驗證器的準(zhǔn)確性,如上圖黃色框所示。
示例選擇:我們需要選擇演示來進(jìn)行小樣本的自我驗證。由于自驗證的核心是詢問提取的實體是否是特定實體類型,因此我們需要選擇有提取實體的訓(xùn)練示例。
因此選擇實體級嵌入進(jìn)行kNN演示搜索,而不是句子級別表示:
- 首先通過微調(diào)的NER模型為所有訓(xùn)練token提取實體級表示;
- 使用相同的模型提取查詢詞的表示;
- 最后,我們使用查詢詞的表示從數(shù)據(jù)存儲中選擇 k 個示例作為小樣本演示。
5. Experiments
使用GPT-3進(jìn)行實驗。
5.1 Results on the Full Training Set
5.1.1 Results on Flat NER
對于平面 NER,實體不能相互重疊。在CoNLL2003和OntoNotes5.0上進(jìn)行實驗。前者包含四種類型名命名實體:位置、組織、人員和其他。后者包含18種類型的命名實體,11種類型(人、組織)和7種值(數(shù)據(jù)、百分比)。
Main Results. 上表分別顯示了flat NER的部分和完整測試集的結(jié)果,觀察如下:
- kNN檢索對NER任務(wù)至關(guān)重要;
- token級嵌入對性能有明顯改進(jìn);
- 添加自我驗證進(jìn)一步提升性能;
- 基于LLM的系統(tǒng)達(dá)到了與基線相同的性能。
5.1.2 Results on Nested NER
嵌套 NER,每個句子中的實體可能相互重疊。作者在三個廣泛使用的嵌套NER數(shù)據(jù)集ACE2004 & ACE2005和GENIA上進(jìn)行實驗。前者包含七種類型實體,采用8:1:1分為訓(xùn)練集、驗證集和測試集,后者是分子生物學(xué)領(lǐng)域的嵌套NER數(shù)據(jù)集,包含五種實體類型。
Main Results. 結(jié)果如上表所示,觀察到:
- kNN檢索對NER任務(wù)至關(guān)重要;
- token級嵌入對性能有明顯改進(jìn);
- 添加自我驗證進(jìn)一步提升性能.
和SOTA之間的差距大于flat NER,因為:
- 嵌套NER包含更多相似的實體;
- 三個嵌套 NER 數(shù)據(jù)集的注釋指南更加復(fù)雜且不那么直接。
5.2 Results on Low-resource Scenario
低資源場景NER實驗在CoNLL2003上進(jìn)行。為了模仿低資源場景,隨機(jī)挑選訓(xùn)練集子集,8個訓(xùn)練句子,100個訓(xùn)練句子,10K訓(xùn)練句子。8個訓(xùn)練句子的設(shè)置確保每個實體類型包含一個正例和一個負(fù)例。
5.2.1 Results
結(jié)果如上圖所示,有如下觀察:
- 當(dāng)訓(xùn)練集規(guī)模很小時,監(jiān)督模型的性能遠(yuǎn)遠(yuǎn)低于GPT-3;
- 隨著訓(xùn)練數(shù)據(jù)的增加,kNN檢索比隨機(jī)檢索性能提升要快;
- 當(dāng)數(shù)據(jù)量達(dá)到10%,隨著訓(xùn)練數(shù)據(jù)量增加,監(jiān)督模型性能顯著提升,而GPT-3結(jié)果邊際提升。
6. Ablation Study
6.1 Varying the Format of LLM Output
將下面兩種輸出格式進(jìn)行對比:
BMES: 直接輸出每個標(biāo)記的開頭、中間、結(jié)果和O;
Entity+Position: 要求 LLM 輸出句子中的實體及其位置。
為了進(jìn)行同類比較,做和對三種輸出格式使用相同的設(shè)置,并在 100 個樣本的 CoNLL 2003 數(shù)據(jù)集上進(jìn)行32個小樣本的實驗。結(jié)果分別為92.68(##@@策略),29.75,38.73。分析可能是BMES需要學(xué)習(xí)token和標(biāo)簽之間的對齊,并且很難輸出和輸入相同長度的字符串。對于實體+位置策略,LLM會混淆位置索引,導(dǎo)致實體位置不正確。
6.2 The Number of Few-shot Demonstrations
觀察上圖可以發(fā)現(xiàn),隨著k的增加,三個結(jié)果都不斷升高,意味著如果允許更多的演示,性能仍會提高。
一個有趣的現(xiàn)象時當(dāng)演示數(shù)量很少時,KNN策略不如隨機(jī)檢索策略,可能是因為KNN傾向選擇與輸入句子非常相似的演示,如果輸入句子不包含任何實體,則檢索到的演示大多不包含任何實體。如下所示:
7. Conclusion
本文提出GPT-NER以使LLM適應(yīng)NER任務(wù)。作者設(shè)計一種prompt來提示LLM生成實體標(biāo)記,此外在演示部分設(shè)計了KNN和token嵌入來幫助LLM更好生成輸出,并且作者提出一種自我驗證策略來緩解LLM的幻覺問題。最后模型性能和基線相當(dāng),并且在低資源場景有顯著的優(yōu)勢。文章來源:http://www.zghlxwxcb.cn/news/detail-433128.html
閱讀總結(jié)
一篇2023年4月26日才掛上arxiv的文章,是我看到的第一篇用LLM解決NER任務(wù)的文章,文中的方法很有創(chuàng)意,通過設(shè)計prompt激發(fā)大模型生成預(yù)期序列的能力著實讓我感嘆LLM的無限潛力,并且這只是在GPT-3就能達(dá)到baseline的效果,如果換成現(xiàn)在的GPT-4,那結(jié)果不敢想,在我看來,LLM才是NER任務(wù)的最優(yōu)解,如此復(fù)雜的序列標(biāo)注問題,果然還是需要魔法打敗魔法,之前所看到的對比學(xué)習(xí)方法、元學(xué)習(xí)方法等,在LLM面前可能真的不堪一擊,當(dāng)然我還會繼續(xù)調(diào)研的。文章來源地址http://www.zghlxwxcb.cn/news/detail-433128.html
到了這里,關(guān)于【論文精讀】GPT-NER: Named Entity Recognition via Large Language Models的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!