【廣告】
一、導(dǎo)言
數(shù)據(jù)是人工智能的基石,更多的數(shù)據(jù)、更高的質(zhì)量往往意味著更好的效果。然而大規(guī)模高質(zhì)量數(shù)據(jù)的獲取并非易事,通常需要花費(fèi)大量的時(shí)間、精力和成本,尤其是在需要領(lǐng)域知識(shí)的情況下。數(shù)據(jù)標(biāo)注,正日益成為人工智能發(fā)展過(guò)程中的瓶頸。鑒于此,弱監(jiān)督方式開(kāi)始受到人們?cè)絹?lái)越多的關(guān)注,如遠(yuǎn)程監(jiān)督、規(guī)則/分類(lèi)器進(jìn)行啟發(fā)式標(biāo)注等。一般基于這種方式得到的數(shù)據(jù)準(zhǔn)確率和覆蓋率有限,需要對(duì)不同數(shù)據(jù)源進(jìn)行合并來(lái)提高。對(duì)此,由斯坦福大學(xué)開(kāi)發(fā)的snorkel系統(tǒng),為這一場(chǎng)景提供了一整套解決方案,而基于snorkel metal實(shí)現(xiàn)的大規(guī)模多任務(wù)學(xué)習(xí),則再次刷新了GLUE基準(zhǔn)。本文首先會(huì)簡(jiǎn)單介紹一下snorkel系統(tǒng)的原理,接著將應(yīng)用snorkel到法律場(chǎng)景的要素識(shí)別中,將討論一下后續(xù)的工作方向。
二、snorkel 介紹
snorkel系統(tǒng)主要用于解決數(shù)據(jù)標(biāo)注問(wèn)題,它不需要用戶去手動(dòng)標(biāo)注訓(xùn)練數(shù)據(jù),而是采用編程的方式快速進(jìn)行批量標(biāo)注,在實(shí)驗(yàn)測(cè)試中相比7小時(shí)的純?nèi)斯ご驑?biāo),速度提升2.8倍,預(yù)測(cè)性能提升45.5%。
snorkel系統(tǒng)結(jié)構(gòu)如下,主要包括數(shù)據(jù)處理(ConTEXT HIERARCHY)、數(shù)據(jù)標(biāo)注 (LABELING FUNCTION INTERFACE)、生成模型(GENERATIVE MODEL)三部分:
數(shù)據(jù)處理
數(shù)據(jù)處理:用于對(duì)文本進(jìn)行結(jié)構(gòu)化處理,方便提取出待標(biāo)注的候選集。snorkel采用spacy進(jìn)行文本數(shù)據(jù)的處理,包括詞性標(biāo)注、實(shí)體識(shí)別等。
標(biāo)注函數(shù)
標(biāo)注函數(shù):用于對(duì)數(shù)據(jù)樣本進(jìn)行打標(biāo),得到標(biāo)注矩陣(LABEL MATRIX)。用戶可以自實(shí)現(xiàn)標(biāo)注函數(shù),也可以用snorkel提供的接口,包括:正則、遠(yuǎn)程監(jiān)督、弱分類(lèi)器以及標(biāo)注函數(shù)生成器。
建模時(shí)機(jī)
建模時(shí)機(jī):相比上述建模方法,在擬合不同標(biāo)注函數(shù)的打標(biāo)結(jié)果時(shí)進(jìn)行簡(jiǎn)單投票也能得到的標(biāo)簽,雖然效果可能較差,但速度很快。對(duì)此,需要在計(jì)算時(shí)間和效果上進(jìn)行折中考慮。理論研究證明,在標(biāo)注密度(樣本平均非0標(biāo)簽的比例)過(guò)高或過(guò)低時(shí),上述建模方法相比投票方法并不能帶來(lái)很好的效果提升,只有標(biāo)注密度處于中等的時(shí)候才能帶來(lái)收益。
三、法律場(chǎng)景的應(yīng)用
判別模型:snorkel系統(tǒng)輸出的標(biāo)簽為概率值,相比真實(shí)標(biāo)簽,保留了建模時(shí)的噪聲信息。在獲得snorkel打標(biāo)的標(biāo)簽后,可直接用于后續(xù)判別模型的訓(xùn)練。
數(shù)據(jù)準(zhǔn)備
針對(duì)婚姻家庭相關(guān)糾紛(離婚糾紛、婚約財(cái)產(chǎn)糾紛等),使用snorkel對(duì)1.3萬(wàn)裁判文書(shū)未標(biāo)注數(shù)據(jù)進(jìn)行標(biāo)注作為訓(xùn)練集,5000人工標(biāo)注數(shù)據(jù)作為測(cè)試集。數(shù)據(jù)結(jié)構(gòu)為案件描述+要素,模型需要預(yù)測(cè)案件描述信息中是否包含要素,包含為1,否則為0。
數(shù)據(jù)處理
snorkel系統(tǒng)的數(shù)據(jù)處理流程主要是方便后續(xù)標(biāo)注函數(shù)的編寫(xiě)。這里我們只簡(jiǎn)單考慮正則方式,不需要這一過(guò)程,因此直接跳過(guò)。
標(biāo)注函數(shù)
考慮3組正則作為標(biāo)注函數(shù),正則1和正則2均由人工根據(jù)要素編寫(xiě),但在性能上存在差別,正則3用同義詞對(duì)正則1進(jìn)行擴(kuò)展得到。
生成模型
利用標(biāo)注函數(shù)對(duì)1.3萬(wàn)未標(biāo)注數(shù)據(jù)進(jìn)行標(biāo)注,得到1.3萬(wàn)*3的標(biāo)注矩陣,使用snorkel訓(xùn)練生成模型后得到標(biāo)簽預(yù)測(cè)值。
判別模型
使用1.3萬(wàn)snorkel打標(biāo)數(shù)據(jù)訓(xùn)練分類(lèi)器,在5000測(cè)試數(shù)據(jù)上進(jìn)行效果測(cè)試。
生成模型效果
為了測(cè)試生成模型對(duì)不同標(biāo)注函數(shù)打標(biāo)結(jié)果的擬合效果,我們直接使用3個(gè)標(biāo)注函數(shù)對(duì)測(cè)試樣本進(jìn)行打標(biāo),測(cè)試每個(gè)標(biāo)注函數(shù)的準(zhǔn)確率,再同生成模型輸出的標(biāo)簽預(yù)測(cè)值進(jìn)行比較。
標(biāo)注函數(shù)以及生成模型在測(cè)試樣本上的 f1(率/召回率)如下
可見(jiàn)生成模型會(huì)對(duì)不同標(biāo)注結(jié)果進(jìn)行擬合,取得一個(gè)折中結(jié)果。
snorkel 打標(biāo)效果
為了測(cè)試由snorkel打標(biāo)數(shù)據(jù)訓(xùn)練的判別模型的效果,我們使用另外人工標(biāo)注的1萬(wàn)樣本訓(xùn)練分類(lèi)器作為對(duì)比。效果對(duì)比如下
可見(jiàn)基于snorkel打標(biāo)數(shù)據(jù)訓(xùn)練出來(lái)的模型效果接近人工標(biāo)注的效果。
思考
直接使用正則1可以得到更好的效果,但需要考慮的是這一結(jié)果可能是因?yàn)闇y(cè)試樣本的分布與正則1更接近。不同的標(biāo)注函數(shù)代表了不同的信息,因此增加標(biāo)注函數(shù)可以提升模型的泛化能力。相較于直接使用正則1,更好的做法是提升其他標(biāo)注函數(shù)的效果。
總結(jié)
深度學(xué)習(xí)對(duì)數(shù)據(jù)的依賴,導(dǎo)致數(shù)據(jù)標(biāo)注的重要性不斷提升。snorkel通過(guò)編程標(biāo)注的方式,可以方便快速的進(jìn)行大量的數(shù)據(jù)標(biāo)注,并通過(guò)訓(xùn)練生成模型對(duì)標(biāo)注結(jié)果進(jìn)行擬合,可以給出較為準(zhǔn)確的標(biāo)注結(jié)果。在法律場(chǎng)景的嘗試中可以發(fā)現(xiàn),使用snorkel打標(biāo)數(shù)據(jù)訓(xùn)練的模型,其效果接近人工標(biāo)注的效果。但仍存在很多問(wèn)題,例如如何設(shè)計(jì)標(biāo)注函數(shù)來(lái)得到的效果,基于測(cè)試結(jié)果可以知道,生成模型是擬合出一個(gè)折中的結(jié)果,標(biāo)注函數(shù)設(shè)計(jì)的太差會(huì)導(dǎo)致結(jié)果變差。另外得到標(biāo)注數(shù)據(jù)后如何更好地使用也是需要繼續(xù)研究的方向(參考斯坦福大學(xué)后續(xù)metal項(xiàng)目)。
Reference:
1. A. Ratner, S. H. Bach, H. Ehrenberg, J. Fries, S. Wu, and C. Re ?. Snorkel: Rapid training data creation with weak supervision. VLDB, 11(3):269–282, 2017
2. style="box-sizing: border-box; margin-top: 1em; margin-bottom: 0px; text-indent: 2em; line-height: 1.75em;">3.
企業(yè): 杭州實(shí)在智能科技有限公司
手機(jī): 13868850106
電話: 400-1399-089
地址: 浙江省杭州市余杭街道人工智能小鎮(zhèn)6號(hào)樓6樓