宋冠諭 程登 張森 劉威 丁曉雯
關(guān)鍵詞:二分類(lèi);腳本標(biāo)注;BERT預(yù)訓(xùn)練模型;邏輯回歸
1引言
隨著智能語(yǔ)音系統(tǒng)的不斷發(fā)展,用戶可以享受到越來(lái)越多的語(yǔ)音服務(wù),包括語(yǔ)音點(diǎn)歌、語(yǔ)音控制家居、語(yǔ)音查詢(xún)天氣等,而語(yǔ)音系統(tǒng)中用戶說(shuō)法的不斷更新也讓用戶感受到自己彷佛在與真人對(duì)話一般——有問(wèn)必答。關(guān)于用戶說(shuō)法庫(kù)的管理方式,目前的語(yǔ)音系統(tǒng)大多是通過(guò)更新后臺(tái)的說(shuō)法話術(shù)及相應(yīng)詞庫(kù)來(lái)實(shí)現(xiàn)用戶說(shuō)法庫(kù)的迭代。
在互聯(lián)網(wǎng)新詞噴涌而出的當(dāng)下,面對(duì)每日數(shù)以萬(wàn)計(jì)的用戶交互數(shù)據(jù),通過(guò)傳統(tǒng)方式刷新的用戶說(shuō)法庫(kù)并不能及時(shí)滿足用戶需求,從而導(dǎo)致用戶體驗(yàn)下降。因此,為了提高用戶說(shuō)法庫(kù)的刷新效率,便需要通過(guò)搭建算法模型,對(duì)收集的語(yǔ)音日志進(jìn)行二分類(lèi),將無(wú)意義的文本數(shù)據(jù)剔除,僅留下有利于后續(xù)優(yōu)化用戶說(shuō)法的文本數(shù)據(jù),讓服務(wù)方對(duì)輸入的用戶說(shuō)法快速反應(yīng),做出針對(duì)性的話術(shù)優(yōu)化,及時(shí)有效地更新用戶說(shuō)法庫(kù),為用戶提供更人性化、更精準(zhǔn)的語(yǔ)音交互服務(wù)。
2文本分類(lèi)概述
文本分類(lèi)是指用計(jì)算機(jī)對(duì)文本集(或其他實(shí)體或物件)按照一定的分類(lèi)體系或標(biāo)準(zhǔn)進(jìn)行自動(dòng)分類(lèi)標(biāo)記。它從原始文本數(shù)據(jù)中提取相關(guān)特征,并通過(guò)訓(xùn)練文本數(shù)據(jù)和文本特征之間的關(guān)系模型,最終構(gòu)建可預(yù)測(cè)類(lèi)別標(biāo)簽的分類(lèi)模型。
文本分類(lèi)任務(wù)應(yīng)用廣泛,根據(jù)任務(wù)類(lèi)型可以劃分為二分類(lèi)、三分類(lèi)以及多分類(lèi),涉及的任務(wù)包括問(wèn)答、垃圾郵件檢測(cè)、情感分析、新聞分類(lèi)、用戶意圖分類(lèi)、內(nèi)容審核等。文本數(shù)據(jù)可以來(lái)自不同的來(lái)源,如網(wǎng)絡(luò)數(shù)據(jù)、電子郵件、聊天、社交媒體、票據(jù)、保險(xiǎn)索賠、用戶評(píng)論、客戶服務(wù)的問(wèn)題和答案等。
如今,人們通過(guò)發(fā)明各種各樣的方法來(lái)使文本分類(lèi)過(guò)程自動(dòng)化,以產(chǎn)生結(jié)果更可靠、判定更少主觀的結(jié)果,并通過(guò)從文本中定位所需信息,可以用來(lái)幫助提高信息檢索效率并緩解信息過(guò)載的問(wèn)題。谷歌公司AI團(tuán)隊(duì)在2018年發(fā)布了預(yù)訓(xùn)練語(yǔ)言表示模型-BERT, Bidirectional Encoder Representationsfrom Transformers模型[1],并刷新了11項(xiàng)自然語(yǔ)言處理任務(wù)的精度,引起了人們的廣泛重視。與其他語(yǔ)言表征模型不同的是,BERT的設(shè)計(jì)目的是通過(guò)對(duì)標(biāo)記的文本上進(jìn)行預(yù)訓(xùn)練,調(diào)節(jié)各個(gè)層的參數(shù),學(xué)習(xí)上下文表示[2]。通過(guò)大規(guī)模通用語(yǔ)料和預(yù)訓(xùn)練任務(wù)學(xué)習(xí)通用的語(yǔ)言表示,該預(yù)訓(xùn)練模型可以為下游自然語(yǔ)言處理任務(wù)提供豐富的語(yǔ)言表示信息[3]。而Adhkari A等首次將BERT用于文本分類(lèi),通過(guò)對(duì)BERT模型進(jìn)行微調(diào)以獲取分類(lèi)結(jié)果,并證實(shí)BERT在文本分類(lèi)中依然可以取得較好的結(jié)果。
3二分類(lèi)思路
3.1二分類(lèi)框架
本文對(duì)收集的脫敏合法語(yǔ)音文本數(shù)據(jù)先進(jìn)行數(shù)據(jù)預(yù)處理,包括篩除空值、數(shù)據(jù)去重及腳本標(biāo)注等步驟,得到樣本數(shù)據(jù)后進(jìn)行人工標(biāo)注,并通過(guò)BERT預(yù)訓(xùn)練模型完成中文文本語(yǔ)句的處理,提取特征信息并構(gòu)建數(shù)據(jù)集。將數(shù)據(jù)集按一定比例劃分為訓(xùn)練集和測(cè)試集后,傳遞至邏輯回歸模型進(jìn)行模型訓(xùn)練測(cè)試,最后將二分類(lèi)測(cè)試結(jié)果與人工標(biāo)注環(huán)節(jié)的內(nèi)容進(jìn)行對(duì)比分析。具體的二分類(lèi)框架如圖1所示。
3.2數(shù)據(jù)預(yù)處理
本文用于二分類(lèi)分析的脫敏合法文本數(shù)據(jù)來(lái)源于某語(yǔ)音數(shù)據(jù)平臺(tái),共計(jì)10000條文本數(shù)據(jù)。再對(duì)收集的文本數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,清除文本中的空值并去重后,本文針對(duì)用戶在使用特定語(yǔ)音服務(wù)的需求,如語(yǔ)音點(diǎn)歌、語(yǔ)音控制家居等具有定向性名詞的服務(wù),需要將清洗后的文本數(shù)據(jù)做進(jìn)一步的處理,避免此類(lèi)服務(wù)數(shù)據(jù)參與后續(xù)的模型訓(xùn)練測(cè)試中。
在篩除具有定向性名詞的文本數(shù)據(jù)過(guò)程中,由于語(yǔ)音文本的特殊性,即用戶通過(guò)”我想聽(tīng)”“幫我打開(kāi)”等句式發(fā)起特定請(qǐng)求時(shí),這類(lèi)文本基本趨向于“代詞+動(dòng)詞+動(dòng)詞”或“動(dòng)詞+代詞+動(dòng)詞”結(jié)構(gòu),且結(jié)構(gòu)中存在“代詞”等于“我”這一特性。因此,本文基于Python第三方庫(kù)Jieba編寫(xiě)腳本程序,通過(guò)抓取上述結(jié)構(gòu)來(lái)對(duì)文本數(shù)據(jù)進(jìn)行標(biāo)注,并提取標(biāo)注的文本數(shù)據(jù)中“代詞+動(dòng)詞+動(dòng)詞”或“動(dòng)詞+代詞+動(dòng)詞”結(jié)構(gòu)后接的文本信息,作為歌曲名、應(yīng)用名等語(yǔ)音系統(tǒng)詞庫(kù)的更新語(yǔ)料。
在完成腳本標(biāo)注的步驟后,本文對(duì)剩余的文本進(jìn)行人工標(biāo)注,用于后續(xù)驗(yàn)證二分類(lèi)方法的測(cè)試結(jié)果。針對(duì)文本信息“有/無(wú)意義”類(lèi)別的區(qū)分,本文基于語(yǔ)音業(yè)務(wù)使用場(chǎng)景,將句式結(jié)構(gòu)完整、語(yǔ)義明晰等語(yǔ)音文本則劃分至“有意義”的范疇中,而識(shí)別錯(cuò)誤、缺詞斷句等語(yǔ)音文本劃分至“無(wú)意義”的范疇中。在完成上述處理之后,數(shù)據(jù)預(yù)處理工作告一段落。
3.3模型選擇
本文用于語(yǔ)音文本二分類(lèi)的模型由兩部分組成:BERT預(yù)訓(xùn)練模型中的BERT-base Chinese模型以及基本的邏輯回歸模型。其中,BERT-base Chinese模型為BERT預(yù)訓(xùn)練模型中支持中文的單語(yǔ)言模型,盡管目前BERT模型的多語(yǔ)言模型可供研究維基百科上語(yǔ)料最大的前100種語(yǔ)言(包含中文),但根據(jù)谷歌AI團(tuán)隊(duì)的測(cè)試驗(yàn)證,對(duì)于中文而言,相較于MultilingualBERT-Base模型,Chinese-only BERT-Base模型訓(xùn)練的中文模型的結(jié)果要好上3%。因此,考慮到本文分析的文本數(shù)據(jù)僅限中文,采用中文的單語(yǔ)言模型會(huì)產(chǎn)生更有針對(duì)性的結(jié)果。
在BERT-base Chinese模型完成文本處理后,本文選用邏輯回歸模型來(lái)接收處理結(jié)果。邏輯回歸模型雖然被稱(chēng)為回歸模型,但實(shí)際上是分類(lèi)模型,并常用于二分類(lèi)任務(wù)中,其不僅可以預(yù)測(cè)出相關(guān)類(lèi)別,還可得到近似概率的預(yù)測(cè),可以滿足本文的中文文本二分類(lèi)處理任務(wù)需求。
3.4模型參數(shù)處理
在將文本數(shù)據(jù)導(dǎo)人BERT-base Chinese預(yù)訓(xùn)練模型之前,需要進(jìn)行進(jìn)一步的預(yù)處理,預(yù)訓(xùn)練模型一般有三種輸入,分別是input_ids(表示輸入文本的tokenID)、token_type_ids(表示token屬于第一句還是第二句)、attention_mask(表示需要屏蔽的token)。
在數(shù)據(jù)預(yù)處理的過(guò)程中,本文是利用tokenizer這一可選的BERT數(shù)據(jù)預(yù)處理的格式化工具,將文本數(shù)據(jù)處理成BERT的輸人格式,即讓每一個(gè)句子都變成對(duì)應(yīng)的ID列表。然而.由于每個(gè)句子本身的長(zhǎng)度都不一致,為了便于后續(xù)的BERT模型處理,需要對(duì)轉(zhuǎn)換后的ID列表填充數(shù)據(jù)token 0,統(tǒng)一所有向量規(guī)格,生成輸入張量input_ids?;跀?shù)據(jù)填充,句子原本的編碼發(fā)生了改變,此時(shí)不能將輸入張量直接導(dǎo)人至預(yù)訓(xùn)練模型中,需要生成attention—mask來(lái)告知預(yù)訓(xùn)練模型來(lái)屏蔽填充的token 0。此外,本文處理的文本數(shù)據(jù)均為單句文本,不存在句對(duì)任務(wù)處理,故無(wú)須生成token_type_ids。
在完成上述預(yù)處理后,將input_ids和attention—mask輸入至預(yù)訓(xùn)練模型中,以生成隱藏層來(lái)保留輸出結(jié)果。從輸出結(jié)果來(lái)看,基于BERT模型的設(shè)計(jì)原理,隱藏層實(shí)際上是除了每個(gè)單詞的token之外,還會(huì)在輸入的每一個(gè)序列開(kāi)頭都插入特定的分類(lèi)token([CLS])的三維張量,其中該分類(lèi)token([CLS])對(duì)應(yīng)的最后一個(gè)隱藏層輸出被用來(lái)起到聚集整個(gè)序列表征信息的作用。因此,在處理文本分類(lèi)問(wèn)題的任務(wù)時(shí),本文會(huì)忽略第一個(gè)向量之外的其他內(nèi)容(第一個(gè)向量和token([ CLS])相關(guān)),把每個(gè)句子的第一個(gè)向量提取出來(lái),通過(guò)定義預(yù)訓(xùn)練模型后接的神經(jīng)網(wǎng)絡(luò),根據(jù)BERT默認(rèn)的隱藏單元數(shù)是768,表示二分類(lèi)的輸出單元設(shè)定為2后,輸入到線性層映射為二維張量,并把這個(gè)二維張量作為邏輯回歸模型的輸入。
3.5模型訓(xùn)練測(cè)試
在完成BERT-base Chinese預(yù)訓(xùn)練模型的參數(shù)處理,獲得輸出結(jié)果的二維張量后,便可以將其作為輸入開(kāi)始對(duì)邏輯回歸模型進(jìn)行訓(xùn)練。針對(duì)邏輯回歸模型,可以直接采用Scikit Leam庫(kù)的默認(rèn)參數(shù)(C=1.0)進(jìn)行訓(xùn)練。對(duì)二維張量的數(shù)據(jù)集進(jìn)行劃分,按照4:1的比例生成訓(xùn)練集和測(cè)試集后投入邏輯回歸模型中進(jìn)行訓(xùn)練測(cè)試,最后得出模型的準(zhǔn)確率為76.40-/0。
由于參數(shù)C是正則化系數(shù)的倒數(shù),其值越大,正則項(xiàng)的權(quán)重越小,模型越容易過(guò)擬合。為了獲取更合適的正則化參數(shù),本文將上述劃分的訓(xùn)練集投入Scikit Leam庫(kù)中的網(wǎng)格搜索模型(Grid Search Model)進(jìn)行搜索,最終得到C= 5.26的最佳搜索結(jié)果。將該參數(shù)重新投入邏輯回歸模型中進(jìn)行訓(xùn)練測(cè)試,得出模型的準(zhǔn)確率為81 .2%。
在這個(gè)二分類(lèi)任務(wù)中,后續(xù)還可以通過(guò)進(jìn)一步微調(diào)BERT-base Chinese預(yù)訓(xùn)練模型,定義優(yōu)化器和損失函數(shù)來(lái)對(duì)模型進(jìn)行不斷地優(yōu)化迭代,提高最終模型的準(zhǔn)確率。同時(shí),由于在谷歌AI團(tuán)隊(duì)發(fā)布的BERT-base Chinese模型中中文文本是以字為粒度進(jìn)行切分,并沒(méi)有考慮中文需要分詞的特點(diǎn),基于字粒度的模型訓(xùn)練將損失不少的特征信息,因此為提高中文文本二分類(lèi)模型的準(zhǔn)確率,還需要深入研究中文分詞在BERT模型中的應(yīng)用。
4結(jié)束語(yǔ)
語(yǔ)音文本的分類(lèi)數(shù)據(jù)可以為平臺(tái)運(yùn)維人員深入了解用戶的需求提供重要的參考信息,其關(guān)乎語(yǔ)音云平臺(tái)的服務(wù)質(zhì)量。本文基于BERT中的BERT-baseChinese預(yù)訓(xùn)練模型,進(jìn)行了中文語(yǔ)音文本分類(lèi)任務(wù)的研究測(cè)試,通過(guò)腳本標(biāo)注來(lái)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,并使用邏輯回歸模型進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,基于二分類(lèi)方法的模型準(zhǔn)確率達(dá)到令人滿意的測(cè)試效果,并存在進(jìn)一步優(yōu)化提高的可能性。