Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

導(dǎo)讀:命名實體識別(Named Entity Recognition,簡稱NER)是自然語言處理中的熱點研究方向之一,目的是識別文本中的命名實體,并將其歸納到相應(yīng)的實體類型中。命名實體識別也是NLP最重要的底層任務(wù)之一,在學(xué)術(shù)界和工業(yè)界一直都是重點研究的問題。今天主要和大家分享音樂領(lǐng)域的命名實體識別技術(shù),包括以下幾方面內(nèi)容:

  • 背景介紹
  • 候選生成與訓(xùn)練數(shù)據(jù)構(gòu)建
  • 用戶Query NER模型
  • 音樂文本NER模型
  • 未來展望

01
背景介紹

  1. NER的定義與應(yīng)用
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

NER就是識別文本中具有特定意義的實體,在音樂領(lǐng)域中實體主要包括歌曲名、歌手名、影視、綜藝、版本、音樂流派等,例如:

  • Block B在一周的偶像中挑戰(zhàn)二倍速的Her,rap部分感覺Zico的舌頭都要打結(jié)了
  • 給我來一個東方紅謝謝

這里有歌曲名(Her、東方紅)、歌手名(Block B、Zico)、綜藝(一周的偶像)。在音樂領(lǐng)域中,NER在多種類型的文本上都有著廣泛的應(yīng)用,這里我們主要分為兩大類:用戶query理解和音樂文本結(jié)構(gòu)化。

① 用戶query理解

用戶的query理解,包括了搜索框內(nèi)的文本搜索以及語音場景下的搜索。比如說這里用戶在搜索框內(nèi)輸入的query是 “周杰倫的七里香”,由于我們庫內(nèi)沒有同名的資源,因此這里我們就需要NER模塊從中來提取出歌手名=周杰倫、歌曲名=七里香,這樣我們才知道用戶想要的其實是周杰倫唱的七里香這首歌。

② 音樂文本結(jié)構(gòu)化

音樂文本的結(jié)構(gòu)化,主要是從我們庫內(nèi)的視頻標(biāo)題、歌單標(biāo)題、評論等非結(jié)構(gòu)化文本數(shù)據(jù)中抽取出一些音樂領(lǐng)域的實體,便于在搜索推薦等任務(wù)中應(yīng)用。

  1. NER的發(fā)展歷程
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

NER在早期的時候主要是基于規(guī)則和詞典,還有統(tǒng)計機器學(xué)習(xí)的方法(HMM、CRF、SVM等),這類方法主要的優(yōu)點是速度比較快,精確率比較高,但是召回率通常比較低。目前工業(yè)界主要是在搜索的場景下,采用這類方法來處理一些高頻query,以實現(xiàn)線上大多數(shù)請求的快速響應(yīng)。

2016~2018年之間隨著深度學(xué)習(xí)的發(fā)展,相關(guān)從業(yè)者也在NER領(lǐng)域做了比較多的研究工作,提出了基于淺層神經(jīng)網(wǎng)絡(luò)的方法。它的基礎(chǔ)結(jié)構(gòu)是通過LSTM或者IDCN這樣的淺層神經(jīng)網(wǎng)絡(luò)去抽取文本的特征,然后通過CRF進行解碼,得到對應(yīng)的實體序列,在這樣的模型基礎(chǔ)上,融入外部詞典特征和領(lǐng)域內(nèi)信息等外部知識進行模型優(yōu)化。此外還有其他一些研究工作,考慮如何融入多粒度信息,比如LSTM+CHAR-CNN增加一個字符級的CNN融入,LATTICE-LSTM通過對LSTM的結(jié)構(gòu)進行修改實現(xiàn)詞以及短語等不同粒度信息的融入。根據(jù)我們的調(diào)研,這類目前依然是工業(yè)界主流的解決方案,我們在用戶query NER中就采用了這一類的方法。

