王悅林
摘要:人工智能應(yīng)用最廣的兩個(gè)領(lǐng)域就是計(jì)算機(jī)視覺(CV)和自然語言處理(NLP)。計(jì)算機(jī)視覺的高速發(fā)展期是2012至2017年,目前研究的重點(diǎn)已經(jīng)從靜態(tài)的圖片進(jìn)入動(dòng)態(tài)的視頻領(lǐng)域,而自然語言處理的發(fā)展相對(duì)較慢,從2018年起,以BERT等句子級(jí)別預(yù)訓(xùn)練模型為代表,才進(jìn)入高速發(fā)展期。
自然語言處理領(lǐng)域的應(yīng)用很豐富,例如語言翻譯、情感分析、客服機(jī)器人、新聞生成、輿情監(jiān)控、文檔歸類、簡(jiǎn)歷篩選等等。而從技術(shù)的角度,最多的應(yīng)用就是文本分類,包括多元分類、多級(jí)別分類、多標(biāo)簽分類等。
針對(duì)層出不窮的文本分類需求,有必要設(shè)計(jì)出分類專用引擎,以提高效率和降低成本,并增強(qiáng)復(fù)用性。
一、整體設(shè)計(jì)
對(duì)于一個(gè)文本分類項(xiàng)目,在架構(gòu)上分為數(shù)據(jù)處理、文本分類、文本挖掘和結(jié)果展現(xiàn)四個(gè)部分。本文著重在分類引擎的設(shè)計(jì)上。
引擎需要考慮的因素很多,基于目前的技術(shù)發(fā)展,以下幾點(diǎn)需要重點(diǎn)考慮并解決:
1、如何選擇基礎(chǔ)算法
2、如何減少標(biāo)簽數(shù)據(jù)量
3、如何處理訓(xùn)練數(shù)據(jù)的不均衡
4、如何處理多達(dá)幾十上百的類別
二、NLP基礎(chǔ)算法選擇
從2013年Word2Vec開始,可以選擇的常用基礎(chǔ)算法有GloVe,F(xiàn)astText,ELMo,GPT1.0,BERT,Bert as a service,MT-DNN,GPT2.0等等,最近一段時(shí)間發(fā)展的速度令人咋舌。具體如何進(jìn)行選擇呢?
首先要選擇句子級(jí)別的算法,因?yàn)樵~級(jí)別算法沒有考慮詞之間的關(guān)系和語序,不僅處理不了語義組合、多義詞、轉(zhuǎn)折、依賴等各種語言學(xué)上的語法現(xiàn)象,連簡(jiǎn)單的語序也處理不了,我欠你一百萬和你欠我一百萬這種在語義上/現(xiàn)實(shí)社會(huì)中巨大的差異被忽視,語言處理能力較低。
其次要選擇預(yù)訓(xùn)練模型,而不是從零開始構(gòu)建。動(dòng)輒幾億參數(shù)的預(yù)訓(xùn)練模型以多層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和巨大的訓(xùn)練數(shù)據(jù)量,已經(jīng)學(xué)會(huì)了大量的語言知識(shí),具有了超凡的語言理解能力。而且這類模型很多公司從成本角度是無法自己訓(xùn)練的,站在巨人的肩膀上會(huì)是明智的選擇。
再次,從實(shí)際應(yīng)用的角度,算法是否易用,網(wǎng)絡(luò)資料是否齊全,也是要考慮的因素。因此上述的各種選擇中,基于Transformer/Self-Attention,并能提供下游任務(wù)接口的BERT就成為不讓之選。
三、令人頭痛的數(shù)據(jù)標(biāo)注
AI目前整體上還是處于弱人工智能階段,簡(jiǎn)單說就是有人工才有智能,只有人類教會(huì)機(jī)器/算法如何工作,機(jī)器/算法才能分辨出不同的類別。這個(gè)教的具體動(dòng)作,就是提供打好標(biāo)簽的數(shù)據(jù)來訓(xùn)練模型。大家常說的數(shù)據(jù)是基礎(chǔ),數(shù)據(jù)是燃料,數(shù)據(jù)是動(dòng)力都是這個(gè)意思。
而給數(shù)據(jù)打標(biāo)簽的工作,也是目前人工智能領(lǐng)域的痛點(diǎn)之一,還催生了專門做數(shù)據(jù)標(biāo)注的公司。常有人抱怨人工智能的項(xiàng)目一半以上的時(shí)間和費(fèi)用都投入到了做數(shù)據(jù)標(biāo)注上。
那么有沒有技術(shù)上的方法來減少這種痛苦呢?有,那就是主動(dòng)學(xué)習(xí)(Active Learning),其目的不是不再標(biāo)注數(shù)據(jù),而是大大減少標(biāo)注的數(shù)據(jù)量。其基本的原理是,通過人工智能的方法來主動(dòng)選擇出標(biāo)注意義更大的數(shù)據(jù),以達(dá)到用一半的數(shù)據(jù)標(biāo)注就能訓(xùn)練出滿意效果的目的。
此方法的理論依據(jù)是標(biāo)注數(shù)據(jù)量和模型正確率之間的關(guān)系。人們往往以為隨著數(shù)據(jù)量的增長(zhǎng),準(zhǔn)確率會(huì)持續(xù)提升,其關(guān)系是向右上方升起的一根直線,即線性關(guān)系。而根據(jù)實(shí)際試驗(yàn),兩者的關(guān)系是一條弧線,在初始階段隨著標(biāo)注數(shù)據(jù)量的增長(zhǎng),多次訓(xùn)練的準(zhǔn)確率會(huì)大幅提升,之后增幅就逐漸減小,效果越來越不明顯。
如何主動(dòng)學(xué)習(xí)呢?方法很多,使用算法和信息熵迭代操作會(huì)大大提升效率。具體步驟說明如下:
第一個(gè)啟動(dòng)模型采用遷移學(xué)習(xí)的思路,選擇其它項(xiàng)目的成熟模型作為啟動(dòng)點(diǎn)。由于每個(gè)項(xiàng)目的具體分類不同,模型不能重用,但舉例來說,對(duì)洗衣機(jī)的負(fù)面評(píng)價(jià)判別模型,用在冰箱評(píng)價(jià)上也是一個(gè)好的起點(diǎn),比起從零開始構(gòu)造模型,會(huì)大大減輕工作量和縮短項(xiàng)目時(shí)間。
以遷移過來的模型作為初始模型,對(duì)全部沒有標(biāo)注的數(shù)據(jù)直接分類。由于沒有標(biāo)注,分類結(jié)果無法判斷對(duì)錯(cuò),但是每一行數(shù)據(jù)的分類結(jié)果可以生成總和為一的概率分布,而排在第一位的概率數(shù)字代表了模型對(duì)于分類的信心。概率越高,確定性越大,則信息熵越小,而我們需要挑選出來的是信息熵最大的那一批數(shù)據(jù),對(duì)其進(jìn)行標(biāo)注。如果最難分類的數(shù)據(jù)都被成功歸屬到了正確的類別,那么其它數(shù)據(jù)就更容易分類了。這樣標(biāo)注的數(shù)據(jù)就不再是隨機(jī)進(jìn)行選擇,而是被精準(zhǔn)定位,從而大大降低標(biāo)注量。
用第一批標(biāo)注的數(shù)據(jù)來訓(xùn)練出第一個(gè)真實(shí)模型,而用此模型來挑選出下一批需要標(biāo)注的數(shù)據(jù),多次重復(fù)此過程,直至準(zhǔn)確率曲線不再升高,或升高的幅度不值得再投入人員和時(shí)間進(jìn)行標(biāo)注,就結(jié)束模型訓(xùn)練,完成分類任務(wù)。
四、如何處理數(shù)據(jù)的不均衡
在進(jìn)行文本分類時(shí),訓(xùn)練和測(cè)試數(shù)據(jù)量對(duì)于不同的類別往往并不均衡,有的類別多,有的類別少。這會(huì)導(dǎo)致訓(xùn)練出來的模型對(duì)于不同的類別區(qū)分的能力不同,對(duì)于數(shù)據(jù)量較大的類效果較好,也會(huì)把很多其它類數(shù)據(jù)誤判為這個(gè)類別。其技術(shù)原因是模型訓(xùn)練時(shí)的唯一目的是最小化損失函數(shù),而數(shù)據(jù)量較大類的數(shù)據(jù)對(duì)損失函數(shù)影響更大。
如果已知測(cè)試數(shù)據(jù)集的數(shù)據(jù)分布,并且確定真實(shí)數(shù)據(jù)集與測(cè)試數(shù)據(jù)集的分布相同,那么可以按此分布來調(diào)整訓(xùn)練數(shù)據(jù)。如果無法得知真實(shí)數(shù)據(jù)的分布,則應(yīng)該訓(xùn)練出對(duì)每一個(gè)類別都有相同分辨能力的模型,因此需要處理數(shù)據(jù)的不均衡問題。
處理的技術(shù)方法中最常用的是上采樣和下采樣,即對(duì)超過平均數(shù)的類減少數(shù)據(jù)量,對(duì)不足平均數(shù)的類增加數(shù)據(jù)量。下采樣時(shí)隨機(jī)減少即可,上采樣時(shí)對(duì)于文本可以用翻譯軟件進(jìn)行多種語言間的來回翻譯,或者直接拷貝數(shù)據(jù)成多份,再隨機(jī)打亂。
那么除了數(shù)據(jù)的上下采樣以外,還有沒有其它的方法呢?既然技術(shù)原因是由于損失函數(shù)僅僅按照每類訓(xùn)練數(shù)據(jù)量的大小對(duì)待不同類別,那么完全可以調(diào)整損失函數(shù),按照類別數(shù)量差異區(qū)別對(duì)待。其具體方法有靜態(tài)調(diào)整和動(dòng)態(tài)調(diào)整兩種。
科學(xué)與技術(shù)2018年16期