日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NLP】中文BERT上分新技巧,多粒度信息来帮忙

發(fā)布時(shí)間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP】中文BERT上分新技巧,多粒度信息来帮忙 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文 | ????????????????

自然語言處理實(shí)在是太難啦!中文尤其難!

相比于英文,中文是以詞作為語義的基本單位的,因此傳統(tǒng)的中文 NLP 都需要先進(jìn)行分詞。分詞這步就勸退了很多人,比如“研究生活很充實(shí)”,怎么讓模型分出“研究|生活”,而不是“研究生”呢?

隨著預(yù)訓(xùn)練模型的到來,中文模型通常直接用字作為輸入。甚至 19 年的一篇 ACL[1] 給出結(jié)論:基于“字”的模型要好于基于“詞”的模型。但是,中文是以詞作為語義的基本單位的呀,忽略這種粗粒度的信息,真的合理嗎?

今天這篇發(fā)表在 NAACL 2021 的文章就讓 BERT 在預(yù)訓(xùn)練中學(xué)到了字和詞的信息,在自然語言理解的多個(gè)任務(wù)上,相對(duì)字級(jí)別的模型取得了性能提升,輕松摘得 SOTA。以后做中文任務(wù)想要刷分,可以直接拿來換掉自己的 BERT。

這篇文章為了讓 BERT 學(xué)到字和詞的信息,解決了三個(gè)問題:

  • 怎么將字和詞的信息融合,送入 BERT?

  • 字和詞有重疊,位置編碼怎么設(shè)計(jì)?

  • 在 MLM 任務(wù)上,怎么才能同時(shí)將字和詞的信息都 mask 掉?

  • 下面就來看看這篇文章的解決辦法吧~

    論文題目:
    Lattice-BERT: Leveraging Multi-Granularity Representations in Chinese Pre-trained Language Models
    論文鏈接:
    http://arxiv-download.xixiaoyao.cn/pdf/2104.07204v1.pdf
    代碼地址
    https://github.com/alibaba/AliceMind/tree/main/LatticeBERT

    方法

    詞格輸入

    為了解決問題 1,本文是將詞格(word lattice)輸入 BERT。

    中文的詞格圖(lattice graph)是一個(gè)有向無環(huán)圖,包含了句子里字和詞的所有信息。以“研究生活很充實(shí)”這句話為例,詞格如下圖所示:

    讀到這里可能會(huì)有人疑惑了:BERT 只能處理序列呀?這樣的有向無環(huán)圖該怎么被 BERT 處理呢?簡單!這篇文章直接將詞格圖中各粒度的信息“拍平”,得到一個(gè)線性序列,作為 BERT 的輸入。其中的每一項(xiàng)無論是字還是詞,我們都稱為 token:

    詞格注意力機(jī)制

    “拍平”詞格的輸入,就會(huì)造成不可避免的重復(fù)和冗余,那么對(duì)于位置編碼,該怎么適應(yīng)呢?另外,在“拍平”之后,原先二維的復(fù)雜圖結(jié)構(gòu)信息就會(huì)有所損失,怎樣避免圖結(jié)構(gòu)的損失呢?為了解決問題 2,這篇文章又設(shè)計(jì)了新的詞格注意力機(jī)制。

    對(duì)于字級(jí)別的 BERT,計(jì)算 attention map 可以表達(dá)為兩個(gè)字向量的內(nèi)積:

    其中 分別是第 和 個(gè)字在第 層的表示。字級(jí)別 BERT 中,位置編碼是在輸入時(shí),直接加到字的表示中的:

    然而,很多工作 [2] 表明,這種在輸入中混合位置編碼的方式比較粗糙。在計(jì)算 attention map 時(shí),將位置編碼與字的表示解耦,專門設(shè)計(jì)一個(gè)位置編碼的函數(shù),會(huì)是一個(gè)更好的選擇:

    這里 就是關(guān)于 兩個(gè)字的位置編碼的函數(shù)。本文也采取了這一類方法。具體地,attention map 可以通過四項(xiàng)相加的方式得到:

    第一項(xiàng)是字的表示得到的 attention score,后面三項(xiàng)都是與位置編碼相關(guān)的,下面我就來一一介紹~

  • 絕對(duì)位置編碼

  • 絕對(duì)位置編碼表示了 token 在句子中的位置。式子里的 表示當(dāng)前輸入 token 的開始位置, 表示結(jié)束的位置。這個(gè)式子就表示將 token 的起始位置的絕對(duì)位置編碼拼接,進(jìn)行 attention 操作。

    這一項(xiàng)可以說是對(duì)原始 BERT 中的位置編碼的復(fù)刻,并適應(yīng)了詞格的輸入。因?yàn)樵~格輸入的每一項(xiàng)長度是不固定的,引入頭尾位置也是自然的想法。

    然而,絕對(duì)位置編碼是有缺陷的:在理論上,我們對(duì)絕對(duì)位置編碼的限制只有一點(diǎn),即不同位置的編碼不同。但這樣就忽略了很多信息,比如,位置 1 和 2 的距離與位置 5 和 6 的距離應(yīng)該一樣,位置 1 和 3 的距離比位置 4 和 10 的距離要小,等等。在絕對(duì)位置編碼的設(shè)計(jì)里,我們只能讓 BERT 隱式地“學(xué)習(xí)”。

  • 相對(duì)位置編碼

  • 因此,這篇文章也引入了相對(duì)位置編碼,來表示 token 之間的相對(duì)距離。式子右邊每一項(xiàng)都代表兩個(gè) token 的起始位置之間的相對(duì)距離,例如, 表示兩個(gè) token 的起始位置之間的相對(duì)距離 的表示。引入了相對(duì)位置編碼,模型就可以建模更長的文本。

  • 層疊關(guān)系編碼

  • 表示兩個(gè) token 之間的層疊關(guān)系。根據(jù)這兩個(gè) token 起始相對(duì)位置的不同,兩個(gè) token 可以分成下列七種關(guān)系:

    具體來說,這七種關(guān)系為:

  • 自身

  • 在左邊,且無重疊

  • 在左邊,且有重疊

  • 包含關(guān)系

  • 被包含關(guān)系

  • 在右邊,且有重疊

  • 在右邊,且無重疊

  • 將 token 之間的關(guān)系分成以上七種,就可以顯式地表示詞格圖中的復(fù)雜的二維關(guān)系。之前“拍平”詞格圖時(shí)削弱的信息,在這里又找回來了。

    預(yù)訓(xùn)練任務(wù):整段預(yù)測

    最后一個(gè)問題:原來的 MLM 任務(wù)在詞格輸入的形式上,似乎并不適用。

    還是用“研究生活很充實(shí)”來舉個(gè)例子。這句話的詞格輸入將是這樣:

    研 究 生 活 研究 研究生 生活 很 充 實(shí) 充實(shí)

    詞格的輸入帶來了冗余,在 MLM 任務(wù)中,我們隨機(jī) mask 掉一些 token,是希望通過其上下文預(yù)測這些 token。但是在詞格輸入里,比如我們隨機(jī) mask 掉了“研究”,但是模型會(huì)直接通過前面的“研”“究”和后面的“研究生”來預(yù)測這個(gè) mask token,這樣走捷徑,最終一定得不到好結(jié)果。

    于是,這篇文章設(shè)計(jì)了整段預(yù)測任務(wù)(masked segment prediction):在詞格圖中,一句話將被切成多個(gè)段(segment),每個(gè)段之間不會(huì)有重疊的 token,同時(shí)也要使段的長度最小。“研究生活很充實(shí)”這句話就可以切成下圖的三段:

    在整段預(yù)測任務(wù)中,直接 mask 掉一段里的所有 token,并預(yù)測這些 token。這樣就可以避免輸入的冗余讓模型“作弊”。

    實(shí)驗(yàn)

    這篇文章使用句子里所有可能的詞來構(gòu)建詞格圖,這樣盡管會(huì)帶來錯(cuò)誤的分詞,但是讓模型自己學(xué)習(xí)降噪,還能提升模型的魯棒性。

    這篇文章在 11 個(gè)任務(wù)上進(jìn)行了實(shí)驗(yàn),11 個(gè)任務(wù)包括:

    • 6 個(gè)文本分類任務(wù):長文本分類、短文本分類、關(guān)鍵詞提取、指代消解、自然語言推斷和文本匹配;

    • 2 個(gè)序列標(biāo)注任務(wù):分詞和命名實(shí)體識(shí)別;

    • 3 個(gè)問答任務(wù):機(jī)器閱讀理解(答案段選取)、選擇題、完形填空。

    總體性能如下圖所示:

    其中,RoBERTa 是哈工大的 roberta-base-wwm-ext;NEZHA 是最好的字級(jí)別中文預(yù)訓(xùn)練模型,來自華為諾亞方舟研究院;AMBERT 是曾經(jīng)多粒度中文預(yù)訓(xùn)練模型的 SOTA,是字節(jié)跳動(dòng)李航組的工作;BERT-word 是使用詞作為輸入的 BERT;LBERT 是本文的方法;BERT-our 是本文使用相同語料重新預(yù)訓(xùn)練的 BERT。

    可以發(fā)現(xiàn),LBERT 優(yōu)于所有字級(jí)別的預(yù)訓(xùn)練模型,并在 7/11 個(gè)任務(wù)上取得 SOTA。

    LBERT 在哪里強(qiáng)于字級(jí)別的 BERT 呢?作者對(duì)預(yù)測結(jié)果進(jìn)行分析,得到如下結(jié)論:

    • 在短文本分類任務(wù)上,LBERT 在更短的樣本上有更大的性能提升,作者認(rèn)為,詞格輸入的冗余信息為短文本提供了更豐富的語義信息;

    • 在關(guān)鍵詞提取任務(wù)上,LBERT 在詞級(jí)別的關(guān)鍵詞上性能提升更高,作者認(rèn)為 LBERT 從詞格輸入中,理解了關(guān)鍵詞的語義;

    • 在命名實(shí)體識(shí)別任務(wù)上,LBERT 在重疊實(shí)體的樣本上減少了 25% 的錯(cuò)誤,這是詞格輸入帶來的天然優(yōu)勢;

    LBERT 是怎么運(yùn)用多粒度的信息呢?作者對(duì)注意力分?jǐn)?shù)進(jìn)行了可視化,還用“研究生活很充實(shí)”這句話為例:

    圖中的三行分別為:

    • 在預(yù)訓(xùn)練結(jié)束后,模型會(huì)關(guān)注句子的各個(gè)部分;

    • 在命名實(shí)體識(shí)別任務(wù)上 fine-tune 之后,模型更關(guān)注“研究”“生活”“很”“充實(shí)”,這與正確的分詞結(jié)果是一致的,對(duì)命名實(shí)體識(shí)別任務(wù)也是非常關(guān)鍵;錯(cuò)誤分詞的“研究生”就沒有得到注意力;

    • 在文本分類任務(wù)上 fine-tune 之后,模型更關(guān)注“研究生”“生活”“充實(shí)”,盡管這些詞不能在一套分詞中同時(shí)存在,但是對(duì)分類都是有用的。

    總結(jié)

    這篇文章解決了三個(gè)問題:

  • 怎么輸入?使用詞格(lattice)作為 BERT 的輸入;

  • 位置編碼?設(shè)計(jì)了詞格注意力機(jī)制(lattice position attention),使模型真正習(xí)得詞格整張圖的信息;

  • MLM?設(shè)計(jì)了整段掩碼預(yù)測任務(wù)(masked segment prediction),避免模型從詞格的多粒度輸入中使用捷徑。

  • 這樣一來,就能在 BERT 中融合字和詞信息,也在多個(gè)任務(wù)上拿到 SOTA。

    另外,這種詞格的輸入看上去也是優(yōu)點(diǎn)多多:對(duì)于短文本的任務(wù),詞格輸入可以作為一種信息的增強(qiáng);對(duì)于和詞相關(guān)的任務(wù),輸入的詞能讓模型更好的理解語義;對(duì)于抽取的任務(wù),詞格能幫助定位抽取的邊界。

    這里還延伸出一個(gè)問題:英文是不是也可以利用多粒度的信息呢?中文的預(yù)訓(xùn)練模型可以使用字和詞的信息,相似地,英文就可以使用 subword 和 word 信息,這樣是不是有效呢?

    萌屋作者:????????????????

    在北大讀研,目前做信息抽取,對(duì)低資源、圖網(wǎng)絡(luò)都非常感興趣。希望大家在賣萌屋玩得開心 ヾ(=・ω・=)o

    作品推薦

  • 老板讓我用少量樣本 finetune 模型,我還有救嗎?急急急,在線等!

  • 谷歌:CNN擊敗Transformer,有望成為預(yù)訓(xùn)練界新霸主!LeCun卻沉默了...

  • 往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請(qǐng)掃碼:

    總結(jié)

    以上是生活随笔為你收集整理的【NLP】中文BERT上分新技巧,多粒度信息来帮忙的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。