2018年后,隨著Bert的興起,基于大規(guī)模預(yù)訓(xùn)練語言模型的方法成為了趨勢,這類方法主要特點是,將淺層的文本抽取器、特征提取器,改成Bert這樣的大規(guī)模訓(xùn)練語言模型,從而獲取質(zhì)量更高的embedding去優(yōu)化下游的任務(wù)。此外在這類方法的基礎(chǔ)上還會有一些相關(guān)的優(yōu)化,比如說ACL2020的FLAT,基于transformer序列全連接的結(jié)構(gòu),實現(xiàn)外部詞典信息的引入。目前這類方法是學(xué)術(shù)界的一個研究重點,我們是在音樂文本的命名實體識別上采用了這類的解決方案,并針對場景進行了一些優(yōu)化。

  1. 音樂領(lǐng)域NER的難點
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

① 領(lǐng)域相關(guān)性強

如果沒有領(lǐng)域內(nèi)的相關(guān)知識,文本中的實體難以正確地被識別,比如:張碧晨時間有淚憂傷的恰如其分,這句話中《時間有淚》是一首歌曲,如果我們事先不知道它是歌曲名,僅通過文本層面的信息很難正確地切分出它的邊界。

② 實體名命名不受限且歧義大

這里的歧義主要有兩方面,第一個是實體名與自然語言表述的歧義,比如:天后梅艷芳與歌神張學(xué)友同臺合唱,薛之謙唱過一首歌《天后》,但是在這個句子中 “天后” 并不是歌曲名,而是對歌手梅艷芳的一個稱謂。第二的話是同樣一個實體名在不同場景下實體類型可能不同,比如:“安靜的歌曲”與“歌曲安靜”,前面的 “安靜” 指的是一種歌曲類型,而后面的 “安靜” 指的是周杰倫唱的歌曲《安靜》。

③ 缺乏足夠的上下文信息

這一難點主要是針對于用戶query,因為用戶query通常是一些實體的堆疊,很多都缺乏上下文信息,并且和正規(guī)的文本相差比較遠,比如:張韶涵夜空中最亮的星鄧紫棋。它是由(張韶涵、夜空中最亮的星、鄧紫棋)三個實體堆疊而成的,沒有任何的上下文信息可以利用。

④ 表述具有多樣性

這一難點主要是針對于音樂文本,音樂文本同開放域文本一樣,也是具有多樣性的。同樣的意思可能有多種表達方式,并且表達方式相對于正規(guī)文本來說更加的不規(guī)范。比如對這樣一個視頻標(biāo)題:女歌手彈唱一首恰似你的溫柔,真是好聽。如果我們把彈唱替換成演唱/帶來/創(chuàng)作,甚至其它的表述方式,它都是合理的。

  1. 整體解決方案
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

從上述四個難點可以看出,要想正確識別文本中的實體,需要將實體屬性的建模以及文本信息的建模相互結(jié)合起來。這里介紹一下我們的一個整體解決方案,主要分為離線和在線兩個部分。

① 離線模塊

離線分為三個子模塊:基礎(chǔ)數(shù)據(jù)、中間層數(shù)據(jù)、模型。

基礎(chǔ)數(shù)據(jù)

基礎(chǔ)數(shù)據(jù)包括搜索日志、播放日志、曲庫數(shù)據(jù)等內(nèi)容,其中搜索日志和播放日志主要是對用戶行為上報的存儲,曲庫數(shù)據(jù)主要是存儲在庫中的結(jié)構(gòu)化資源數(shù)據(jù)。

中間層數(shù)據(jù)

中間層數(shù)據(jù)主要是基于基礎(chǔ)數(shù)據(jù)進行計算和變換所得到的中間層數(shù)據(jù),包括實體知識庫、規(guī)則庫、實體候選集以及訓(xùn)練語料等。

實體知識庫是對結(jié)構(gòu)化資源信息和用戶行為日志進行一些整合變換得到的key-value集合,其中key表示的實體名,value是這個實體對應(yīng)的一些屬性,通過這樣的存儲方式,便于下游工作對它的利用。

規(guī)則庫主要是對于用戶query文本,通過Bootstrapping之類的文本挖掘方法,從中挖掘出一些頻繁出現(xiàn)的模式,然后存儲到規(guī)則庫中。

實體候選集主要是存儲文本中可能是實體的片段,關(guān)于實體候選集和訓(xùn)練語料的構(gòu)建,后面會比較詳細闡述我們采用的方法。

模型

