陳澤宇,黃 勃,2
1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620
2.江西省經(jīng)濟(jì)犯罪偵查與防控技術(shù)協(xié)同創(chuàng)新中心,南昌330000
互聯(lián)網(wǎng)科技的發(fā)展帶來(lái)了互聯(lián)網(wǎng)數(shù)據(jù)爆炸式的增長(zhǎng),用戶在瀏覽網(wǎng)頁(yè)的同時(shí)會(huì)留下大量的行為數(shù)據(jù),分析這些數(shù)據(jù)可以挖掘出用戶基本的屬性信息和潛在的興趣偏好,給企業(yè)的經(jīng)營(yíng)方面提供了重大的幫助。搜索引擎是一個(gè)主流的網(wǎng)絡(luò)平臺(tái),利用搜索引擎來(lái)構(gòu)建用戶畫(huà)像對(duì)于營(yíng)銷的效果具有更加重要的價(jià)值,針對(duì)用戶的查詢?cè)~的短文本,傳統(tǒng)的向量空間模型存在特征稀疏的問(wèn)題,并且缺乏單詞之間的語(yǔ)義聯(lián)系。李雅坤[1]引入詞向量構(gòu)建了基于搜索引擎短文本的用戶畫(huà)像。詞向量模型[2]通常使用一個(gè)向量來(lái)表示一個(gè)單詞,無(wú)法解決一詞多義和一義多詞的情況。為了解決這樣的問(wèn)題,Reisinger 等[3]提出了多原型向量空間模型(multi-prototype vector space models),該模型將一個(gè)單詞的上下文聚類為一組,然后為每一個(gè)類生成一個(gè)不同的詞向量。然而,多原型向量空間模型[4-6]在生成詞向量時(shí)也存在一些問(wèn)題,它將同一個(gè)單詞的不同上下文聚類為沒(méi)有關(guān)聯(lián)的兩簇,但他們的語(yǔ)義可能是相同的。于是,張小川等[7]將文本向量與文本的主題分布相結(jié)合,得到語(yǔ)義表達(dá)更豐富的詞向量,但該模型只是簡(jiǎn)單地將文本向量和文本的主題向量相連接,在主題信息的表達(dá)上還不夠突出。本文提出一種更加強(qiáng)大的多原型向量空間模型,將目標(biāo)單詞和它所分配的主題共同放入神經(jīng)網(wǎng)絡(luò)中訓(xùn)練得到目標(biāo)單詞的主題詞向量。
Word2vec 是谷歌公司提出的一種神經(jīng)網(wǎng)絡(luò)模型[8]。該模型利用多維的向量來(lái)表示單詞,且詞向量的每個(gè)維度都代表一個(gè)語(yǔ)義特征。word2vec 采用的模型有兩種:CBOW和Skip-Gram。CBOW模型是通過(guò)目標(biāo)單詞的上下文來(lái)預(yù)測(cè)目標(biāo)單詞[9],而Skip-Gram 則通過(guò)目標(biāo)單詞來(lái)預(yù)測(cè)它的上下文[9]。其神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1和圖2所示。
圖1 CBOW模型
圖2 Skip-Gram模型
輸入層是One-Hot編碼,每一個(gè)詞用一個(gè)n 維的向量來(lái)表示,這個(gè)n 維向量只有一個(gè)位置是1,其余位置都是0。給定一個(gè)單詞序列W={w1,w2,…,wN} ,該模型的目標(biāo)是最大化平均對(duì)數(shù)概率[10]:
其中,c 表示目標(biāo)單詞的上下文,k 為上下文的大小。輸出層是一個(gè)softmax回歸[11],用來(lái)計(jì)算P(wi+c|wi)。
其中,vc表示目標(biāo)單詞上下文wc的詞向量,vi表示目標(biāo)單詞wi的詞向量。
通過(guò)訓(xùn)練得到的詞向量可以計(jì)算單詞之間的相似度sim(wi,wj)=vi?vj,將文本中每個(gè)單詞的詞向量進(jìn)行相加再取平均可以得到這篇文本的文本向量。
隱狄列克雷分配(Latent Dirichlet Allocation,LDA)是一種無(wú)監(jiān)督的模型,可用于識(shí)別文本中隱藏的主題信息[12]。該模型可以將文本表示為主題的概率分布,且每個(gè)主題由詞的概率分布來(lái)表示[13],LDA模型如圖3所示。
圖3 LDA模型圖
圖3 中M 表示語(yǔ)料庫(kù)中的文本數(shù),T 表示主題數(shù),α 是主題分布的超參數(shù)[14],β 為詞分布的超參數(shù)[14],θ 是文本主題分布θ=Dirichlet(α)[15],φ 是主題詞分布φ=Dirichlet(β)[15],N 是一篇文本中的詞數(shù),t 是詞對(duì)應(yīng)的主題,對(duì)于一篇短文本m,其中每個(gè)詞對(duì)應(yīng)的主題t=multi(θd),w 是詞。
通過(guò)吉布斯抽樣(Gibbs Sampling)[16]對(duì)主題變量t進(jìn)行抽樣,間接估算中θ 和φ,估算公式如下:
隨機(jī)森林(Random Forest,RF)是一種集成學(xué)習(xí)算法,由多個(gè)決策樹(shù)組成[17]。RF在決策樹(shù)的構(gòu)建過(guò)程中,從節(jié)點(diǎn)上所有特征中隨機(jī)選取一部分特征,再?gòu)碾S機(jī)選擇的部分特征中選擇最優(yōu)的特征作為決策樹(shù)左右子樹(shù)劃分的標(biāo)準(zhǔn),這使得模型的泛化能力得到了提高。一棵決策樹(shù)代表一個(gè)弱分類器,通過(guò)n 次的迭代,獲得n 個(gè)弱分類器,最終的分類結(jié)果由這n 個(gè)弱分類器的投票決定,票數(shù)多的一類即為這個(gè)樣本的類別。
RF的算法:
輸入:樣本集D={d1,d2,…,dm},決策樹(shù)個(gè)數(shù)n。
輸出:最終的強(qiáng)分類器。
(1)對(duì)訓(xùn)練集進(jìn)行m 次隨機(jī)采樣(Bootstrap)[16],獲得n 個(gè)包含m 個(gè)訓(xùn)練樣本的采樣集。
(2)從所有特征中隨機(jī)選取一部分特征,再?gòu)闹羞x擇最優(yōu)特征作為節(jié)點(diǎn)建立決策樹(shù)。
(3)重復(fù)步驟(1)、(2)n 次,直到建立n 棵決策樹(shù)。
本文針對(duì)用戶的搜索記錄,利用基于主題詞改進(jìn)的詞向量模型來(lái)構(gòu)建用戶畫(huà)像,使用隨機(jī)森林(RF)對(duì)用戶的基本屬性進(jìn)行分類,具體的模型框架如圖4所示。
圖4 用戶畫(huà)像模型框架圖
為了構(gòu)建能表達(dá)一個(gè)單詞在不同語(yǔ)義下的詞向量,將主題融入到詞向量中,獲得目標(biāo)單詞w 在主題t 下的主題詞向量,基于主題詞改進(jìn)的詞向量模型所使用的神經(jīng)網(wǎng)絡(luò)模型為Skip-Gram 模型。首先通過(guò)LDA 模型獲取文本對(duì)應(yīng)主題的概率矩陣和主題對(duì)應(yīng)詞的概率矩陣,給目標(biāo)單詞w 分配潛在的主題t ∈T ,將目標(biāo)單詞表示為單詞-主題對(duì)<w,t >。然后對(duì)短文本中的每一個(gè)單詞進(jìn)行One-Hot 編碼,再為其對(duì)應(yīng)的主題生成主題編碼[P1,P2,…,PT],其中Pi表示目標(biāo)單詞分配給第i 個(gè)主題的概率,將單詞編碼和主題編碼相連接共同作為skipgram模型的輸入。基于主題詞改進(jìn)的詞向量模型如圖5所示。
對(duì)于單詞主題對(duì)<w,t >該模型需要最大化平均對(duì)數(shù)概率:
輸出層也是softmax 回歸[11],用來(lái)計(jì)算P(<wi+c,ti+c>|<wi,ti>)。
圖5 基于主題詞改進(jìn)的詞向量模型
根據(jù)主題詞向量vt,可以獲得一些單詞在不同主題下最相近的詞,因此主題詞向量可以更好的表達(dá)單詞在不同上下文中的語(yǔ)義信息。例如“栽培”,在word2vec模型中獲得的相似詞有“種植、造就”等;基于主題詞改進(jìn)的詞向量模型在主題為“農(nóng)業(yè)”時(shí)獲得的相似詞有“栽種、種植”等,在主題為“教育”時(shí)獲得的相似值有“造就、培養(yǎng)”等。
用戶可以通過(guò)網(wǎng)絡(luò)搜索到自己想要了解的信息,這些信息可以側(cè)面反映出用戶的基本屬性和愛(ài)好,例如:年齡較小的人會(huì)更多的搜索與動(dòng)畫(huà)片和游戲相關(guān)的信息;女性會(huì)更加關(guān)注化妝品和流量明星。所以可以通過(guò)分析這些搜索文本來(lái)對(duì)用戶的屬性標(biāo)簽進(jìn)行刻畫(huà)。
本文利用基于主題詞改進(jìn)的詞向量模型來(lái)構(gòu)建用戶畫(huà)像,為了提取用戶特征,傳統(tǒng)的詞向量模型通過(guò)對(duì)文本中每個(gè)詞的詞向量直接相加再取平均來(lái)表示用戶特征,這樣不能體現(xiàn)出不同單詞的重要程度。因此,通過(guò)對(duì)文本中每個(gè)詞的主題詞向量進(jìn)行加權(quán)求和表示用戶特征:
其中,ωk是詞wk∈W 在文本中的權(quán)重,權(quán)重值用單詞w 的TF-IDF[10]值。若文本中某個(gè)單詞的TF-IDF 值越大,經(jīng)過(guò)加權(quán)求和后得到的向量能體現(xiàn)出該單詞的重要程度,在用戶特征的表達(dá)上也會(huì)更加突出。當(dāng)用戶特征提取之后,使用隨機(jī)森林(RF)分別對(duì)三個(gè)屬性標(biāo)簽進(jìn)行分類。
基于主題詞改進(jìn)的詞向量模型的用戶畫(huà)像算法:
輸入:用戶查詢?cè)~數(shù)據(jù)集。
輸出:用戶基本屬性的分類結(jié)果。
(1)用LDA模型為每個(gè)單詞分配一定數(shù)量的主題。
(2)用基于主題詞改進(jìn)的詞向量模型為文本中的單詞生成主題詞向量。
(3)計(jì)算每個(gè)單詞的TF-IDF 值,再將TF-IDF 值歸一化。
(4)利用公式(7)對(duì)主題詞向量進(jìn)行加權(quán)求和得到用戶特征。
(5)將用戶特征用隨機(jī)森林算法分別對(duì)三個(gè)屬性標(biāo)簽進(jìn)行分類。
本文采用Python3.7 進(jìn)行實(shí)驗(yàn),操作系統(tǒng)為Windows 10,CPU 為CoreTMi7。實(shí)驗(yàn)數(shù)據(jù)集來(lái)源于中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)組織的大數(shù)據(jù)競(jìng)賽。實(shí)驗(yàn)數(shù)據(jù)包括10萬(wàn)條,提供用戶的基本屬性標(biāo)簽和一個(gè)月內(nèi)的上網(wǎng)搜索詞。部分?jǐn)?shù)據(jù)集如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集
表中ID 為加密后的用戶編號(hào);年齡屬性分為6 類,由1~6 表示,0 表示未知;性別屬性分為2 類,由1~2 表示,0 表示未知;學(xué)歷屬性分為6 類,由1~6 表示,0 表示未知。
將本文使用的方式與只使用詞向量模型和使用LDA 主題模型與詞向量相結(jié)合的方法相比較,三種模型都使用隨機(jī)森林分類器對(duì)用戶的基本屬性進(jìn)行分類。其中LDA 主題模型與詞向量相結(jié)合的方法,采用向量連接的方式,該模型先使用詞向量模型訓(xùn)練得到單詞的詞向量,將文本中每個(gè)單詞的詞向量進(jìn)行相加再取平均得到這篇文本的文本向量,然后使用LDA 主題模型中的文本主題矩陣得到一篇文本所對(duì)應(yīng)的主題概率,得到這篇文本的主題向量t={t1,t2,…,tT},最后將文本向量與主題向量連接在一起,形成語(yǔ)義表達(dá)更豐富的詞向量。
其中,⊕為連接運(yùn)算符,w 表示文本對(duì)應(yīng)的詞向量,t表示文本對(duì)應(yīng)的主題向量
將三種不同模型的查準(zhǔn)率P、查全率R 和F1 值[17]作為模型的評(píng)價(jià),實(shí)驗(yàn)結(jié)果取自五次五折交叉驗(yàn)證后的平均值。分類結(jié)果的混淆矩陣如表2所示,分別計(jì)算性別、年齡、學(xué)歷屬性的分類精確率、召回率和F1 值。實(shí)驗(yàn)結(jié)果如表3及圖6、7所示。
表2 混淆矩陣
表3 不同算法的分類性能
圖6 不同算法的F1 值對(duì)比
圖7 不同算法的實(shí)驗(yàn)結(jié)果對(duì)比
從上述實(shí)驗(yàn)結(jié)果中可以看出,本文方法的平均分類準(zhǔn)確率比Word2vec 模型至少提高了2%,比Word2vec+LDA模型至少提高了1%;平均召回率比Word2vec模型至少提高了1.8%,比Word2vec+LDA 模型至少提高了1.1%;F1 值比Word2vec 模型至少提高了1.9%,比Word2vec+LDA模型至少提高了1%。其中在年齡屬性上發(fā)揮的效果最好,比Word2vec模型至少提高了2.9%,比Word2vec+LDA 模型至少提高了1.4%。單獨(dú)使用Word2vec 模型的分類結(jié)果并不是很好,使用Word2vec和LDA相結(jié)合的模型雖然分類的精度要高于單獨(dú)使用word2vec模型,但仍低于本文提出的方法。因?yàn)閭鹘y(tǒng)的word2vec對(duì)于每個(gè)單詞只能生成一個(gè)詞向量,而本文的方法可以針對(duì)單詞不同的主題生成不同的詞向量,使得單詞的表達(dá)更加的靈活。
本文研究了關(guān)于構(gòu)建基于搜索引擎的用戶畫(huà)像的相關(guān)問(wèn)題,相比于只利用目標(biāo)單詞的詞向量,基于主題詞改進(jìn)的詞向量模型還使用了目標(biāo)單詞的主題向量,用主題詞向量將代表這個(gè)主題下單詞的整體語(yǔ)義,更好地表達(dá)了用戶的特征。實(shí)驗(yàn)結(jié)果表明,主題詞向量在處理基于用戶搜索詞的用戶畫(huà)像上達(dá)到了更好的效果。但還存在一些不足之處,在網(wǎng)民中,年齡大的人群普遍比年齡小的人群少,學(xué)歷高的人群也普遍比學(xué)歷低的人群少,數(shù)據(jù)存在嚴(yán)重的不平衡,因此,需要尋找一個(gè)數(shù)據(jù)平衡的方法來(lái)進(jìn)一步提高用戶畫(huà)像的分類精度。