于偉杰,楊文忠,任秋如
(新疆大學(xué)信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830046)
近年來中國互聯(lián)網(wǎng)高速發(fā)展,APP和網(wǎng)站數(shù)量都有了前所未有的提升,智能手機(jī)的快速普及使得普通人都可以通過手機(jī)在網(wǎng)絡(luò)上表達(dá)自己的思想,讓生產(chǎn)內(nèi)容從原先的陽春白雪走向了下里巴人,每個(gè)人都是內(nèi)容的生產(chǎn)者,因此生產(chǎn)了大量數(shù)據(jù),信息爆炸的時(shí)代就此來臨.但是從海量的爆炸信息中挖掘數(shù)據(jù)之間隱藏的關(guān)系,是許多科研人員密切關(guān)心的問題,探索過程中誕生了許多知名技術(shù),用戶畫像便是其中的佼佼者.交互設(shè)計(jì)之父曾經(jīng)說過:“用戶畫像是真實(shí)用戶的虛擬表示,是基于用戶的真實(shí)數(shù)據(jù)挖掘和構(gòu)建的目標(biāo)用戶模型.”[1]根據(jù)目標(biāo)用戶畫像,企業(yè)能夠精準(zhǔn)營銷、精準(zhǔn)投放;設(shè)計(jì)師能夠設(shè)計(jì)和優(yōu)化產(chǎn)品;分析師能夠豐富和充實(shí)行業(yè)報(bào)告.[2-3]
構(gòu)建用戶畫像模型的方法中,目前主流的方法是給用戶貼標(biāo)簽,用具體的屬性詞來描述用戶屬性和興趣愛好,這時(shí)的關(guān)鍵詞可以采用多種方式來生成,可以是機(jī)器學(xué)習(xí)模型、神經(jīng)網(wǎng)絡(luò)模型和規(guī)則分析.例如,Cha等[4]在計(jì)算影響力的方式上進(jìn)行了改進(jìn),改進(jìn)的具體內(nèi)容是將更多的內(nèi)容加入到影響力因素上,比如推特用戶的用戶關(guān)注數(shù)、被轉(zhuǎn)發(fā)和點(diǎn)贊的次數(shù),從而分析用戶的行為,得出用戶的屬性和興趣愛好.經(jīng)過對比實(shí)驗(yàn)證明,與單純使用行為特征的單一特征算法相比,引入更多特征Cha的實(shí)驗(yàn)結(jié)果更好.但是由于用戶行為的復(fù)雜性和多樣性,再加上推特中含有大量的雜質(zhì)信息,因此模型效果還有改進(jìn)的空間.費(fèi)鵬等[5]在之前研究的基礎(chǔ)上,融合多視角,提出了新的建模框架,該框架使用兩種方式對用戶進(jìn)行建模,從而構(gòu)建了多源特征,在將數(shù)據(jù)維度提高后,為了避免“維度詛咒”問題,引入了雙層Xgboost(Extremegradientboosting)的多視角模型,從而較好地解決了問題.由于數(shù)據(jù)的不連貫性,盡管該方法從多角度構(gòu)建了多元特征,但是沒有使用數(shù)據(jù)中的深層語義信息.神經(jīng)網(wǎng)絡(luò)的大熱,使得NLP相關(guān)人員也開始使用神經(jīng)網(wǎng)絡(luò)提取數(shù)據(jù)中的深層語義信息.Collobert等[6-7]是最早開始研究將CNN引入到NLP任務(wù)中的,經(jīng)過測試,實(shí)驗(yàn)結(jié)果有了明顯提升,許多學(xué)者接連在文檔分類任務(wù)中使用CNN[8-10].例如李恒超等[11]就在建模過程中引入了CNN的算法,從而提出新的框架.框架分為二級:在第一級框架中,引入淺層神經(jīng)網(wǎng)絡(luò)模型與機(jī)器學(xué)習(xí)算法對文本數(shù)據(jù)進(jìn)行處理;在第二級框架中,對于多個(gè)Xgboost模型引入Stacking進(jìn)行融合.實(shí)驗(yàn)結(jié)果數(shù)據(jù)顯示,該框架的實(shí)驗(yàn)結(jié)果相較對比實(shí)驗(yàn)有明顯地提升,但是缺點(diǎn)也很明顯,就是文章使用的是淺層神經(jīng)網(wǎng)絡(luò),無法獲取文本的深層語義信息,對于具有強(qiáng)語義關(guān)聯(lián)的文本實(shí)驗(yàn)結(jié)果較差.對此,陳巧紅等[12]在分析了缺點(diǎn)之后,提出了一種基于集成學(xué)習(xí)框架的用戶畫像方法.該方法開始探索對不同長度的用戶文本采用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的算法,取得了良好的效果;但是語義編碼模塊使用的是基礎(chǔ)的BERT方法,文字按照字劃分,失去中文獨(dú)特的詞語特性.
本文對文獻(xiàn)[12]提出的集成學(xué)習(xí)框架進(jìn)行改善和優(yōu)化,提出了一種基于全詞BERT的集成用戶畫像方法,提升其泛化和分類能力.對不同特征采用不同分類器進(jìn)行處理,用改進(jìn)的集成算法決定集成的權(quán)重參數(shù),取得最終的輸出結(jié)果.
本文提出了一種基于全詞BERT的集成用戶畫像方法來給用戶“貼標(biāo)簽”.如圖1所示,將用戶的不同形式文本輸入模型后,多個(gè)分類器會(huì)對文本進(jìn)行分類,使用改進(jìn)后的集成算法確定各分類器的權(quán)重,最后投票確定結(jié)果.具體流程如下:
圖1 集成算法結(jié)構(gòu)圖
步驟1 輸入不同形式的文本數(shù)據(jù)集并進(jìn)行預(yù)處理.
步驟2 對預(yù)處理后的數(shù)據(jù)集,一方面采用TF-IDF提取用戶用詞習(xí)慣特征,將特征分別輸入LR模型、SVM模型;另一方面,使用全詞BERT模型挖掘文本的深層語義信息.
步驟3 根據(jù)各個(gè)分類器的預(yù)測結(jié)果輸入到改進(jìn)的集成學(xué)習(xí)加權(quán)投票分類器中,得出最終分類結(jié)果.
TFIDF[13]作為文本特征提取方法,核心是評估數(shù)據(jù)集中每個(gè)字詞的重要性.該方法認(rèn)為字詞的重要性與文檔中出現(xiàn)的次數(shù)和語料庫中出現(xiàn)的頻率有關(guān),具體來說,跟前者成正比,而跟后者成反比.[14]
TFIDF=TF×IDF#.
(1)
TF是單詞termfrequency的縮寫,單詞的漢語解釋是詞頻,具體來說就是詞匯在文檔出現(xiàn)的次數(shù),IDF是單詞inversedocumentfrequency的縮寫,漢語解釋的意思是逆文檔頻率,主要作用是進(jìn)行文檔的區(qū)分,計(jì)算流程是統(tǒng)計(jì)具有詞匯t的文檔數(shù)量,數(shù)量與IDF的值成反比,而IDF的值代表了辨識性和類別區(qū)分能力.
TFIDF的計(jì)算公式為
(2)
其中:TF(w,d)代表詞匯w在文檔d中出現(xiàn)的次數(shù),N代表數(shù)據(jù)集中的文檔個(gè)數(shù),DF(W)代表整個(gè)數(shù)據(jù)集中包含詞匯w的文檔個(gè)數(shù).
本文集成學(xué)習(xí)模塊使用了兩種分類算法,兩種分類算法的原理及缺點(diǎn)見表1.
表1 兩種分類算法對比
Transformer[15]是在encoder-decoder框架上做的改進(jìn),結(jié)構(gòu)分解后主要包括編碼和解碼兩大部分.編碼部分中編碼器的數(shù)量可以根據(jù)具體實(shí)驗(yàn)中數(shù)據(jù)集的大小調(diào)整,但是結(jié)構(gòu)必須相同,且不共享參數(shù).解碼部分的解碼器數(shù)量也是可以調(diào)整的,但必須與編碼器的數(shù)量相等.兩者結(jié)構(gòu)比較相似,相同的部分是都有自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層,但是不同之處也有,比如相較于編碼器,解碼器多了一層編碼-解碼注意力層,工作流程是先對輸入序列進(jìn)行處理,生成向量列表,向量列表中包含位置信息,然后用自注意力層對向量進(jìn)行處理,處理后每個(gè)向量中的每個(gè)句子的每個(gè)字都包含該句的全部信息,然后向量就可以傳給前饋神經(jīng)網(wǎng)絡(luò)層,一個(gè)編碼器的流程就完成了,經(jīng)過全部編碼器處理完畢后,會(huì)將其輸出到解碼器中,解碼階段重復(fù)進(jìn)行處理,直到到達(dá)一個(gè)特殊的終止符號完成.由于在編碼和解碼的過程中大量使用了self-attention,能夠?qū)崿F(xiàn)快速并行,相較于原先使用RNN作為特征提取器,訓(xùn)練速度有了較大提升,并且可以擴(kuò)展神經(jīng)網(wǎng)絡(luò)的深度,從而充分利用DNN模型的特性,提升模型訓(xùn)練的準(zhǔn)確率.編碼器中的TransformerBlock如圖2所示.
圖2 Transformer編碼單元結(jié)構(gòu)圖
由于中文的一詞多義性,因此目前有大量的多義詞在日常和書寫的中文數(shù)據(jù)語料中被廣泛使用.如“我今天把黑色墨水用完了,需要買一瓶新的”與“他肚子里有很多墨水,出版了許多優(yōu)秀為散文和詩詞”.在這兩個(gè)句子中,“墨水”一詞雖然都是同一個(gè),但是深層語義卻不同,而且傳統(tǒng)的詞向量方法是無法表示詞的深層語義,也無法表示詞的多義性,因此本文改用的全詞BERT[16]模型,從而能夠較好地解決詞的多義性問題.
BERT模型訓(xùn)練過程如圖3所示,圖3中Ei是指的單個(gè)字或詞,Trm代表上述的Transformer編碼器,Ti指的是最終計(jì)算得出的隱藏層.根據(jù)之前Transformer的原理簡述,Transformer可以得到輸入的句子序列中的每一個(gè)字,并且由于采用了不同的訓(xùn)練方式,即雙向,因此在訓(xùn)練出的向量中,任意一個(gè)字向量都包含了該句的信息.
圖3 BERT訓(xùn)練過程圖
不過由于原先發(fā)布的BERT-base(Chinese)是由谷歌進(jìn)行訓(xùn)練的,因此沒有考慮中文特有的需要,中文不是以詞為粒度,而是以字為粒度進(jìn)行切分,因此對中文的任務(wù)效果還能有進(jìn)一步的提升.因此在2019年5月31日,針對原先訓(xùn)練存在的不足,谷歌對BERT進(jìn)行了改進(jìn),發(fā)布了BERT的升級版本技術(shù)whole word masking(wwm),該技術(shù)對訓(xùn)練樣本的生成方式進(jìn)行了改動(dòng),將字為粒度改成以詞為粒度.在采用wwm技術(shù)之后,經(jīng)實(shí)驗(yàn)證明后,全詞mask比字粒度的BERT在中文任務(wù)上有更好的表現(xiàn)[17].
在本文使用的預(yù)處理模型是哈爾濱工業(yè)大學(xué)公布的基于全詞遮罩(whole word masking)技術(shù)的中文與訓(xùn)練模型BERT-wwm-ext[18].
為了發(fā)揮使用關(guān)鍵詞構(gòu)建特征的兩種分類方法的和提取語義深層信息的全詞BERT的優(yōu)勢并進(jìn)一步提高分類的準(zhǔn)確性,通過對分類算法的對比,在得到算法的分類結(jié)果后,采用多分類器的集合進(jìn)行多數(shù)表決.投票主要分為硬投票和軟投票,硬投票就是最簡單的少數(shù)服從多數(shù)在投票算法中的應(yīng)用.而軟投票,也被稱為加權(quán)投票算法,通過輸入權(quán)重為不同的分類器設(shè)置不同的權(quán)重,從而區(qū)分不同分類器的重要性.而權(quán)重的大小基本取決于每個(gè)基分類器的正確率,得到每個(gè)類的加權(quán)平均值之后,選擇值最大作為分類結(jié)果[19].
偽代碼如下:
輸入:訓(xùn)練集D={(x1,y1),(x2,y2),…,(xm,ym)};
基學(xué)習(xí)器L1,L2,…,L4;
過程:Step2:for 1,2,…,4 do,
Step3:ht=Lt(x),
Step:end for;
Step6:H(x)=C;
梯度上升算法是一種優(yōu)化算法,與梯度下降算法相反,該算法優(yōu)化的目的是求目標(biāo)最大值,不過與梯度下降的許多流程是相似的,比如說優(yōu)化的路線仍然是函數(shù)的梯度方向,只不過是把更新中的減號變成了加號.軟投票作為一種傳統(tǒng)的加權(quán)投票算法,雖然相較硬投票的少數(shù)服從多數(shù)方法考慮了每個(gè)分類器的權(quán)重,但是具體權(quán)重的計(jì)算方法仍有改善空間.因此在本文中,對權(quán)重選擇方法進(jìn)行了改進(jìn),使用各基分類器的5次交叉驗(yàn)證的正確率(ACC)結(jié)果組成訓(xùn)練集,為梯度上升算法的輸入,將步長設(shè)置為0.001,可以快速得到各基分類器加權(quán)投票的權(quán)重.
θi的更新公式為
其中α為步長.
梯度上升的偽代碼:
輸入:多分類器輸出結(jié)果集D={(x1,y1),(x2,y2),…,(xm,ym)};
過程:step1:初始化所有θ=1,α=0.001,
Step2:for 1,2,…,mdo,
Step6:end for;
輸出:θi.
本文實(shí)驗(yàn)(1)采用的是第七屆CCF大數(shù)據(jù)與計(jì)算智能大賽中有關(guān)搜狗用戶畫像比賽的數(shù)據(jù),數(shù)據(jù)主體部分是用戶查詢數(shù)據(jù);實(shí)驗(yàn)(2)采用的是2016smp_cup微博用戶畫像大賽提供的數(shù)據(jù),數(shù)據(jù)主體部分是微博內(nèi)容.由于這兩個(gè)數(shù)據(jù)集的數(shù)據(jù)較為不平衡,使用爬蟲數(shù)據(jù)進(jìn)行補(bǔ)充,同時(shí)采用人工對數(shù)據(jù)進(jìn)行了干預(yù),讓每個(gè)種類的數(shù)據(jù)的數(shù)量為10 000.為了實(shí)驗(yàn)結(jié)果具有對比性,采用相同的分類標(biāo)簽,即用戶的性別、年齡.實(shí)驗(yàn)數(shù)據(jù)舉例見表2.
表2 實(shí)驗(yàn)數(shù)據(jù)舉例
在本文的實(shí)驗(yàn)數(shù)據(jù)中采用性別、年齡這兩個(gè)標(biāo)簽來進(jìn)行結(jié)果驗(yàn)證,性別對應(yīng)的分類是二分類,而年齡對應(yīng)的分類是六分類.其中對年齡標(biāo)簽采取數(shù)據(jù)分享技術(shù)[20],含義是將年齡分段,以段作為年齡分類的類別.最后用準(zhǔn)確率對結(jié)果好壞進(jìn)行判斷,準(zhǔn)確率來源于混淆矩陣,見表3.
表3 分類結(jié)果混淆矩陣
準(zhǔn)確率表示預(yù)測該類別正確的數(shù)量占總樣本數(shù)目的比例,公式為
(4)
為了驗(yàn)證所提出方法的有效性,本文采用消融實(shí)驗(yàn)進(jìn)行驗(yàn)證,即分別使用了邏輯回歸、支持向量機(jī)、全詞BERT模型和本文方法進(jìn)行對比實(shí)驗(yàn).
在實(shí)驗(yàn)過程中,為了選擇最佳參數(shù),使用控制變量法進(jìn)行參數(shù)選擇,控制變量法的做法是在選擇最優(yōu)參數(shù)的過程中,控制其他所有參數(shù)保持不變.傳統(tǒng)機(jī)器學(xué)習(xí)方法采取5次交叉驗(yàn)證來保持結(jié)果的準(zhǔn)確性.具體參數(shù)選擇見表4.
表4 兩上實(shí)驗(yàn)最佳參數(shù)
通過修改后的集成算法對算法LR、SVM和全詞BERT集成,權(quán)重參數(shù)分別為0.184,0.070和0.746.
模型參數(shù)取不同的值會(huì)得到不同的實(shí)驗(yàn)結(jié)果,在實(shí)驗(yàn)的過程中,均選取最佳參數(shù)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)(1)結(jié)果如表5所示,實(shí)驗(yàn)(2)結(jié)果如表6所示.
表5 實(shí)驗(yàn)(1)結(jié)果 %
表6 實(shí)驗(yàn)(2)結(jié)果 %
表5顯示的是在以用戶查詢詞為主要文本的數(shù)據(jù)集上,本文方法和其他分類方法的比較.分析實(shí)驗(yàn)結(jié)果,可以得出當(dāng)數(shù)據(jù)集的主要內(nèi)容是用戶查詢詞時(shí),本文方法與其他分類方法的準(zhǔn)確率差距不是很大,對此重新分析數(shù)據(jù)集,推測可能是數(shù)據(jù)集中文本的內(nèi)容是沒有關(guān)聯(lián)的查詢詞,查詢詞是沒有規(guī)律的順序,并且詞語前后語義關(guān)聯(lián)性很小,因此神經(jīng)網(wǎng)絡(luò)挖掘與分析文本內(nèi)部的深層語義信息的優(yōu)點(diǎn)無法發(fā)揮,不僅不會(huì)獲取到更多有用的語義信息,甚至?xí)驗(yàn)槠渥陨砩顚拥木W(wǎng)絡(luò)結(jié)構(gòu)讓過擬合現(xiàn)象更容易發(fā)生.
表6顯示了在以微博用戶文本數(shù)據(jù)為主要文本的數(shù)據(jù)集上本文方法和其他分類方法的比較.從實(shí)驗(yàn)結(jié)果的對比中可以得出,當(dāng)數(shù)據(jù)集的主要內(nèi)容是具有上下文聯(lián)系和一定語義邏輯的文本時(shí),全詞BERT模型的效果更好,對數(shù)據(jù)分析之后,推測是由于數(shù)據(jù)集中的微博文本相對于用戶查詢詞的數(shù)據(jù)集,微博文本作為連續(xù)的語義文本,語句之間有明顯的連貫性并且詞語的多義性開始影響對句子的理解,而本文其他機(jī)器學(xué)習(xí)分類方法使用的用戶用詞特征,明顯對時(shí)序性和深層語義的學(xué)習(xí)有限.但是在引入全詞BERT模型后,實(shí)驗(yàn)的分類準(zhǔn)確率確實(shí)有了較大提升,說明全詞BERT模型引入是有效果的,全詞BERT模型確實(shí)能夠充分挖掘文本的時(shí)序性和深層語義關(guān)聯(lián)性.
本文從查詢詞和微博文本兩個(gè)數(shù)據(jù)集出發(fā),經(jīng)實(shí)驗(yàn)發(fā)現(xiàn)通過改進(jìn)的集成學(xué)習(xí)投票機(jī)制能夠結(jié)合不同算法的優(yōu)點(diǎn),提高了泛用性,能夠適應(yīng)不同形式的文本.表5和6的數(shù)據(jù)證明了本文方法確實(shí)效果好于單一的方法.
綜上可知,本文提出的基于全詞BERT的集成用戶畫像方法較好地解決了本文提出的問題,且效果較好.
將論文公開代碼中的數(shù)據(jù)集統(tǒng)一換成本文實(shí)驗(yàn)的數(shù)據(jù)集,參數(shù)選擇默認(rèn)參數(shù),各種方法對比結(jié)果見表7和8.結(jié)果顯示,本文方法在準(zhǔn)確率上有較大提升.綜上所述,本文方法在用戶畫像的分類上優(yōu)于文獻(xiàn)[11-12]的方法.表7為使用實(shí)驗(yàn)(1)的數(shù)據(jù)結(jié)果,表8為使用實(shí)驗(yàn)(2)的數(shù)據(jù)結(jié)果.
表7 在用戶查詢詞的對比實(shí)驗(yàn) %
表8 在微博文本的對比實(shí)驗(yàn) %
本文提出了一個(gè)基于全詞BERT的集成用戶畫像方法.該方法采用不同的分類器處理不同的特征,使用梯度上升決定軟投票的權(quán)重,從而提升了泛化力和準(zhǔn)確率.
本文雖然使用多用特征和分類器對用戶畫像建模,但是現(xiàn)在的主流數(shù)據(jù)已經(jīng)是多模態(tài)數(shù)據(jù),特別是短視頻的流行,對用戶畫像建模產(chǎn)生了較大沖擊,因此模型下一步的改進(jìn)就是引入多模態(tài)數(shù)據(jù),讓用戶畫像的屬性更加全面和準(zhǔn)確.
東北師大學(xué)報(bào)(自然科學(xué)版)2022年4期