在前面的難點中提到了,我們這里主要有兩大類的文本,一類是純UGC的文本,比如用戶的query,另外一類就是相對而言中長一些的文本,比如標(biāo)題、評論等。針對這兩類不同的文本,我們采用兩類不同的模型,因為用戶query的上下文信息比較缺乏,我們采用了GRU對文本進行編碼,對于其他的一些中長類的文本,我們采用BERT來提取更豐富的上下文信息。在兩類baseline模型的基礎(chǔ)上,我們針對如何去融入領(lǐng)域內(nèi)的知識進行了一些探索,在下文都會進行詳細闡述。

② 在線模塊

線上預(yù)測分為四個部分:首先經(jīng)過一個候選生成與初篩模塊,得到文本中存在的候選片段,然后依次通過規(guī)則和模型識別得到識別結(jié)果,最后再通過融合模塊進行融合,得到最終的識別結(jié)果。通過這樣的方式,我們可以將規(guī)則的高精確以及模型的高召回結(jié)合起來,得到質(zhì)量比較高的識別結(jié)果。

02
候選生成與訓(xùn)練數(shù)據(jù)構(gòu)建

  1. 候選生成

候選提取就是從文本中提取出盡可能不重疊的高置信候選實體。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

在上圖例子中,針對用戶query“陳小春的歌亂世巨星”,通過與知識庫匹配,可以得到“陳小春”、“小春”、“小春的歌”等候選實體。如果直接將這些信息加入到模型中,會給模型帶來很大的噪聲,因為這些候選在這個片段中位置上是高度重疊的,因此我們需要通過一個篩選模塊,從中篩選出一些盡可能不重疊的候選,比如最終我們選擇了陳小春,亂世巨星兩個候選,然后把他們加入到模型中,就可以提供一個比較好的外部信息。前面我們提到了音樂領(lǐng)域的NER是有強領(lǐng)域相關(guān)性的,因此候選的效果對最終的效果有很大的影響。

針對候選的提取業(yè)界常見的解決方案主要有最大匹配和最小匹配方法:

最大匹配算法貪心地去選擇一個最長的候選,它的主要缺點是對于詞典的質(zhì)量要求比較高,比如對于這個句子:請為我播放陳慧琳記事本。由于我們庫內(nèi)有“陳慧琳記事本”這樣一個同名實體,因此通過最大匹配我們就會切出“陳慧琳記事本”這樣一個候選,顯然這是一個錯誤的候選。

最小匹配算法近似于利用實體詞典來進行切詞,它雖然說解決最大匹配帶來的問題,但是它切分力度太細,很容易將一個正確的實體切散,比如對于這個句子:鄭中基演唱的晴天陰天雨天。最小匹配可能得到的結(jié)果就是“晴天”、“陰天”、“雨天”三個候選,本來“晴天陰天雨天”是鄭中基演唱的一首歌,在這里就被切散了。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

針對最大和最小匹配存在的問題,我們綜合最大和最小匹配的優(yōu)勢,設(shè)計了一個適合我們應(yīng)用場景的路徑選擇方法。首先針對原始的候選實體,我們抽取出所有可能的候選,然后構(gòu)建出候選的有向圖,比如對于上面這個例子:陳小春的歌亂世巨星。我們用一個有向圖來表示所有可能的候選的路徑,接下來去計算每一條路徑的分數(shù),然后根據(jù)路徑的分數(shù)篩選出紅色標(biāo)紅的路徑就是分數(shù)最高的路徑,根據(jù)這條路徑選擇最終的候選集合。這里的關(guān)鍵在于如何計算每條路徑的分數(shù),我們從三個角度來計算分數(shù),首先是候選實體的置信度,它主要評估候選本身的置信度,或者說它的熱度;然后是路徑命中規(guī)則情況計算得到的分數(shù),其實也就是實體級別的一個語言模型分數(shù),主要評估路徑的流暢性;最后我們引入了一個Root-Link考察候選被其它候選的覆蓋情況,這是音樂領(lǐng)域的一個特性,如果一個候選是所有重疊候選中最長的實體部分,通常情況下,我們更傾向于認為它是一個正確的實體,最終將這三類分數(shù)綜合加權(quán)得到了每一條路徑的分數(shù)。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

