苗 宇,金醒男,杜永萍
(北京工業(yè)大學 信息學部,北京 100124)
互聯(lián)網(wǎng)的高速發(fā)展給人們的生活和工作帶來了巨大的改變,但互聯(lián)網(wǎng)數(shù)據(jù)的高速增長也帶來了一系列的負面問題,如“數(shù)據(jù)爆炸”、“信息冗余”等等。用戶往往在互聯(lián)網(wǎng)的數(shù)據(jù)浪潮中無法迅速精準地獲得自己所需要的信息,同時互聯(lián)網(wǎng)商家面對海量用戶也很難精準投放自身的服務(wù)與產(chǎn)品,進而造成資源的浪費。用戶畫像(user profile)的核心是將用戶的具體信息抽象成標簽,從而為用戶提供有針對性的服務(wù)[1]?;谟脩舢嬒竦膽冒▊€性化推薦、活動營銷、興趣偏好等方面[2]。
傳統(tǒng)用戶畫像的構(gòu)建過程實際上是用戶興趣行為標簽化的過程,目前,構(gòu)建畫像的方法主要分為基于統(tǒng)計和基于模型兩種形式。
?基于統(tǒng)計的用戶建模。
此方法主要通過數(shù)學方法對各類數(shù)據(jù)的數(shù)量或各類數(shù)據(jù)相對于整體的占比進行量化,并針對這些量化值對用戶進行分析,進而挖掘出能夠代表用戶興趣偏好的特征。劉海鷗等[3]從時間間隔分布、活躍性與冪指數(shù)分布等指標對用戶行為特征進行分析,從而發(fā)現(xiàn)在線社交用戶發(fā)布信息的行為特點。王洋等[4]通過收集用戶瀏覽行為日志及爬蟲數(shù)據(jù),利用大數(shù)據(jù)平臺對用戶網(wǎng)絡(luò)瀏覽行為數(shù)據(jù)進行處理。
基于統(tǒng)計的方法進行建模雖易于實現(xiàn),但該方法不能對文本、圖片、音頻等非結(jié)構(gòu)化數(shù)據(jù)進行分析處理,進而構(gòu)建更加全面且細致的用戶畫像。因此,對于非結(jié)構(gòu)化數(shù)據(jù)的深度挖掘日益重要[5-6]。
?基于模型的用戶建模。
隨著數(shù)據(jù)挖掘、機器學習、深度學習技術(shù)的出現(xiàn),對于用戶的研究得到迅速發(fā)展,兼顧結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù),使得用戶畫像更加全面與細致。何娟[7]利用向量空間模型將文本內(nèi)容表示成向量,通過計算余弦距離得到文本間的相似度數(shù)值后利用聚類算法構(gòu)建用戶畫像。李恒超[8]通過使用卷積神經(jīng)網(wǎng)絡(luò)模型和Doc2Vec淺層神經(jīng)網(wǎng)絡(luò)模型來分別提取查詢詞之間的語義關(guān)聯(lián),構(gòu)建了用戶畫像的二級融合模型算法框架。費鵬等[9]提出了一種用于構(gòu)建用戶畫像的多視角融合框架,此框架首先利用雙通道對不同特性的用戶分別建模預測,提出了基于雙層Xgboost的融合模型。
雖然隨著人工智能大數(shù)據(jù)技術(shù)的蓬勃發(fā)展,機器學習及神經(jīng)網(wǎng)絡(luò)的算法已經(jīng)在用戶畫像生成領(lǐng)域廣泛使用,但現(xiàn)實的用戶數(shù)據(jù)是多元且豐富的,單方面的特征工程無法較為全面地提取用戶文本的特征,因此該文對用戶元數(shù)據(jù)進行多角度特征提取及融合,以期實現(xiàn)較高準確率的用戶屬性預測。
目前,對于用戶畫像生成的方法缺乏對用戶元數(shù)據(jù)的多層次特征提取,該文利用關(guān)鍵詞提取、循環(huán)神經(jīng)網(wǎng)絡(luò)及注意力機制等相關(guān)技術(shù),從多角度學習用戶的深層特征。
TF-IDF(term frequency-inverse document frequency)是一種用于信息檢索與文本挖掘的統(tǒng)計方法,可用于評估某個字詞對于一個文檔的重要程度,其重要性同它在文檔中出現(xiàn)的次數(shù)成正比,且同它在全部文檔構(gòu)成的語料庫中出現(xiàn)的頻率成反比[10]。
循環(huán)神經(jīng)網(wǎng)絡(luò)是一種特殊的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。區(qū)別于全連接網(wǎng)絡(luò)單獨處理一個個的輸入,且前一個輸入與后一個輸入是完全沒有關(guān)系,循環(huán)神經(jīng)網(wǎng)絡(luò)可以很好地處理序列信息,其隱層的值不僅僅取決于當前時刻的輸入,還取決于上一時刻隱層的值,即上一時刻的隱藏層是可以影響當前時刻的隱藏層。這一特征使得循環(huán)神經(jīng)網(wǎng)絡(luò)具備可以處理前后有關(guān)聯(lián)的序列信息的優(yōu)勢。GRU(gate recurrent unit)是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,是為了解決長期記憶和反向傳播的梯度問題而提出的。同時相比于循環(huán)神經(jīng)網(wǎng)絡(luò)的另一個變體LSTM(long-short term memory,長短時記憶網(wǎng)絡(luò))而言,GRU使用的參數(shù)較少,并且實驗效果不分伯仲,因此該文選擇GRU可以很大程度上提高訓練效率[11]。
注意力機制在處理文本數(shù)據(jù)的過程中,通過模擬人類的閱讀習慣,將注意力分配到不同的詞和句。例如視覺系統(tǒng)在閱讀文本中會傾向于關(guān)注輔助判斷的部分信息,并忽略掉不相關(guān)的部分內(nèi)容。體現(xiàn)在實際的應用中,輸入的某些部分可能會比其他部分對決策更有幫助,即將文本序列中的詞匯分配以不同的權(quán)重,表示不同的詞匯對結(jié)果具備不同的影響力[12]。通過使算法更集中于處理那些對文檔類別判定影響較大的詞匯上,以提升分類精度。
結(jié)合TF-IDF算法、循環(huán)神經(jīng)網(wǎng)絡(luò)和注意力機制,該文提出一種基于Multi-Aspect的融合網(wǎng)絡(luò)用戶畫像生成模型,如圖1所示。
(1)用戶關(guān)鍵詞提取模塊。每個用戶在互聯(lián)網(wǎng)搜索引擎輸入的內(nèi)容大相徑庭,其搜索內(nèi)容與用戶屬性的差別,用戶當時的需求,以及用戶的喜好與困惑相關(guān),故提取用戶搜索內(nèi)容中相較其他用戶差異較大的文本作為此用戶的關(guān)鍵詞,可以在一定程度上幫助實現(xiàn)用戶特征分類。
此模型在用戶文本預處理階段著重考慮每個用戶搜索文本中相較于其他用戶具有較明顯個人特征的關(guān)鍵詞。模塊將每個用戶的搜索文本看作獨立的文檔,將文本經(jīng)分詞和去停用詞后計算每個詞匯的TF-IDF值,TF-IDF的主要思想即為如果某個單詞在一篇文章中出現(xiàn)的頻率高,同時在其他文章中很少出現(xiàn),則認為此詞具有較好的類別區(qū)分能力,適合用來分類。提取關(guān)鍵詞期間忽略原始文本的詞序,將搜索詞按計算出的TF-IDF值進行排序,供之后的模塊選擇相應的關(guān)鍵詞數(shù)目進行特征提取處理。
(2)文本編碼模塊。將用戶搜索文本經(jīng)分詞和去停用詞之后,得到一個個單獨的搜索詞,由于用戶的搜索內(nèi)容千差萬別,經(jīng)分詞后得到的詞表數(shù)目龐大,使用詞袋模型進行表示過于稀疏,且無法表示詞語之間的內(nèi)在聯(lián)系,故使用詞向量模型生成各搜索詞較稠密的分布式向量表示。
(3)TOP 2關(guān)鍵詞的特征提取。使用提取關(guān)鍵詞模塊得到的每個用戶搜索詞TF-IDF值排名前兩位的詞,將其看作此用戶文檔最關(guān)鍵的標簽詞匯,同時考慮到用戶的搜索數(shù)據(jù)具備因果和時序關(guān)系,由于每個人對感興趣方面的內(nèi)容通常是會產(chǎn)生連鎖搜索的現(xiàn)象,比如對某件事的關(guān)心,通常會先問“是什么”,接下來問“為什么”,然后問“怎么做”,因此模塊取排名前兩位的關(guān)鍵詞在原始用戶搜索文本中前后特定長度的周圍詞匯拼接成左右子句后經(jīng)由雙向循環(huán)神經(jīng)網(wǎng)絡(luò)進行特征提取。
圖1 基于Multi-Aspect的融合網(wǎng)絡(luò)用戶畫像生成模型
(4)TOP N關(guān)鍵詞的特征提取。除提取TOP 2關(guān)鍵詞及其周圍詞匯拼接成的子句特征外,進一步提取關(guān)鍵詞提取模塊中得到的排名前N個搜索詞的特征。此模塊忽略用戶的原始搜索順序,利用每個用戶搜索文檔中TF-IDF值排名前N的搜索詞,將每個搜索詞的向量表示求和取平均,得到TOP N關(guān)鍵詞的向量表示。
(5)全文檔特征提取。通過之前的步驟得到基于TOP 2子句和TOP N關(guān)鍵詞的用戶文檔特征后,為避免基于關(guān)鍵詞的特征提取造成的信息丟失,本模塊使用用戶的全部搜索文檔按原始順序輸入循環(huán)神經(jīng)網(wǎng)絡(luò)進行特征提取,但為避免搜索文本中較通用的無意義文本影響真正關(guān)鍵內(nèi)容的提取,在此模塊中引入注意力機制,對重要性不同的文本分配以不同的權(quán)重,以此提高對用戶搜索數(shù)據(jù)中關(guān)鍵內(nèi)容的關(guān)注度。
為達到神經(jīng)網(wǎng)絡(luò)可以處理文本等非結(jié)構(gòu)化數(shù)據(jù)的目的,需將文本進行向量化表示。該文采用預訓練的Word2vec詞向量[13],為經(jīng)分詞和去停用詞后的用戶搜索文本生成詞分布式表示,即通過映射關(guān)系為數(shù)據(jù)集上的每個單詞生成所需的詞嵌入。對于給定的輸入數(shù)據(jù):
x=[w1,w2,…,wn]
(1)
(2)
用戶在互聯(lián)網(wǎng)搜索引擎搜索的內(nèi)容與用戶自身屬性(如年齡、性別和學歷等)以及使用網(wǎng)絡(luò)進行搜索時的需求密切相關(guān),故提取用戶搜索內(nèi)容中的關(guān)鍵信息作為此用戶的關(guān)鍵詞,可以在一定程度上幫助實現(xiàn)用戶特征分類。
該文將每個用戶的所有搜索數(shù)據(jù)作為一個用戶文檔,通過分別計算每個用戶文檔經(jīng)分詞的各個搜索詞的TF-IDF值,獲得每個用戶搜索內(nèi)容的關(guān)鍵詞。
考慮到用戶某段時間內(nèi)較關(guān)注的內(nèi)容,將所有用戶搜索詞中TF-IDF值最大的兩個單詞作為特殊關(guān)鍵詞keyword1, keyword2,記其在原始搜索文檔中的位置為i和j,以此對用戶全部搜索文檔進行拆分??紤]到同一段時間內(nèi)用戶搜索內(nèi)容之間的關(guān)聯(lián)性,分別取每個關(guān)鍵詞的前N個詞與后N個詞,拆分得到的兩個子句Sleft和Sright:
Sleft=[wi-N,…,wi-1,keyword1,…,wi+N]
Sright=[wj-N,…,wj-1,keyword2,wj+N]
(3)
相較其他類型的神經(jīng)網(wǎng)絡(luò)模型,循環(huán)神經(jīng)網(wǎng)絡(luò)可以很好地處理前后輸入之間有一定關(guān)聯(lián)的序列信息,而雙向循環(huán)神經(jīng)網(wǎng)絡(luò)通過從兩個方向輸入文本信息,實現(xiàn)基于上下文的特征提取[14]。故該文采用雙向循環(huán)神經(jīng)神經(jīng)網(wǎng)絡(luò)結(jié)合包含關(guān)鍵詞的語句提取文本特征。
由于需要對用戶的性別、學歷及年齡等靜態(tài)屬性進行描述,故用戶的關(guān)注點提取很重要,如搜索詞中包含“寶寶”、“剖宮產(chǎn)”、“先天性”等詞眼的用戶是女性、中青年等類別的概率就會較大,故采用雙向門控循環(huán)單元(bidirectional gated recurrent unit,BiGRU)進行特征提取,對包含了關(guān)鍵詞的兩個子句Sleft、Sright分別生成融入了上下文語義信息的特征表示Hleft和Hright:
(4)
鑒于基于Top 2關(guān)鍵詞的特征提取會忽略到用戶的其他關(guān)注點,此模塊將經(jīng)關(guān)鍵詞提取模塊計算后得到的TF-IDF值Top N的詞作為關(guān)鍵詞,得到每個關(guān)鍵詞經(jīng)編碼模塊得到的分布式表示ei,由于各Top N關(guān)鍵詞的位置大概率不相鄰或前后顛倒,故無需使用循環(huán)神經(jīng)網(wǎng)絡(luò)提取詞序信息,最終的Top N關(guān)鍵詞向量表示由各關(guān)鍵詞的向量表示求和取平均得到:
(5)
該模塊使用全部用戶搜索詞輸入循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合注意力機制進行特征提取。若將每個用戶的全部搜索詞看作一個文檔,從人類閱讀習慣的角度進行思考,人們在閱讀時不會將注意力平均到每個詞匯。故只簡單快速地將文檔的全部單詞的向量表示求和取平均作為文檔的向量表示,忽略了文檔中某些詞匯對文本表示的貢獻。為避免這一問題,該文使用了注意力算法對每個搜索詞經(jīng)循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出分配權(quán)重。
將文本經(jīng)GRU后的輸出向量Ci作為輸入傳入多層感知機中,使用tanh函數(shù)進行激活后得到向量ui:
ui=tanh(WwCi+bw)
(6)
每個單詞對應的權(quán)重αi為向量uw與每個ui相乘后取softmax操作:
(7)
得到每個單詞的重要性權(quán)重αi后,對經(jīng)GRU后的每個單詞的輸入進行加權(quán),得到此用戶搜索文檔的向量表示:
(8)
將基于Top 2關(guān)鍵詞特征提取、Top N關(guān)鍵詞特征提取及全文檔特征提取模塊得到的文本表示分別經(jīng)一維最大池化層進行降維后拼接,得到最終的文本表示后經(jīng)由softmax層進行分類。該文選用的評價指標為分類準確率,不同于評價二分類的指標精確率,它可以應用于多分類,主要指分類正確的樣本占總樣本個數(shù)的比例,是針對所有樣本的統(tǒng)計量,其計算公式為:
(9)
該文使用的數(shù)據(jù)集來自中國計算機學會(CCF)組織的大數(shù)據(jù)競賽《大數(shù)據(jù)精準營銷中搜狗用戶畫像挖掘》,包含一個月內(nèi)用戶在搜索引擎中的歷史查詢詞與用戶的靜態(tài)人口屬性標簽(包括性別、年齡、學歷)共10萬條。其中Education和Age屬性共有7種類別,Gender屬性有male、female和unknown共3種屬性類別。
使用該模型結(jié)構(gòu)對用戶屬性標簽進行分類預測。將全部數(shù)據(jù)的80%作為訓練集,另外20%作為測試集。為保證訓練效果,各標簽數(shù)據(jù)在訓練數(shù)據(jù)和測試數(shù)據(jù)中分布一致。
詞嵌入使用300維的預訓練的Word2vec向量進行初始化,GRU和BiGRU隱藏層和輸出層大小設(shè)為150維,全連接層的維數(shù)為128和64。在訓練的過程中,使用Adam(adaptive moment estimation)算法進行優(yōu)化,設(shè)置初始學習率為1e-3,批次大小為120。
為驗證該模型的有效性,選擇如下基線模型進行比較:
(1)SVM+Trigram模型,使用sklearn工具包調(diào)用傳統(tǒng)機器學習模型SVM[15-16]進行分類,選用默認參數(shù),Trigram的字典大小為165萬。
(2)CNN[17]文本分類模型:首先使用Word2vec訓練得到原數(shù)據(jù)集的詞向量,然后使用訓練后的詞向量初始化嵌入層,取句子的截斷長度為1 000,長度不足的使用0補齊,之后設(shè)置卷積核大小分別為2、3、4,將得到的特征圖經(jīng)最大池化處理后,進行0.5的dropout,最后拼接維度為150的全連接層后進行分類。
(3)Fasttext模型:同樣使用Word2vec訓練原數(shù)據(jù)集的詞向量,將每個用戶的搜索詞匯看作一個文檔,將每個經(jīng)分詞后的詞向量求和取平均得到文檔的向量表示,分別經(jīng)128維和64維的全連接層后進行分類[18]。
(4)LSTM文本分類模型[19]:得到原數(shù)據(jù)集的詞向量后輸入LSTM網(wǎng)絡(luò),隱藏層的維度設(shè)為150維,將最終的隱藏層輸出拼接128維全連接層進行分類。
使用以上提出的各對比模型與該文提出的Multi-Aspect模型分別對數(shù)據(jù)集樣本的三個屬性標簽進行預測,其中各屬性值均為多分類。實驗結(jié)果如表1所示,可以看出與各基線模型相比,該文提出的模型在各類標簽的預測中均取得了較優(yōu)的準確率。
表1 各對比模型在不同屬性標簽上的預測準確率 %
由以上實驗結(jié)果可以看出,該文提出的模型較Fasttext模型提升更為明顯,F(xiàn)asttext模型的全連接層分類雖簡潔高效,但未能考慮到實際應用場景的文本特征,故分類效果稍差,尤其是在標簽類別較多的情況下。
用戶畫像的構(gòu)建屬于分類任務(wù),各特征之間沒有過多的非線性關(guān)系[20],使得Trigram-svm模型在標簽類別較少的情況下表現(xiàn)優(yōu)于其他深度學習模型。CNN模型在處理用戶搜索文本的語義特征方面優(yōu)勢不足,主要由于用戶搜索文本大多較口語化,同樣一句話會出現(xiàn)不同的表達方式,故CNN模型提取出的高階特征不明顯,分類效果不佳。
該文在特征提取子模塊中使用到了循環(huán)神經(jīng)網(wǎng)絡(luò),分別基于關(guān)鍵詞子句和關(guān)鍵詞平均向量從多角度利用循環(huán)神經(jīng)網(wǎng)絡(luò)進行特征提取,因此分類效果優(yōu)于單一的LSTM模型,同時結(jié)合基于全文檔詞向量及對不同詞匯分配不同權(quán)重的注意力機制進行特征融合后分類,得到了較優(yōu)的準確率,驗證了多角度特征提取的有效性。同時對Gender屬性的分類準確率優(yōu)于Education和Age屬性,證明實驗模型在對分類標簽數(shù)目較少的屬性上表現(xiàn)較優(yōu)。
為了驗證該文提出的模型在多角度提取用戶搜索文本特征方面的優(yōu)勢,觀察各模塊在預測用戶屬性準確率方面的作用,進行了如下的消融實驗驗證,如表2所示。
表2 消融實驗結(jié)果 %
實驗通過分別去掉基于Top 2關(guān)鍵詞的特征提取模塊、基于Top N關(guān)鍵詞的特征提取模塊和全文檔特征提取模塊進行分類,由實驗結(jié)果可知,每個模塊均為提升最終的模型預測準確率做出了貢獻,即結(jié)合實際應用場景對用戶數(shù)據(jù)進行多角度的深度特征提取是有助于標簽預測的。
其中,去掉基于Top N關(guān)鍵詞的特征提取模塊對最終標簽預測的準確率影響較小,可能的原因是此模塊取用戶文檔的Top N關(guān)鍵詞的詞向量進行加權(quán)平均,未如其他子模塊使用深度神經(jīng)網(wǎng)絡(luò)進行特征提取,故此模塊對最終的預測結(jié)果影響較?。欢谌臋n的特征提取模塊對模型預測準確率提升更為有效,由此可知由于用戶自身屬性的限定,搜索偏好在較短的時間內(nèi)較為固定,使用全文檔文本結(jié)合GRU網(wǎng)絡(luò)和注意力機制進行特征提取,可以很好地考慮到用戶文檔的全局特征和局部特征,對用戶標簽預測的準確率提升大有幫助。
該文還對其他變量進行了實驗驗證,例如基于TOP N關(guān)鍵詞提取文本特征的模塊中,調(diào)整所取的關(guān)鍵詞的數(shù)量進行實驗,發(fā)現(xiàn)關(guān)鍵詞數(shù)目在50以上再繼續(xù)增加至200的過程中,對實驗結(jié)果的影響甚微,說明同一用戶的興趣點也是廣泛多元的,且不可避免地出現(xiàn)大眾均會感興趣的一些內(nèi)容,故增加關(guān)鍵詞數(shù)目進行求和取平均的特征提取方式未能提升分類準確率。
為了最大化挖掘大數(shù)據(jù)時代獲取的海量用戶數(shù)據(jù)的價值,準確預測用戶屬性,構(gòu)建精準的用戶畫像,為下游的營銷推廣任務(wù)提供依據(jù),首先從原始用戶搜索文本著手,提出了一種基于Multi-Aspect的融合網(wǎng)絡(luò)用戶畫像生成方法。此方法利用不同的特征提取模塊,結(jié)合用戶文本獲取場景,從用戶偏好內(nèi)容、用詞習慣、搜索時序等方面考慮,從不同的層面分別進行特征提取,最終將各子模塊提取的文本特征融合后進行分類,經(jīng)實驗驗證準確率均優(yōu)于基礎(chǔ)模型,并通過消融實驗證明,各個子模塊均為特征提取,提升模型分類準確率做出了貢獻。
由于用戶具備多個屬性,用戶畫像應該同時考慮到多屬性之間的關(guān)聯(lián),該任務(wù)本質(zhì)是個多標簽分類問題,各屬性之間不是完全獨立的,因此下一步將嘗試使用多標簽預測的方法改進模型,每次不只單一考慮某一個用戶屬性,同時用戶不僅具備各種靜態(tài)屬性,現(xiàn)實中的用戶是立體且多元的,將靜態(tài)屬性和用戶行為等動態(tài)屬性相結(jié)合可以幫助實現(xiàn)更豐富更準確的用戶畫像。