手工標(biāo)記大量數(shù)據(jù)始終是開發(fā)機(jī)器學(xué)習(xí)的一大瓶頸。斯坦福AI Lab的研究人員探討了一種通過(guò)編程方式生成訓(xùn)練數(shù)據(jù)的“弱監(jiān)督”范式,并介紹了他們的開源Snorkel框架。
近年來(lái),機(jī)器學(xué)習(xí)(ML)對(duì)現(xiàn)實(shí)世界的影響越來(lái)越大。這在很大程度上是由于深度學(xué)習(xí)模型的出現(xiàn),使得從業(yè)者可以在基準(zhǔn)數(shù)據(jù)集上獲得state-of-the-art的分?jǐn)?shù),而無(wú)需任何手工特征設(shè)計(jì)。考慮到諸如TensorFlow和PyTorch等多種開源ML框架的可用性,以及大量可用的最先進(jìn)的模型,可以說(shuō),高質(zhì)量的ML模型現(xiàn)在幾乎成為一種商品化資源了。然而,有一個(gè)隱藏的問(wèn)題:這些模型依賴于大量手工標(biāo)記的訓(xùn)練數(shù)據(jù)。
這些手工標(biāo)記的訓(xùn)練集創(chuàng)建起來(lái)既昂貴又耗時(shí)——通常需要幾個(gè)月甚至幾年的時(shí)間、花費(fèi)大量人力來(lái)收集、清理和調(diào)試——尤其是在需要領(lǐng)域?qū)I(yè)知識(shí)的情況下。除此之外,任務(wù)經(jīng)常會(huì)在現(xiàn)實(shí)世界中發(fā)生變化和演變。例如,標(biāo)記指南、粒度或下游用例都經(jīng)常發(fā)生變化,需要重新標(biāo)記(例如,不要只將評(píng)論分類為正面或負(fù)面,還要引入一個(gè)中性類別)。
由于這些原因,從業(yè)者越來(lái)越多地轉(zhuǎn)向一種較弱的監(jiān)管形式,例如利用外部知識(shí)庫(kù)、模式/規(guī)則或其他分類器啟發(fā)式地生成訓(xùn)練數(shù)據(jù)。從本質(zhì)上來(lái)講,這些都是以編程方式生成訓(xùn)練數(shù)據(jù)的方法,或者更簡(jiǎn)潔地說(shuō),編程訓(xùn)練數(shù)據(jù)(programming training data)。
在本文中,我們首先回顧了ML中由標(biāo)記訓(xùn)練數(shù)據(jù)驅(qū)動(dòng)的一些領(lǐng)域,然后描述了我們對(duì)建模和整合各種監(jiān)督源的研究。我們還討論了為大規(guī)模多任務(wù)機(jī)制構(gòu)建數(shù)據(jù)管理系統(tǒng)的設(shè)想,這種系統(tǒng)使用數(shù)十或數(shù)百個(gè)弱監(jiān)督的動(dòng)態(tài)任務(wù),以復(fù)雜、多樣的方式交互。
回顧:如何獲得更多有標(biāo)簽的訓(xùn)練數(shù)據(jù)?
ML中的許多傳統(tǒng)研究方法也同樣受到對(duì)標(biāo)記訓(xùn)練數(shù)據(jù)的需求的推動(dòng)。我們首先將這些方法與弱監(jiān)督方法(weak supervision)區(qū)分開來(lái):弱監(jiān)督是利用來(lái)自主題領(lǐng)域?qū)<?subject matter experts,簡(jiǎn)稱SME)的更高級(jí)別和/或更嘈雜的輸入。
目前主流方法的一個(gè)關(guān)鍵問(wèn)題是,由領(lǐng)域?qū)<抑苯咏o大量數(shù)據(jù)加標(biāo)簽是很昂貴的:例如,為醫(yī)學(xué)成像研究構(gòu)建大型數(shù)據(jù)集更加困難,因?yàn)楦芯可煌派淇漆t(yī)生可不會(huì)接受一點(diǎn)小恩小惠就愿意為你標(biāo)記數(shù)據(jù)。因此,在ML中,許多經(jīng)過(guò)深入研究的工作線都是由于獲取標(biāo)記訓(xùn)練數(shù)據(jù)的瓶頸所致:
在主動(dòng)學(xué)習(xí)(active learning)中,目標(biāo)是讓領(lǐng)域?qū)<覟楣烙?jì)對(duì)模型最有價(jià)值的數(shù)據(jù)點(diǎn)貼標(biāo)簽,從而更有效地利用領(lǐng)域?qū)<摇T跇?biāo)準(zhǔn)的監(jiān)督學(xué)習(xí)設(shè)置中,這意味著選擇要標(biāo)記的新數(shù)據(jù)點(diǎn)。例如,我們可以選擇靠近當(dāng)前模型決策邊界的乳房X線照片,并要求放射科醫(yī)生僅給這些照片進(jìn)行標(biāo)記。但是,我們也可以只要求對(duì)這些數(shù)據(jù)點(diǎn)進(jìn)行較弱的監(jiān)督,在這種情況下,主動(dòng)學(xué)習(xí)與弱監(jiān)督是完美互補(bǔ)的;這方面的例子可以參考(Druck, settle, and McCallum 2009)。
在半監(jiān)督學(xué)習(xí)(semi-supervised learning )設(shè)置中,我們的目標(biāo)是用一個(gè)小的標(biāo)記訓(xùn)練集和一個(gè)更大的未標(biāo)記數(shù)據(jù)集。然后使用關(guān)于平滑度、低維結(jié)構(gòu)或距離度量的假設(shè)來(lái)利用未標(biāo)記數(shù)據(jù)(作為生成模型的一部分,或作為一個(gè)判別模型的正則項(xiàng),或?qū)W習(xí)一個(gè)緊湊的數(shù)據(jù)表示);參考閱讀見(Chapelle, Scholkopf, and Zien 2009)。從廣義上講,半監(jiān)督學(xué)習(xí)的理念不是從SME那里尋求更多輸入,而是利用領(lǐng)域和任務(wù)不可知的假設(shè)來(lái)利用未經(jīng)標(biāo)記的數(shù)據(jù),而這些數(shù)據(jù)通常可以以低成本大量獲得。最近的方法使用生成對(duì)抗網(wǎng)絡(luò)(Salimans et al. 2016)、啟發(fā)式轉(zhuǎn)換模型(Laine and Aila 2016)和其他生成方法來(lái)有效地幫助規(guī)范化決策邊界。
在典型的遷移學(xué)習(xí)(transfer learning )設(shè)置中,目標(biāo)是將一個(gè)或多個(gè)已經(jīng)在不同數(shù)據(jù)集上訓(xùn)練過(guò)的模型應(yīng)用于我們的數(shù)據(jù)集和任務(wù);相關(guān)的綜述見(Pan和Yang 2010)。例如,我們可能已經(jīng)有身體其他部位腫瘤的大型訓(xùn)練集,并在此基礎(chǔ)上訓(xùn)練了分類器,然后希望將其應(yīng)用到我們的乳房X光檢查任務(wù)中。在當(dāng)今的深度學(xué)習(xí)社區(qū)中,一種常見的遷移學(xué)習(xí)方法是在一個(gè)大數(shù)據(jù)集上對(duì)模型進(jìn)行“預(yù)訓(xùn)練”,然后在感興趣的任務(wù)上對(duì)其進(jìn)行“微調(diào)”。另一個(gè)相關(guān)的領(lǐng)域是多任務(wù)學(xué)習(xí)(multi-task learning),其中幾個(gè)任務(wù)是共同學(xué)習(xí)的(Caruna 1993; Augenstein, Vlachos, and Maynard 2015)。
上述范例可能讓我們得以不用向領(lǐng)域?qū)<液献髡邔で箢~外的訓(xùn)練標(biāo)簽。然而,對(duì)某些數(shù)據(jù)進(jìn)行標(biāo)記是不可避免的。如果我們要求他們提供各種類型的更高級(jí)、或不那么精確的監(jiān)督形式,這些形式可以更快、更簡(jiǎn)便地獲取,會(huì)怎么樣呢?例如,如果我們的放射科醫(yī)生可以花一個(gè)下午的時(shí)間來(lái)標(biāo)記一組啟發(fā)式的資源或其他資源,如果處理得當(dāng),這些資源可以有效地替代成千上萬(wàn)的訓(xùn)練標(biāo)簽,那會(huì)怎么樣呢?
將領(lǐng)域知識(shí)注入AI
從歷史的角度來(lái)看,試圖“編程”人工智能(即注入領(lǐng)域知識(shí))并不是什么新鮮想法,但現(xiàn)在提出這個(gè)問(wèn)題的主要新穎之處在于,AI從未像現(xiàn)在這樣強(qiáng)大,同時(shí)在可解釋性和可控制性方面,它還是一個(gè)“黑盒”。
在20世紀(jì)70年代和80年代,AI的重點(diǎn)是專家系統(tǒng),它將來(lái)自領(lǐng)域?qū)<业氖止げ邉澋氖聦?shí)和規(guī)則的知識(shí)庫(kù)結(jié)合起來(lái),并使用推理引擎來(lái)應(yīng)用它們。20世紀(jì)90年代,ML開始作為將知識(shí)集成到AI系統(tǒng)的工具獲得成功,并承諾以強(qiáng)大而靈活的方式從標(biāo)記的訓(xùn)練數(shù)據(jù)自動(dòng)實(shí)現(xiàn)這一點(diǎn)。
經(jīng)典的(非表示學(xué)習(xí))ML方法通常有兩個(gè)領(lǐng)域?qū)<逸斎?a target="_blank">端口。首先,這些模型通常比現(xiàn)代模型的復(fù)雜度要低得多,這意味著可以使用更少的手工標(biāo)記數(shù)據(jù)。其次,這些模型依賴于手工設(shè)計(jì)的特性,這些特性為編碼、修改和與模型的數(shù)據(jù)基本表示形式交互提供了一種直接的方法。然而,特性工程不管在過(guò)去還是現(xiàn)在通常都被認(rèn)為是ML專家的任務(wù),他們通常會(huì)花費(fèi)整個(gè)博士生涯來(lái)為特定的任務(wù)設(shè)計(jì)特性。
進(jìn)入深度學(xué)習(xí)模型:由于它們具有跨許多領(lǐng)域和任務(wù)自動(dòng)學(xué)習(xí)表示的強(qiáng)大能力,它們?cè)诤艽蟪潭壬媳苊饬颂匦怨こ痰娜蝿?wù)。然而,它們大部分是完整的黑盒子,除了標(biāo)記大量的訓(xùn)練集和調(diào)整網(wǎng)絡(luò)架構(gòu)外,普通開發(fā)人員對(duì)它們幾乎沒(méi)有控制權(quán)。在許多意義上,它們代表了舊的專家系統(tǒng)脆弱但易于控制的規(guī)則的對(duì)立面——它們靈活但難以控制。
這使我們從一個(gè)略微不同的角度回到了最初的問(wèn)題:我們?nèi)绾卫梦覀兊念I(lǐng)域知識(shí)或任務(wù)專業(yè)知識(shí)來(lái)編寫現(xiàn)代深度學(xué)習(xí)模型?有沒(méi)有辦法將舊的基于規(guī)則的專家系統(tǒng)的直接性與這些現(xiàn)代ML方法的靈活性和強(qiáng)大功能結(jié)合起來(lái)?
代碼作為監(jiān)督:通過(guò)編程訓(xùn)練ML
Snorkel是我們?yōu)橹С趾吞剿鬟@種與ML的新型交互而構(gòu)建的一個(gè)系統(tǒng)。在Snorkel中,我們不使用手工標(biāo)記的訓(xùn)練數(shù)據(jù),而是要求用戶編寫標(biāo)記函數(shù)(labeling functions, LF),即用于標(biāo)記未標(biāo)記數(shù)據(jù)子集的黑盒代碼片段。
然后,我們可以使用一組這樣的LF來(lái)為ML模型標(biāo)記訓(xùn)練數(shù)據(jù)。因?yàn)闃?biāo)記函數(shù)只是任意的代碼片段,所以它們可以對(duì)任意信號(hào)進(jìn)行編碼:模式、啟發(fā)式、外部數(shù)據(jù)資源、來(lái)自群眾工作者的嘈雜標(biāo)簽、弱分類器等等。而且,作為代碼,我們可以獲得所有其他相關(guān)的好處,比如模塊化、可重用性和可調(diào)試性。例如,如果我們的建模目標(biāo)發(fā)生了變化,我們可以調(diào)整標(biāo)記函數(shù)來(lái)快速適應(yīng)!
一個(gè)問(wèn)題是,標(biāo)記函數(shù)會(huì)產(chǎn)生有噪聲的輸出,這些輸出可能會(huì)重疊和沖突,從而產(chǎn)生不太理想的訓(xùn)練標(biāo)簽。在Snorkel中,我們使用數(shù)據(jù)編程方法對(duì)這些標(biāo)簽進(jìn)行去噪,該方法包括三個(gè)步驟:
1.我們將標(biāo)記函數(shù)應(yīng)用于未標(biāo)記的數(shù)據(jù)。
2.我們使用一個(gè)生成模型來(lái)在沒(méi)有任何標(biāo)記數(shù)據(jù)的條件下學(xué)習(xí)標(biāo)記函數(shù)的準(zhǔn)確性,并相應(yīng)地對(duì)它們的輸出進(jìn)行加權(quán)。我們甚至可以自動(dòng)學(xué)習(xí)它們的關(guān)聯(lián)結(jié)構(gòu)。
3.生成模型輸出一組概率訓(xùn)練標(biāo)簽,我們可以使用這些標(biāo)簽來(lái)訓(xùn)練一個(gè)強(qiáng)大、靈活的判別模型(如深度神經(jīng)網(wǎng)絡(luò)),它將泛化到標(biāo)記函數(shù)表示的信號(hào)之外。
可以認(rèn)為,這整個(gè)pipeline為“編程”ML模型提供了一種簡(jiǎn)單、穩(wěn)健且與模型無(wú)關(guān)的方法!
標(biāo)記函數(shù)(Labeling Functions)
從生物醫(yī)學(xué)文獻(xiàn)中提取結(jié)構(gòu)化信息是最能激勵(lì)我們的應(yīng)用之一:大量有用的信息被有效地鎖在數(shù)百萬(wàn)篇科學(xué)論文的密集非結(jié)構(gòu)化文本中。我們希望用機(jī)器學(xué)習(xí)來(lái)提取這些信息,進(jìn)而使用這些信息來(lái)診斷遺傳性疾病。
考慮這樣一個(gè)任務(wù):從科學(xué)文獻(xiàn)中提取某種化學(xué)-疾病的關(guān)系。我們可能沒(méi)有足夠大的標(biāo)記訓(xùn)練數(shù)據(jù)集來(lái)完成這項(xiàng)任務(wù)。然而,在生物醫(yī)學(xué)領(lǐng)域,存在著豐富的知識(shí)本體、詞典等資源,其中包括各種化學(xué)與疾病名稱數(shù)據(jù)、各種類型的已知化學(xué)-疾病關(guān)系數(shù)據(jù)庫(kù)等,我們可以利用這些資源來(lái)為我們的任務(wù)提供弱監(jiān)督。此外,我們還可以與生物學(xué)領(lǐng)域的合作者一起提出一系列特定于任務(wù)的啟發(fā)式、正則表達(dá)式模式、經(jīng)驗(yàn)法則和負(fù)標(biāo)簽生成策略。
作為一種表示載體的生成模型
在我們的方法中,我們認(rèn)為標(biāo)記函數(shù)隱含地描述了一個(gè)生成模型。讓我們來(lái)快速?gòu)?fù)習(xí)一下:給定數(shù)據(jù)點(diǎn)x,以及我們想要預(yù)測(cè)的未知標(biāo)簽y,在判別方法中,我們直接對(duì)P(y|x)建模,而在生成方法中,我們對(duì)P(x,y) = P(x|y)P(y)建模。在我們的例子中,我們建模一個(gè)訓(xùn)練集標(biāo)記的過(guò)程P(L,y),其中L是由對(duì)象x的標(biāo)記函數(shù)生成的標(biāo)簽,y是對(duì)應(yīng)的(未知的)真實(shí)標(biāo)簽。通過(guò)學(xué)習(xí)生成模型,并直接估計(jì)P(L|y),我們本質(zhì)上是在根據(jù)它們?nèi)绾沃丿B和沖突來(lái)學(xué)習(xí)標(biāo)記函數(shù)的相對(duì)準(zhǔn)確性(注意,我們不需要知道y!)
我們使用這個(gè)估計(jì)的生成模型在標(biāo)簽函數(shù)上訓(xùn)練一個(gè)噪聲感知版本的最終判別模型。為了做到這一點(diǎn),生成模型推斷出訓(xùn)練數(shù)據(jù)的未知標(biāo)簽的概率,然后我們最小化關(guān)于這些概率的判別模型的預(yù)期損失。
估計(jì)這些生成模型的參數(shù)可能非常棘手,特別是當(dāng)使用的標(biāo)記函數(shù)之間存在統(tǒng)計(jì)依賴性時(shí)。在Data Programming: Creating Large Training Sets, Quickly(https://arxiv.org/abs/1605.07723)這篇論文中,我們證明了給定足夠的標(biāo)記函數(shù)的條件下,可以得到與監(jiān)督方法相同的asymptotic scaling。我們還研究了如何在不使用標(biāo)記數(shù)據(jù)的情況下學(xué)習(xí)標(biāo)記函數(shù)之間的相關(guān)性,以及如何顯著提高性能。
Snorkel:一個(gè)開源的框架
在我們最近發(fā)表的關(guān)于Snorkel的論文(https://arxiv.org/abs/1711.10160)中,我們發(fā)現(xiàn)在各種實(shí)際應(yīng)用中,這種與現(xiàn)代ML模型交互的新方法非常有效!包括:
1.在一個(gè)關(guān)于Snorkel的研討會(huì)上,我們進(jìn)行了一項(xiàng)用戶研究,比較了教SMEs使用Snorkel的效率,以及花同樣的時(shí)間進(jìn)行純手工標(biāo)記數(shù)據(jù)的效率。我們發(fā)現(xiàn),使用Snorkel構(gòu)建模型不僅快了2.8倍,而且平均預(yù)測(cè)性能也提高了45.5%。
2.在與斯坦福大學(xué)、美國(guó)退伍軍人事務(wù)部和美國(guó)食品和藥物管理局的研究人員合作的兩個(gè)真實(shí)的文本關(guān)系提取任務(wù),以及其他四個(gè)基準(zhǔn)文本和圖像任務(wù)中,我們發(fā)現(xiàn),與baseline技術(shù)相比,Snorkel平均提高了132%。
3.我們探索了如何對(duì)用戶提供的標(biāo)記函數(shù)建模的新的權(quán)衡空間,從而得到了一個(gè)基于規(guī)則的優(yōu)化器,用于加速迭代開發(fā)周期。
下一步:大規(guī)模多任務(wù)弱監(jiān)管
我們實(shí)驗(yàn)室正在進(jìn)行各種努力,將Snorkel設(shè)想的弱監(jiān)督交互模型擴(kuò)展到其他模式,如格式豐富的數(shù)據(jù)和圖像、使用自然語(yǔ)言的監(jiān)督任務(wù)和自動(dòng)生成標(biāo)簽函數(shù)!
在技術(shù)方面,我們感興趣的是擴(kuò)展Snorkel的核心數(shù)據(jù)編程模型,使其更容易指定具有更高級(jí)別接口(如自然語(yǔ)言)的標(biāo)記函數(shù),以及結(jié)合其他類型的弱監(jiān)督(如數(shù)據(jù)增強(qiáng))。
多任務(wù)學(xué)習(xí)(MTL)場(chǎng)景的普及也引發(fā)了這樣一個(gè)問(wèn)題:當(dāng)嘈雜的、可能相關(guān)的標(biāo)簽源現(xiàn)在要標(biāo)記多個(gè)相關(guān)任務(wù)時(shí)會(huì)發(fā)生什么?我們是否可以通過(guò)對(duì)這些任務(wù)進(jìn)行聯(lián)合建模來(lái)獲益?我們?cè)谝粋€(gè)新的多任務(wù)感知版本的Snorkel,即Snorkel MeTaL中解決了這些問(wèn)題,它可以支持多任務(wù)弱監(jiān)管源,為一個(gè)或多個(gè)相關(guān)任務(wù)提供噪聲標(biāo)簽。
我們考慮的一個(gè)例子是設(shè)置具有不同粒度的標(biāo)簽源。例如,假設(shè)我們打算訓(xùn)練一個(gè)細(xì)粒度的命名實(shí)體識(shí)別(NER)模型來(lái)標(biāo)記特定類型的人和位置,并且我們有一些細(xì)粒度的嘈雜標(biāo)簽,例如標(biāo)記“律師”與“醫(yī)生”,或“銀行”與“醫(yī)院”;以及有些是粗粒度的,例如標(biāo)記“人”與“地點(diǎn)”。通過(guò)將這些資源表示為標(biāo)記不同層次相關(guān)的任務(wù),我們可以聯(lián)合建模它們的準(zhǔn)確性,并重新加權(quán)和組合它們的多任務(wù)標(biāo)簽,從而創(chuàng)建更清晰、智能聚合的多任務(wù)訓(xùn)練數(shù)據(jù),從而提高最終MTL模型的性能。
我們相信,為MTL構(gòu)建數(shù)據(jù)管理系統(tǒng)最激動(dòng)人心的方面將圍繞大規(guī)模多任務(wù)機(jī)制(massivelymulti-task regime),在這種機(jī)制中,數(shù)十到數(shù)百個(gè)弱監(jiān)督(因而高度動(dòng)態(tài))的任務(wù)以復(fù)雜、多樣的方式交互。
雖然迄今為止大多數(shù)MTL工作都考慮最多處理由靜態(tài)手工標(biāo)記訓(xùn)練集定義的少數(shù)幾項(xiàng)任務(wù),但世界正在迅速發(fā)展成組織(無(wú)論是大公司、學(xué)術(shù)實(shí)驗(yàn)室還是在線社區(qū))都要維護(hù)數(shù)以百計(jì)的弱監(jiān)督、快速變化且相互依賴的建模任務(wù)。此外,由于這些任務(wù)是弱監(jiān)督的,開發(fā)人員可以在數(shù)小時(shí)或數(shù)天內(nèi)(而不是數(shù)月或數(shù)年)添加、刪除或更改任務(wù)(即訓(xùn)練集),這可能需要重新訓(xùn)練整個(gè)模型。
在最近的一篇論文The Role of Massively Multi-Task and Weak Supervision in Software 2.0 (http://cidrdb.org/cidr2019/papers/p58-ratner-cidr19.pdf)中,我們概述了針對(duì)上述問(wèn)題的一些初步想法,設(shè)想了一個(gè)大規(guī)模的多任務(wù)設(shè)置,其中MTL模型有效地用作一個(gè)訓(xùn)練由不同開發(fā)人員弱標(biāo)記的數(shù)據(jù)的中央存儲(chǔ)庫(kù),然后組合在一個(gè)中央“mother”多任務(wù)模型中。
不管確切的形式因素是什么,很明顯,MTL技術(shù)在未來(lái)有許多令人興奮的進(jìn)展——不僅是新的模型架構(gòu),而且還與遷移學(xué)習(xí)方法、新的弱監(jiān)督方法、新的軟件開發(fā)和系統(tǒng)范例日益統(tǒng)一。
-
AI
+關(guān)注
關(guān)注
87文章
31429瀏覽量
269832 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8437瀏覽量
132895 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1209瀏覽量
24779
原文標(biāo)題:放棄手工標(biāo)記數(shù)據(jù),斯坦福大學(xué)開發(fā)弱監(jiān)督編程范式Snorkel
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論