在具體計算的過程中,我們做了一個優(yōu)化,當(dāng)文本比較長時,遍歷所有路徑依次計算分數(shù)的開銷過大。因此我們采用了 beam_search的方式,對于每一個token只保留以它為結(jié)尾的N條路徑,把整個有向圖分為多個部分分開計算。比如對于上面的例子,我們對于”亂”這個token,就保留以它為結(jié)尾的兩條路徑。當(dāng)我們對這個token后面進行路徑選擇時,就與前面的路徑無關(guān)了,這樣就可以減少整體的計算量。

  1. 訓(xùn)練數(shù)據(jù)構(gòu)建
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

① 重要性與難點

訓(xùn)練數(shù)據(jù)是模型的燃料,對模型效果起著決定性的作用。在我們的應(yīng)用場景中,訓(xùn)練數(shù)據(jù)構(gòu)建主要有以下兩個難點,第一個是缺乏高質(zhì)量的標(biāo)注數(shù)據(jù),在query的場景下,只有用戶query點擊這樣的label,且質(zhì)量通常不是很高;第二個是人工標(biāo)注的成本高,因為NER通常采用BIO這樣的標(biāo)注體系,每個token都需要打上標(biāo)記,這種方式逐個去標(biāo)非常耗費人力。

② 解決方案

我們通過主動學(xué)習(xí)迭代提升標(biāo)簽質(zhì)量,同時構(gòu)造弱監(jiān)督數(shù)據(jù)去擴充訓(xùn)練數(shù)據(jù)量。首先我們根據(jù)用戶的點擊后驗來構(gòu)建一份質(zhì)量不是很高的訓(xùn)練數(shù)據(jù),再通過我們預(yù)制的一些規(guī)則模板對它進行校正,以及對一些明顯有問題的label進行校正,得到一份可以用于訓(xùn)練模型的數(shù)據(jù)1.0。然后通過訓(xùn)練數(shù)據(jù)1.0,我們做一個交叉驗證,從中來篩選出一些低置信度、模型不是很確定的數(shù)據(jù),對這些數(shù)據(jù)進行重標(biāo)。通過這樣的方式,我們使用模型自動篩選出可能有問題的數(shù)據(jù),減少人力標(biāo)注的數(shù)量,得到一份經(jīng)過清洗后的訓(xùn)練數(shù)據(jù)2.0。我們再去用訓(xùn)練數(shù)據(jù)2.0訓(xùn)練模型,利用這版模型去預(yù)測一些未標(biāo)注數(shù)據(jù),把這些外邊數(shù)據(jù)作為一個弱監(jiān)督的數(shù)據(jù),將其加入到原始的實驗數(shù)據(jù)中,從而構(gòu)建了一個閉環(huán)的迭代過程,經(jīng)過迭代后,模型訓(xùn)練數(shù)據(jù)的數(shù)量和質(zhì)量上都有提升。

在迭代之外,我們還引入了EDA自動擴展訓(xùn)練數(shù)據(jù),主要策略有實體替換、非實體片段替換、實體名擾動等。比如我們把一首片段中的歌曲名替換成另一首歌曲:來一首七里香→來一首吻別;把非實體片段替換:來一首七里香→播放七里香;實體名擾動:來一首七里香→來一首七七里香,因為我們NER在語音場景下也會有應(yīng)用,而語音場景下有很多用戶可能會說錯歌曲名,通過實體名擾動構(gòu)建類似數(shù)據(jù),可以增加模型整體的魯棒性。

03
用戶Query NER模型

  1. V1版
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

① 思路

前面提到了用戶Query通常比較簡短、信息比較少,因此我們第一版模型考慮對每一個候選去抽取出一些特征,然后采用傳統(tǒng)的分類模型去判斷每一個候選的類型,因為不是所有的候選都在最終正確結(jié)果中保留,因此不保留也作為一種類型。

② 特征體系

特征體系方面,以Query為例,主要提出以下三類特征,第一類是候選實體本身的屬性,包括些熱度、覆蓋度、語言類型等;第二類是命中規(guī)則的特征,主要作用是通過人為統(tǒng)計的方式,給模型提供一些可能存在的上下文層面信息,因為Query沒有顯式引入上下文的信息;第三類是實體間的關(guān)系,主要包括一些成對的關(guān)系,因為在音樂領(lǐng)域經(jīng)常有一些演唱,可以從中生成一些成對關(guān)系,比如王菲演唱過約定,我們就將(王菲,約定)這樣的信息也加入到特征中。

