GlobalPointer:用统一的方式处理嵌套和非嵌套NER
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
本文將介紹一個(gè)稱為 GlobalPointer 的設(shè)計(jì),它利用全局歸一化的思路來進(jìn)行命名實(shí)體識(shí)別(NER),可以無差別地識(shí)別嵌套實(shí)體和非嵌套實(shí)體,在非嵌套(Flat NER)的情形下它能取得媲美 CRF 的效果,而在嵌套(Nested NER)情形它也有不錯(cuò)的效果。
還有,在理論上,GlobalPointer 的設(shè)計(jì)思想就比 CRF 更合理;而在實(shí)踐上,它訓(xùn)練的時(shí)候不需要像 CRF 那樣遞歸計(jì)算分母,預(yù)測(cè)的時(shí)候也不需要?jiǎng)討B(tài)規(guī)劃,是完全并行的,理想情況下時(shí)間復(fù)雜度是 !
簡單來說,就是更漂亮、更快速、更強(qiáng)大!真有那么好的設(shè)計(jì)嗎?不妨繼續(xù)看看。
▲ GlobalPoniter多頭識(shí)別嵌套實(shí)體示意圖
GlobalPointer
常規(guī)的 Pointer Network 的設(shè)計(jì)在做實(shí)體識(shí)別或者閱讀理解時(shí),一般是用兩個(gè)模塊分別識(shí)別實(shí)體的首和尾,這會(huì)帶來訓(xùn)練和預(yù)測(cè)時(shí)的不一致。而 GlobalPointer 就是針對(duì)這個(gè)不一致而設(shè)計(jì)的,它將首尾視為一個(gè)整體去進(jìn)行判別,所以它更有“全局觀”(更 Global)。
1.1 基本思路
具體來說,假設(shè)要識(shí)別文本序列長度為 n,簡單起見先假定只有一種實(shí)體要識(shí)別,并且假定每個(gè)待識(shí)別實(shí)體是該序列的一個(gè)連續(xù)片段,長度不限,并且可以相互嵌套(兩個(gè)實(shí)體之間有交集),那么該序列有多少個(gè)“候選實(shí)體”呢?不難得出,答案是 個(gè),即長度為 n 的序列有 個(gè)不同的連續(xù)子序列,這些子序列包含了所有可能的實(shí)體,而我們要做的就是從這 個(gè)“候選實(shí)體”里邊挑出真正的實(shí)體,其實(shí)就是一個(gè)“ 選 k”的多標(biāo)簽分類問題。
如果有 m 種實(shí)體類型需要識(shí)別,那么就做成 m 個(gè)“ 選 k”的多標(biāo)簽分類問題。這就是 GlobalPointer 的基本思想,以實(shí)體為基本單位進(jìn)行判別,如本文開頭的圖片所示。
可能有讀者會(huì)問:這種設(shè)計(jì)的復(fù)雜度明明就是 呀,不會(huì)特別慢嗎?如果現(xiàn)在還是 RNN/CNN 的時(shí)代,那么它可能就顯得很慢了,但如今是 Transformer 遍布 NLP 的時(shí)代,Transformer 的每一層都是 的復(fù)雜度,多 GlobalPointer 一層不多,少 GlobalPointer 一層也不少,關(guān)鍵是 的復(fù)雜度僅僅是空間復(fù)雜度,如果并行性能好的話,時(shí)間復(fù)雜度甚至可以降到 ,所以不會(huì)有明顯感知。
1.2 數(shù)學(xué)形式
設(shè)長度為 n 的輸入 t 經(jīng)過編碼后得到向量序列 ,通過變換 我們可以得到序列向量序列 ,它們是識(shí)別第 種類型實(shí)體所用的向量序列。此時(shí)我們可以定義:
作為從 i 到 j 的連續(xù)片段是一個(gè)實(shí)體的打分。也就是說,用 與 的內(nèi)積,作為片段 是類型為 的實(shí)體的打分(logits),這里的 指的是序列 t 的第 i 個(gè)到第 j 個(gè)元素組成的連續(xù)子串。
在這樣的設(shè)計(jì)下,GlobalPointer 事實(shí)上就是 Multi-Head Attention 的一個(gè)簡化版而已,有多少種實(shí)體就對(duì)應(yīng)多少個(gè) head,相比 Multi-Head Attention 去掉了 相關(guān)的運(yùn)算。
1.3 相對(duì)位置
理論上來說,式(1)這樣的設(shè)計(jì)就足夠了,但實(shí)際上訓(xùn)練語料比較有限的情況下,它的表現(xiàn)往往欠佳,因?yàn)樗鼪]有顯式地包含相對(duì)位置信息。在后面的實(shí)驗(yàn)中我們將會(huì)看到,加不加相對(duì)位置信息,效果可以相差 30 個(gè)百分點(diǎn)以上!
比如,我們要識(shí)別出地名,輸入是天氣預(yù)報(bào)的內(nèi)容“北京:21 度;上海:22 度;杭州:23 度;廣州:24 度;...”,這時(shí)候要識(shí)別出來的實(shí)體有很多,如果沒有相對(duì)位置信息輸入的話,GlobalPointer 對(duì)實(shí)體的長度和跨度都不是特別敏感,因此很容易把任意兩個(gè)實(shí)體的首尾組合都當(dāng)成目標(biāo)預(yù)測(cè)出來(即預(yù)測(cè)出“北京:21 度;上海”這樣的實(shí)體)。相反,有了相對(duì)位置信息之后,GlobalPointer就會(huì)對(duì)實(shí)體的長度和跨度比較敏感,因此能更好地分辨出真正的實(shí)體出來。
用哪種相對(duì)位置編碼呢?理論上來說,Transformer 里邊所有的相對(duì)位置編碼都可以考慮用(參考讓研究人員絞盡腦汁的 Transformer 位置編碼),但真的要去落實(shí)就會(huì)發(fā)現(xiàn)一個(gè)問題,大多數(shù)相對(duì)位置編碼都對(duì)相對(duì)位置進(jìn)行了一個(gè)截?cái)?#xff0c;雖然這個(gè)截?cái)喾秶鷮?duì)我們要識(shí)別的實(shí)體來說基本都?jí)蛴昧?#xff0c;但未免有點(diǎn)不優(yōu)雅,不截?cái)嘤謺?huì)面臨可學(xué)參數(shù)太多的問題。想來想去,還是覺得筆者之前構(gòu)思的旋轉(zhuǎn)式位置編碼(RoPE)比較適合。
RoPE 的介紹可見 Transformer 升級(jí)之路:博采眾長的旋轉(zhuǎn)式位置編碼,它其實(shí)就是一個(gè)變換矩陣 ,滿足關(guān)系 ,這樣一來我們分別應(yīng)用到 中,就有:
從而就顯式地往打分 注入了相對(duì)位置信息。
優(yōu)化細(xì)節(jié)
在這部分內(nèi)容中,我們會(huì)討論關(guān)于 GlobalPointer 在訓(xùn)練過程中的一些細(xì)節(jié)問題,包括損失函數(shù)的選擇以及評(píng)價(jià)指標(biāo)的計(jì)算和優(yōu)化等,從中我們可以看到,GlobalPointer 以實(shí)體為單位的設(shè)計(jì)有著諸多優(yōu)雅和便利之處。
2.1 損失函數(shù)
到目前為止,我們已經(jīng)設(shè)計(jì)好了打分 ,識(shí)別特定的類 的實(shí)體,則變成了共有 類的多標(biāo)簽分類問題。接下來的關(guān)鍵是損失函數(shù)的設(shè)計(jì)。最樸素的思路是變成 個(gè)二分類,然而實(shí)際使用時(shí) n 往往并不小,那么 更大,而每個(gè)句子的實(shí)體數(shù)不會(huì)很多(每一類的實(shí)體數(shù)目往往只是個(gè)位數(shù)),所以如果是 個(gè)二分類的話,會(huì)帶來極其嚴(yán)重的類別不均衡問題。
這時(shí)候我們之前研究的將“softmax+交叉熵”推廣到多標(biāo)簽分類問題就可以派上用場(chǎng)了。簡單來說,這是一個(gè)用于多標(biāo)簽分類的損失函數(shù),它是單目標(biāo)多分類交叉熵的推廣,特別適合總類別數(shù)很大、目標(biāo)類別數(shù)較小的多標(biāo)簽分類問題。其形式也不復(fù)雜,在 GlobalPointer 的場(chǎng)景,它為:
其中 是該樣本的所有類型為 的實(shí)體的首尾集合, 是該樣本的所有非實(shí)體或者類型非 的實(shí)體的首尾集合,注意我們只需要考慮 的組合,即:
而在解碼階段,所有滿足 的片段 都被視為類型為 的實(shí)體輸出。可見,解碼過程是及其簡單的,并且在充分并行下解碼效率就是 !
2.2 評(píng)價(jià)指標(biāo)
對(duì)于 NER 來說,常見的評(píng)價(jià)指標(biāo)就是 F1,注意是實(shí)體級(jí)別的 F1,并非標(biāo)注標(biāo)簽級(jí)別的 F1。在傳統(tǒng)的 Pointer Network 或者 CRF 的設(shè)計(jì)下,我們并不容易在訓(xùn)練過程中直接計(jì)算實(shí)體級(jí)別的 F1,但是在 GlobalPointer 的設(shè)計(jì)下,不管是計(jì)算實(shí)體級(jí)別的 F1 還是 accuracy 都是很容易的,比如 F1 的計(jì)算如下:
def?global_pointer_f1_score(y_true,?y_pred):"""給GlobalPointer設(shè)計(jì)的F1"""y_pred?=?K.cast(K.greater(y_pred,?0),?K.floatx())return?2?*?K.sum(y_true?*?y_pred)?/?K.sum(y_true?+?y_pred)能有這么簡單,主要就是因?yàn)?GlobalPointer 的“Global”,它的 y_true 和? y_pred 本身就已經(jīng)是實(shí)體級(jí)別了,通過 y_pred > 0 我們就可以知道哪些實(shí)體被抽取出來的,然后做個(gè)匹配就可以算出各種(實(shí)體級(jí)別的)指標(biāo),達(dá)到了訓(xùn)練、評(píng)估、預(yù)測(cè)的一致性。
2.3 優(yōu)化F1值
GlobalPointer 的“Global”還有一個(gè)好處,就是如果我們用它來做閱讀理解的話,它可以直接優(yōu)化閱讀理解的 F1 指標(biāo)!閱讀理解的 F1 跟 NER 的 F1 有所不同,它是答案的一個(gè)模糊匹配程度,直接優(yōu)化 F1 可能更有利于提高閱讀理解的最終得分。將 GlobalPointer 用于閱讀理解,相當(dāng)于就只有一種實(shí)體類型的 NER,此時(shí)我們定義:
而有了 p(i,j) 之后,用強(qiáng)化學(xué)習(xí)的思想(參考殊途同歸的策略梯度與零階優(yōu)化),優(yōu)化 F1 就是以下述函數(shù)為損失:
這里的 就是提前算好的片段 與標(biāo)準(zhǔn)答案之間的 F1 相似度, 是一個(gè)超參數(shù)。當(dāng)然,算出所有的 成本可能會(huì)有點(diǎn)大,但它是一次性的,而且可以在計(jì)算時(shí)做些策略(比如首尾差別過大就直接置零),總的來說,可以控制在能接受的范圍。如果為了提高閱讀理解最終的 F1,這是一種比較直接的可以嘗試的方案。(筆者在今年的百度 lic2021 閱讀理解賽道上嘗試過,確實(shí)能有一定的效果。)
實(shí)驗(yàn)結(jié)果
現(xiàn)在一切準(zhǔn)備就緒,馬上就能夠開始實(shí)驗(yàn)了,實(shí)驗(yàn)代碼整理如下:
開源地址:https://github.com/bojone/GlobalPointer
目前 GlobalPointer 已經(jīng)內(nèi)置在 bert4keras>=0.10.6 中,bert4keras 的用戶可以直接升級(jí) bert4keras 使用。實(shí)驗(yàn)的三個(gè)任務(wù)均為中文 NER 任務(wù),前兩個(gè)為非嵌套 NER,第三個(gè)為嵌套 NER,它們的訓(xùn)練集文本長度統(tǒng)計(jì)信息為:
3.1 人民日?qǐng)?bào)
首先,我們驗(yàn)證一下在非嵌套場(chǎng)景 GlobalPointer 能否取代 CRF,語料是經(jīng)典的人民日?qǐng)?bào)語料,baseline 是 BERT+CRF 的組合,而對(duì)比的是? BERT+GlobalPointer 的組合,實(shí)驗(yàn)結(jié)果如下:
首先,表格中帶來最大視覺沖擊力的無疑是 GlobalPointer 有無 RoPE 的差距,達(dá)到了 30 個(gè)點(diǎn)以上!這說明了給 GlobalPointer 顯式加入相對(duì)位置信息的重要性,后面的實(shí)驗(yàn)中我們將不再驗(yàn)證去掉 RoPE 的版本,默認(rèn)都加上 RoPE。
從表格中還可以看出,在經(jīng)典的非嵌套 NER 任務(wù)中,效果上 GlobalPointer 可以跟 CRF 相媲美,速度上 GlobalPointer 還更勝一籌,稱得上是又快又好了。
3.2 CLUENER
當(dāng)然,可能因?yàn)槿嗣袢請(qǐng)?bào)這個(gè)經(jīng)典任務(wù)的起點(diǎn)已經(jīng)很高了,所以拉不開差距。為此,我們?cè)跍y(cè)一下比較新的 CLUENER [1] 數(shù)據(jù)集,這個(gè)數(shù)據(jù)集也是非嵌套的,當(dāng)前 SOTA 的 F1 是 81% 左右。BERT+CRF 與 BERT+GlobalPointer 的對(duì)比如下:
這個(gè)實(shí)驗(yàn)結(jié)果說明了,當(dāng) NER 難度增加之后,哪怕只是非嵌套的場(chǎng)景,GlobalPointer 的效果能優(yōu)于 CRF,這說明對(duì)于 NER 場(chǎng)景,GlobalPointer 其實(shí)比 CRF 更加好用。后面我們將對(duì)此做個(gè)簡單的理論分析,進(jìn)一步說明 GlobalPointer 相比 CRF 在理論上就更加合理。
至于速度方面,由于這個(gè)任務(wù)的文本長度普遍較短,因此GlobalPointer的速度增幅也沒有那么明顯。
3.3 CMeEE
最后,我們來測(cè)一個(gè)嵌套的任務(wù)(CMeEE),它是去年 biendata 上的“中文醫(yī)學(xué)文本命名實(shí)體識(shí)別”[2] 比賽,也是今年的“中文醫(yī)療信息處理挑戰(zhàn)榜 CBLUE”[3] 的任務(wù) 1,簡單來說就是醫(yī)學(xué)方面的 NER,帶有一定的嵌套實(shí)體。同樣比較 CRF 和 GlobalPointer 的效果:
可以看到效果上 GlobalPointer 明顯地優(yōu)于 CRF;速度方面,綜合三個(gè)任務(wù)的結(jié)果,總的來說文本越長的任務(wù),GlobalPointer 的訓(xùn)練加速就越明顯,而預(yù)測(cè)速度通常也略有提升,但幅度沒有訓(xùn)練階段大。隨后筆者以 RoBERTa large 為 encoder 繼續(xù)搗鼓了一下,發(fā)現(xiàn)線上測(cè)試集就可以(不是太難地)達(dá)到 67% 以上,這說明 GlobalPointer 是一個(gè)“稱職”的設(shè)計(jì)了。
當(dāng)然,可能有讀者會(huì)詬病:你拿非嵌套的CRF去做嵌套的 NER,這樣跟 GlobalPointer 比肯定不公平呀。確實(shí)會(huì)有點(diǎn),但是問題不大,一方面 CMeEE 目前的 F1 還比較低,嵌套的實(shí)體本來就不多,哪怕去掉嵌套部分當(dāng)成非嵌套的來做,影響也不會(huì)太大;另一方面就是在嵌套 NER 方面,筆者還沒發(fā)現(xiàn)比較簡單明快的設(shè)計(jì)可以作為 baseline 跑跑的,所以就還是先跑個(gè) CRF 看看了。歡迎讀者報(bào)告其他設(shè)計(jì)的對(duì)比結(jié)果。
思考拓展
在本節(jié)中,我們將進(jìn)一步對(duì) CRF 和 GlobalPointer 做一個(gè)理論上的對(duì)比,并且介紹一些與 GlobalPointer 相關(guān)的工作,以方便讀者更好地理解和定位 GlobalPointer。
4.1 相比CRF
CRF(條件隨機(jī)場(chǎng),Conditional Random Field)是序列標(biāo)注的經(jīng)典設(shè)計(jì),由于大多數(shù) NER 也能轉(zhuǎn)化為序列標(biāo)注問題,所以 CRF 也算是 NER 的經(jīng)典方法,筆者也曾撰寫過簡明條件隨機(jī)場(chǎng) CRF 介紹(附帶純 Keras 實(shí)現(xiàn))和你的 CRF 層的學(xué)習(xí)率可能不夠大等文章來介紹 CRF。在之前的介紹中,我們介紹過,如果序列標(biāo)注的標(biāo)簽數(shù)為 k,那么逐幀 softmax 和 CRF 的區(qū)別在于:
前者將序列標(biāo)注看成是 n 個(gè) k 分類問題,后者將序列標(biāo)注看成是 1 個(gè) 分類問題。
這句話事實(shí)上也說明了逐幀 softmax 和 CRF 用于 NER 時(shí)的理論上的缺點(diǎn)。怎么理解呢?逐幀 softmax 將序列標(biāo)注看成是 n 個(gè) k 分類問題,那是過于寬松了,因?yàn)槟硞€(gè)位置上的標(biāo)注標(biāo)簽預(yù)測(cè)對(duì)了,不代表實(shí)體就能正確抽取出來了,起碼有一個(gè)片段的標(biāo)簽都對(duì)了才算對(duì);
相反,CRF 將序列標(biāo)注看成是 1 個(gè) 分類問題,則又過于嚴(yán)格了,因?yàn)檫@意味著它要求所有實(shí)體都預(yù)測(cè)正確才算對(duì),只對(duì)部分實(shí)體也不給分。雖然實(shí)際使用中我們用 CRF 也能出現(xiàn)部分正確的預(yù)測(cè)結(jié)果,但那只能說明模型本身的泛化能力好,CRF 本身的設(shè)計(jì)確實(shí)包含了“全對(duì)才給分”的意思。
所以,CRF 在理論上確實(shí)都存在不大合理的地方,而相比之下,GlobalPointer 則更加貼近使用和評(píng)測(cè)場(chǎng)景:它本身就是以實(shí)體為單位的,并且它設(shè)計(jì)為一個(gè)“多標(biāo)簽分類”問題,這樣它的損失函數(shù)和評(píng)價(jià)指標(biāo)都是實(shí)體顆粒度的,哪怕只對(duì)一部分也得到了合理的打分。因此,哪怕在非嵌套 NER 場(chǎng)景,GlobalPointer 能取得比 CRF 好也是“情理之中”的。
4.2 相關(guān)工作
如果讀者比較關(guān)注實(shí)體識(shí)別、信息抽取的進(jìn)展,那么應(yīng)該可以發(fā)現(xiàn), GlobalPointer 與前段時(shí)間的關(guān)系抽取新設(shè)計(jì) TPLinker [4] 很相似。但事實(shí)上,這種全局歸一化的思想,還可以追溯到更遠(yuǎn)。
對(duì)于筆者來說,第一次了解到這種思想,是在百度 2017 年發(fā)表的一篇《Globally Normalized Reader》[5] ,里邊提出了一種用于閱讀理解的全局歸一化設(shè)計(jì)(GNR),里邊不單單將(首, 尾)視為一個(gè)整體了,而是(句子, 首, 尾)視為一個(gè)整體(它是按照先選句子,然后在句子中選首尾的流程,所以多了一個(gè)句子維度),這樣一來組合數(shù)就非常多了,因此它還用了《Sequence-to-Sequence Learning as Beam-Search Optimization》[6] 里邊的思路來降低計(jì)算量。
有了 GNR 作鋪墊,其實(shí) GlobalPointer 就很容易可以想到的,事實(shí)上早在前年筆者在做 LIC2019 的關(guān)系抽取賽道的時(shí)候,類似的想法就已經(jīng)有了,但是當(dāng)時(shí)還有幾個(gè)問題沒有解決。
第一,當(dāng)時(shí) Transformer 還沒有流行起來,總覺得 的復(fù)雜度很可怕;第二,當(dāng)時(shí)將“softmax+交叉熵”推廣到多標(biāo)簽分類問題也還沒想出來,所以多標(biāo)簽分類的不均衡問題沒有很好的解決方案;第三,當(dāng)時(shí)筆者對(duì) NLP 各方面的理解也還淺,bert4keras 也沒開發(fā),一旦實(shí)驗(yàn)起來束手束腳的,出現(xiàn)問題也不知道往哪里調(diào)(比如開始沒加上 RoPE,降低了 30 個(gè)點(diǎn)以上,如果是兩年前,我肯定沒啥調(diào)優(yōu)方案了)。
所以,GlobalPointer 算是這兩年來筆者經(jīng)過各方面積累后的一個(gè)有點(diǎn)“巧合”但又有點(diǎn)“水到渠成”的工作。至于 TPLinker,它還真跟 GlobalPointer 起源沒什么直接聯(lián)系。當(dāng)然,在形式上 GlobalPointer 確實(shí)跟 TPLinker 很相似,事實(shí)上 TPLinker 還可以追溯到更早的《Joint entity recognition and relation extraction as a multi-head selection problem》[7] ,只不過這系列文章都主要是把這種 Global 的思想用于關(guān)系抽取了,沒有專門針對(duì) NER 優(yōu)化。
4.3 加性乘性
在具體實(shí)現(xiàn)上,TPLinker 與 GlobalPointer 的一個(gè)主要區(qū)別是在 Multi-Head 上 TPLinker 用的是加性 Attention:
目前尚不清楚該選擇與式(1)的效果差異有多大,但是相比式(1)的乘性 Attention,雖然它們的理論復(fù)雜度相似,但實(shí)際實(shí)現(xiàn)上這種加性 Attention 的計(jì)算成本會(huì)大很多,尤其是空間成本(顯存)會(huì)大很多~
所以筆者認(rèn)為,就算加性效果確實(shí)比乘性好一些,也應(yīng)該選擇在乘性的基礎(chǔ)上繼續(xù)優(yōu)化才行,因?yàn)榧有缘男蚀_實(shí)不行啊。此外,TPLinker 等文章也沒有像本文一樣報(bào)告過相對(duì)位置信息的重要性,難道在加性 Attention 中相對(duì)位置不那么重要了?這些暫時(shí)還不得而知。
本文小結(jié)
本文介紹了一種 NER 的新設(shè)計(jì) GlobalPointer,它基于全局指針的思想,融合了筆者之前的一些研究結(jié)果,實(shí)現(xiàn)了用統(tǒng)一的方式處理嵌套和非嵌套 NER 的“理想設(shè)計(jì)”。實(shí)驗(yàn)結(jié)果顯示,在非嵌套的情形下它能取得媲美 CRF 的效果,而在嵌套情形它也有不錯(cuò)的效果。
參考文獻(xiàn)
[1] https://github.com/CLUEbenchmark/CLUENER2020
[2] https://www.biendata.xyz/competition/chip_2020_1/
[3] https://tianchi.aliyun.com/dataset/dataDetail?dataId=95414
[4] https://arxiv.org/abs/2010.13415
[5] https://arxiv.org/abs/1709.02828
[6] https://arxiv.org/abs/1606.02960
[7] https://www.sciencedirect.com/science/article/abs/pii/S095741741830455X
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的GlobalPointer:用统一的方式处理嵌套和非嵌套NER的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 福利宝的钱怎么取出来
- 下一篇: 医保卡丢了怎么补办