③ 效果與分析

在構(gòu)建特征后,我們采用了傳統(tǒng)分類模型xgboost進行嘗試,最終整體的precision為0.894,勉強達到了可用的水平,但是recall僅有0.835,沒有達到可用的水平。這一版模型的主要意義就是我們通過傳統(tǒng)的特征工程選出了一些對于NER具有幫助的特征,但我們沒有顯示地去引入候選的上下文信息。雖然Query的上下文信息不多,但還是存在一些的,因此我們后續(xù)的優(yōu)化方案,就是通過深度模型去更好地建模上下文信息。

  1. V2版
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

① 思路

V2版我們采用業(yè)界比較常見的思路,首先將NER轉(zhuǎn)化為序列標(biāo)注問題,將實體按照它所屬的token以及位置來對實體的每一部分給出標(biāo)注,比如說對于上圖的Query,我們得到它對應(yīng)的一個標(biāo)注。

② 特征與模型

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

特征層面我們?nèi)匀徊捎昧薞1版中得到的特征,只不過加入特征的方式相比V1版有一些區(qū)別,我們將每一類特征對應(yīng)到token本身,每一類特征都是一個特定的候選,把每一類特征加到其所屬的圖層中,最終每一個token會對應(yīng)到多個類別的特征。

模型層面的話,我們采用了一個比較常用的解決方案,首先得到每個token對應(yīng)的token embedding,然后經(jīng)過上圖橘黃色標(biāo)注的Domain Fushion層,將每個token對應(yīng)的多個特征拼接起來,得到token融合領(lǐng)域知識后的特征,最終經(jīng)過BiLSTM+CRF編碼和解碼得到實體序列。

② 效果與分析

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

V2版的召回率相對V1版有明顯的提升,我們?nèi)プ隽艘恍ヽase分析,發(fā)現(xiàn)整體也是符合預(yù)期的。good case主要是擴召回一些query干擾信息比較多但上下文特征比較強的實體,比如上圖第一個例子,在歌曲名“你的淺笑”前有非常多口語化的表述,V1版由于沒有顯示的引入文本層面信息,就無法識別出這類實體。對于第二個例子:花千骨主題音樂歌曲,因為V1版中我們通過模板來引入上下文信息,有一個模板是影視劇名+主題曲,這里只把“曲”換成“音樂”,模板就失效了,通過深度模型,我們可以學(xué)習(xí)到“曲”和“音樂”是近義詞,這樣就能夠正確地識別出“花千骨”是影視劇名。

V2版也存在一些問題,最大的問題就是歧義大的實體識別不準(zhǔn),舉兩個例子。

來一個戀人主題曲鄭穎娟的、幫我找下有沒有東方紅這首歌。第一個例子模型沒有識別出“影視劇名=戀人”,主要原因就是因為“戀人”的影視意圖很弱,我們提到戀人,第一反應(yīng)是認為它應(yīng)該是一個歌曲而不是影視劇。第二個例子是語音場景下的一個query,模型錯誤地識別出“歌曲名=有沒有”,主要原因是因為“有沒有”本身是一個熱度比較高的歌曲,模型受到熱度特征的干擾導(dǎo)致了誤判。

因此我們需要針對問題的特點設(shè)計一個定制化的領(lǐng)域內(nèi)信息融入模塊來解決歧義的問題。我們首先需要解決候選實體類型的歧義,然后就是實體與常用表述之間的歧義,針對這兩點問題,我們設(shè)計了V3版的模型。

  1. V3版
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

針對V2版的問題,V3版主要做了兩個方面的優(yōu)化。首先在融合外部知識的Domain Fushion層,我們把多個特征concat的方式改成采用feature self attention,通過attention機制去捕捉對于識別當(dāng)前token更重要的一些特征。第二個優(yōu)化點,在進入BiLSTM進行序列編碼前增加了一個multi view attention層,它主要是基于NLP歧義知識融合中常用的rethinking機制的思想,通過目標(biāo)token的臨近上下文,對目標(biāo)token的多個輸入特征進行重新篩選,這樣可以在一定程度上利用query中歧義較小的片段,對歧義較大片段信息融合中的錯誤進行一些校正。

這里我們通過在不同層引入feature self attention(FSA)和multi view attention(MVA),分別從特征值本身,以及鄰近上下文信息兩個角度,優(yōu)化多特征融合時的信息選擇,顯著解決了有歧義實體的誤傷和召回不足的問題。在做了這兩個方面的優(yōu)化后,V3版整體的precision和recall都有明顯的提升,達到了一個比較可用的水平。

04
音樂文本NER模型

  1. 特征抽取優(yōu)化
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

我們直接用從query中探索出的NER模型套用在音樂文本識別任務(wù)上,發(fā)現(xiàn)F1只有84%,分析發(fā)現(xiàn)主要是因為音樂文本的上下文相比query是比較豐富的,和正規(guī)文本更加接近。因此我們采用大規(guī)模訓(xùn)練語言模型(e.g. Bert)對文本進行編碼,Bert是多層transformer結(jié)構(gòu)的疊加,而transformer最重要的結(jié)構(gòu)是self attention,關(guān)于bert的模型結(jié)構(gòu)這里就不做贅述了。Bert通過在大規(guī)模無標(biāo)記語料上進行訓(xùn)練,得到一個比較好的語言模型,不同類型的語言模型(e.g. BERT, ROBERTA, SpanBERT)主要是預(yù)訓(xùn)練任務(wù)的差別,其中最重要的預(yù)訓(xùn)練任務(wù)是MLM,它其實就是將文本中的一些token改成[MASK]這樣的標(biāo)記,然后通過模型去學(xué)習(xí)[MASK]位置的token,從而去感知語言的一些表達方式和特性,因此Bert幾乎刷新了所有NLP下游任務(wù)的SOTA。

① 思路

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

我們V1版的優(yōu)化其實是比較簡單的,就是將我們Query NER中采用的最終模型中的Token Embedding層替換成了ROBERTA,將原本上下文無關(guān)的很弱的Embedding表示替換成由ROBERTA得到的上下文相關(guān)且質(zhì)量非常高的Embedding表示,其余后續(xù)模型結(jié)構(gòu)不做任何改動,經(jīng)過優(yōu)化效果相比直接采用Query NER模型有一些提升,F(xiàn)1 score由84%提高到88.4%,但是整體未達到可用效果的要求。

② 問題分析

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

我們對于存在的問題做了一些比較詳細的分析。首先第一點問題是對候選間長距離依賴關(guān)系刻畫不足,比如上圖第一個例子,《rage of dust》其實是影視《機動戰(zhàn)士高達》的主題曲,但是由于兩者在文本中的距離比較遠,導(dǎo)致模型對于它們之間的關(guān)系沒有很好的捕捉,造成這種情況的原因首先是我們的候選篩選策略難以保證選出的路徑是最優(yōu)的,其次就是知識融合框架對候選之間長距離依賴捕捉支持不足。

第二點是模型過于依賴部分的領(lǐng)域知識,比如實體間的成對信息,對于上圖第二個例子,因為邁克爾杰克遜曾唱過一首歌《History》,它的翻譯名就是歷史,導(dǎo)致模型誤識別出:歌曲名=歷史,主要是因為我們沒有顯示地將候選詞間的關(guān)系建模到模型中。

最后一點就是對于部分實體上下文說法較長尾的情況,模型識別比較依賴書名號等符號,比如對于上圖第三個例子,如果這里我們將書名號去掉,可能模型就無法正確的識別出歌曲名為“十面埋伏”,主要原因是相關(guān)的訓(xùn)練數(shù)據(jù)比較少,并且label標(biāo)注不全。

針對前兩個問題,我們的優(yōu)化方案是去探索一個更好的知識融合方式;對于第三個問題,我們主要通過提高訓(xùn)練數(shù)據(jù)利用效率解決。

  1. 知識融合框架

目前工業(yè)界和學(xué)術(shù)界比較常見的知識融合框架主要有三大類,下面主要圍繞這三類框架的典型代表,以及在我們?nèi)蝿?wù)上的知識融合優(yōu)化展開闡述。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

① Lattice LSTM

第一類以Lattice LSTM為代表,它通過對LSTM或GRU模型的結(jié)構(gòu)進行一些修改,實現(xiàn)詞/短語級別信息的引入。

② CGN

第二類以CGN為代表,它不修改原本的文本編碼方式,在編碼層后疊加一些圖神經(jīng)網(wǎng)絡(luò),實現(xiàn)引入更多粒度的信息。

③ FLAT

最后一類以FLAT為代表,這也是我們在音樂文本NER任務(wù)中最終選用的知識融合框架。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

FLAT在transformer模型的基礎(chǔ)上,引入多粒度信息(主要是詞典信息),將文本中存在的一些詞直接拼接到Token后面,得到了一個包含異質(zhì)信息的序列。通過將詞和token放在一個序列中,在Self-Attention計算時,詞級別的信息就自然而然地融入到整個模型中,這樣就不需要像CGN這樣的模型,人為構(gòu)建圖表述候選和token之間的關(guān)聯(lián)再通過GNN去編碼,而是對attention score的計算進行修正,實現(xiàn)多粒度信息的引入。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

我們嘗試直接將FLAT模型應(yīng)用于音樂文本NER,對文本部分用ROBERTA來進行編碼得到它的Token Embedding,對候選詞部分采用與Query NER中一樣的Feature Self Attention,對每個候選實體多個層面的特征組合,得到每個候選實體的Embedding,然后將Token Embedding和候選實體的Embedding拼接到一個序列中,后面再接一層Flat Self Attention得到融合后的表示,最后通過CRF對Token進行解碼。

觀察效果我們發(fā)現(xiàn)直接應(yīng)用FLAT進行知識融合并沒有明顯的提升,F(xiàn)1 Score相比第一版還有一點下降。我們對一些case進行分析,發(fā)現(xiàn)召回顯著降低,對于一些連續(xù)的實體片段,在結(jié)果中出現(xiàn)了很多缺失,比如對于這個例子:【洛天依 樂正綾 言和 心華】四小只幼女大合唱,這里其實有四個歌手,但是模型只識別出了其中的兩個。我們通過一些實驗,發(fā)現(xiàn)導(dǎo)致問題的主要原因是模型對于元素間距離的數(shù)值過于敏感,另外是由于ROBERTA部分輸出的表示與候選實體的表示屬于異質(zhì)信息,因此我們在FLAT模型的基礎(chǔ)上,結(jié)合這里的幾個問題進行了一些優(yōu)化。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

我們主要的優(yōu)化點在于Attention Score的計算方式。原始的FLAT直接通過元素間的位置關(guān)系來建模,一共計算了四種不同的位置信息,分別是lattice的開始減開始,開始減結(jié)束,結(jié)束減開始,結(jié)束減結(jié)束。我們通過分析發(fā)現(xiàn),當(dāng)我們的訓(xùn)練數(shù)據(jù)質(zhì)量還有數(shù)量都不是很足的時候,這樣的設(shè)計方式可能會導(dǎo)致模型對于距離本身的一個具體數(shù)值產(chǎn)生依賴,因此我們對這種位置關(guān)系的計算方式進行了修改。首先我們顯示地引入token與候選實體之間關(guān)系,比如依賴、包含、相交等關(guān)系,然后針對原始的四個位置信息,把它變成了一個position,通過它表示兩個token在序列中最短的位置信息,通過它去建模兩個元素之間的位置關(guān)系。此外我們還引入了一個pair的信息,主要目的是將一些非位置信息,比如候選實體間的成對,包括一些其他的關(guān)系引入到模型中,通過這幾點優(yōu)化,模型的效果有了顯著的提升。除此之外,我們基于異構(gòu)圖網(wǎng)絡(luò)的思想,對不同類型的節(jié)點先進行節(jié)點級別的信息聚合,再對不同類型作語義級別聚合。

  1. 提高訓(xùn)練數(shù)據(jù)利用效率
Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

關(guān)于如何去提升訓(xùn)練數(shù)據(jù)的利用效率,業(yè)界比較常見的解決方案是從訓(xùn)練數(shù)據(jù)的角度出發(fā),基于不確定性的方法去訓(xùn)練模型。整體思想是認為label本身存在漏標(biāo)的可能,通過針對label來進行探索,把沒有標(biāo)注為實體部分改標(biāo)為實體,然后進行模型的迭代訓(xùn)練。

在我們音樂文本NER的應(yīng)用中,我們發(fā)現(xiàn)基于不確定性訓(xùn)練的方法主要有兩個缺點,第一個是它需要進行多次的迭代訓(xùn)練,整體效率會比較低;第二點是因為音樂領(lǐng)域本身名稱歧義非常大,這里可能會有一些不太合適的探索,會導(dǎo)致模型整體產(chǎn)生偏差,后面的修正也無法讓它回到原來正確的方向上。因此在音樂文本NER任務(wù)中我們從模型的角度出發(fā),通過領(lǐng)域和任務(wù)數(shù)據(jù)上post train來實現(xiàn)訓(xùn)練數(shù)據(jù)的利用效率。在得到預(yù)訓(xùn)練模型基礎(chǔ)上,對領(lǐng)域和任務(wù)相關(guān)的一些數(shù)據(jù)進行一輪post train,得到一個領(lǐng)域內(nèi)的預(yù)訓(xùn)練模型,再去做下游的NER任務(wù),這個流程其實也是目前NLP任務(wù)整體的一個范式。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

在post train任務(wù)設(shè)計的探索中,我們首先采用的是標(biāo)準(zhǔn)的MLM,即對于每一個token,以15%的概率把它制成mask,以85%的概率保留原token。我們選取了庫內(nèi)的一些視頻標(biāo)題,然后采用標(biāo)準(zhǔn)的MLM作為post train任務(wù),結(jié)果發(fā)現(xiàn)它提升很小,基本上沒有解決什么長尾case。

因此我們對原始的MLM進行了一些改動,做了一個強化實體邊界的MLM任務(wù),它的思想是去優(yōu)化MLM任務(wù)中的mask策略,迫使模型重點關(guān)注與實體識別相token。比如看上圖中的例子,我們已知實體屬性:馮提莫=歌手、單身情歌=歌曲,可以在已知的實體前后根據(jù)類型插入不同的模式,比如在單身情歌前后插入書名號,在馮提莫前面插入歌手或者網(wǎng)紅這樣的標(biāo)記,然后在構(gòu)造MLM數(shù)據(jù)時,以更大的概率將我們?nèi)藶樘砑拥臉?biāo)記作為mask,對于每個部分,首先來判斷它是否是我們添加的標(biāo)記,如果是就用一個較大的概率P1來執(zhí)行mask,否則以一個比較小的概率P2來執(zhí)行mask,通過這樣使得被mask的大部分都是我們?nèi)藶樘砑拥臉?biāo)記,這樣也迫使得模型更加關(guān)注于實體的邊界信息。通過這種方式,可以擴招回一些中文長尾case,模型對于實體邊界的感知能力也會更強,此外還可以用它來補充一些label。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

最終,在加入優(yōu)化后的FLAT,以及加入領(lǐng)域內(nèi)相關(guān)的post train之后,整體的F1 score可以達到比較可用的水平。

05
未來展望

我們在NER任務(wù)上主要考慮以下三個方面的優(yōu)化:

首先,我們可能去學(xué)習(xí)實體的知識圖譜表示,將它融入到模型的候選實體表征中,這樣可以得到候選實體更深層次的語義表示。

第二就是針對候選可能導(dǎo)致錯誤傳導(dǎo)的問題,聯(lián)合優(yōu)化候選生成與最終結(jié)果預(yù)測。

最后,考慮通過優(yōu)化現(xiàn)有的模型范式來更好地支持嵌套NER以及不連續(xù)NER,以支持到更多的業(yè)務(wù)場景。

今天的分享就到這里,謝謝大家。

Kevin:QQ音樂命名實體識別技術(shù)|DataFunTalk

本文經(jīng)授權(quán)發(fā)布,不代表增長黑客立場,如若轉(zhuǎn)載,請注明出處:http://allfloridahomeinspectors.com/cgo/product/59689.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
上一篇 2022-03-04 15:19
下一篇 2022-03-04 21:31

增長黑客Growthhk.cn薦讀更多>>

發(fā)表回復(fù)

登錄后才能評論