馬朋輝 王雪寧 李勇 邵帥
關(guān)鍵詞:用戶畫像;Word2vec;詞向量;Stacking
中圖分類號:TP391.1;TP391.4 ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)06-0017-03
Abstract:This paper mainly studies user portrait construction based on user browsing data of Sogou engine. We describe user characteristics concretely,labeled and targeted,and use this as the basis of market analysis,business decision-making and precise marketing. User portrait technology can help search engines more targeted service users. The main work of this paper is as follows:Firstly,the data set of user search is preprocessed. In word segmentation,we choose Jieba word segmentation tool;secondly,we use TF-IDF-based vector space model to select feature words;thirdly,we use Word2vec to transform feature words into word vectors;finally,we use different classifiers to construct user portraits,we use Stacking model here.
Keywords:user portrait;Word2vec;word vector;Stacking
0 ?引 ?言
大數(shù)據(jù)時代的到來,有力的緩解了信息爆炸的問題,搜索推薦系統(tǒng)也一直在致力于從“拉”模式到“推”模式的改變[1],與此同時,隨著互聯(lián)網(wǎng)計算機(jī)技術(shù)的快速發(fā)展,云計算技術(shù)的出現(xiàn)為大數(shù)據(jù)的及時性分析、處理提供了技術(shù)上的支持[2],用戶畫像是根據(jù)用戶的社會屬性、生活習(xí)慣和消費(fèi)行為等信息而抽象出的一個標(biāo)簽化的用戶模型。構(gòu)建用戶畫像的核心工作即是給用戶貼“標(biāo)簽”。通過構(gòu)建搜索引擎的用戶畫像可以大大減少平臺的運(yùn)營成本。
1 ?相關(guān)技術(shù)介紹
Word2vec:Word2vec模型其實就是簡單化的神經(jīng)網(wǎng)絡(luò),一般分為CBOW(Continuous Bag-of-Words)與Skip-Gram兩種模型。CBOW模型的訓(xùn)練輸入是與某一個特征詞的上下文相關(guān)的詞相對應(yīng)的詞向量,而輸出的就是這特定的一個詞的詞向量。Skip-Gram模型和CBOW的思路是反著來的,即輸入是特定的一個詞的詞向量,而輸出是特定詞對應(yīng)的上下文詞向量。CBOW對小型數(shù)據(jù)庫比較合適,而Skip-Gram在大型語料中表現(xiàn)更好。
Stacking模型:Stacking是一種分層模型集成框架。以兩層為例,第一層由多個基學(xué)習(xí)器組成,其輸入為原始訓(xùn)練集,第二層的模型則是以第一層基學(xué)習(xí)器的輸出作為訓(xùn)練集進(jìn)行再訓(xùn)練,從而得到完整的Stacking模型。
2 ?用戶畫像模型構(gòu)建
2.1 ?數(shù)據(jù)集
本文中所采用的數(shù)據(jù)來源于CCF競賽平臺,搜狗公司提供的用戶搜索數(shù)據(jù),其中用戶的ID經(jīng)過加密算法加密。其中每條數(shù)據(jù)包含用戶的ID、Age(年齡)、Gender(性別)、Education(教育程度)、Query List(用戶搜索詞列表)。數(shù)據(jù)說明如表1。
數(shù)據(jù)的預(yù)處理包括數(shù)據(jù)清洗、自定義詞典、分詞處理。在數(shù)據(jù)清洗過程中,我們主要對空值進(jìn)行了處理,為了提高最后所做預(yù)測的準(zhǔn)確程度,我們對于有空值的用戶信息選擇舍去,因為我們認(rèn)為被丟棄的數(shù)據(jù)占比太小,對預(yù)測的準(zhǔn)確程度影響不大;在自定義詞典過程中,我們花費(fèi)了大量的時間和精力進(jìn)行了一些詞語的替換來換取準(zhǔn)確率的提高,比如將百度網(wǎng)盤網(wǎng)址替換為“網(wǎng)盤”;在分詞處理工作中,我們主要使用了結(jié)巴分詞,在分詞后又使用了正則表達(dá)式和去停用詞來實現(xiàn)精確分詞。
用戶搜索詞列表分詞前:
中財網(wǎng)首頁財經(jīng) ?http://pan.baidu.com/s/1plpjtn9 ?周公解夢大全查詢2345 ?曹云金再諷郭德綱 ?總裁大人行行好
用戶搜索詞列表分詞后:
中財網(wǎng) 財經(jīng) 網(wǎng)盤 周公解夢 曹云金 郭德綱 小說
2.3 ?特征詞的抽取
特征詞的選擇即從上述總分詞庫中篩選出最能代表用戶搜索內(nèi)容的詞,簡單來說就是如果某個詞匯出現(xiàn)的次數(shù)多,那么這個詞語就能被篩選出作為特征詞。在這里我們使用TF-IDF算法篩選出特征詞,TF-IDF算法是經(jīng)典的文本特征加權(quán)方法,它衡量了某一個單詞在文檔中的重要性;TF-IDF與一個詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個語言中的出現(xiàn)次數(shù)成反相關(guān)。式(1)是TF-IDF算法的公式:
特征詞處理完畢之后,就該著手把特征詞轉(zhuǎn)換為計算機(jī)能讀懂的語言,那么問題來了,根據(jù)詞向量,該如何表達(dá)特征詞呢?假設(shè)某用戶含有N個特征詞,每個特征詞使用K維的詞向量表示。有人可能會說,把詞向量拼起來,將一個用戶形式化為N*K的向量,但這種做法并不合適,因為無法解決不同用戶的特征詞數(shù)量所導(dǎo)致的維度不一致問題,下面為我們的方法:首先,使用傳統(tǒng)的One-Hot方式,具體是先構(gòu)建一個詞典,它包含所有我們選取的特征詞;然后,對于用戶的每一個搜索詞,如果它在詞典中出現(xiàn)了,對應(yīng)位置就標(biāo)記為1,否則標(biāo)記為0;最終,每一個用戶的特征表示就是01序列,長度為詞典長度。再然后使用Word2vec把特征詞向量加和求平均值,根據(jù)特征詞的語義獲得其分布式表達(dá),且詞語之間的相似性可以由向量的余弦夾角來表示,豐富了詞語特征的表達(dá)。測試集第一個用戶特征向量表示如下(一共是300維向量,這里只展示24維向量):[-0.13521618 ?-0.12654323 ?-0.29329249 -0.09194205 ?0.08417522 ?0.27917215 ?0.13377914 ?0.05475752 ?-0.09656907 ?0.14759752 ?-0.39463448 -0.0143092 ?-0.60612251 ?-0.39274153 ?-0.16835085 -0.21356585 ?-0.29147161 ?0.40192119 ?0.37719944 ?0.25010119 ?-0.29925515 ?0.31874303 ?-0.1342936 ? 0.43075851]
2.5 ?用戶畫像模型
Stacking模型:集成學(xué)習(xí)就是通過構(gòu)建并結(jié)合多個學(xué)習(xí)器來完成學(xué)習(xí)任務(wù),多個學(xué)習(xí)器的結(jié)合??梢垣@得比單一學(xué)習(xí)器顯著優(yōu)越的泛化性能。其中Stacking是一種著名的集成學(xué)習(xí)方法。
Stacking先從初始數(shù)據(jù)集訓(xùn)練出初級學(xué)習(xí)器,然后“生成”一個新的數(shù)據(jù)集用于訓(xùn)練次級學(xué)習(xí)器,在這個新數(shù)據(jù)集中,初級學(xué)習(xí)器的輸出被當(dāng)作樣例輸入特征,而初始樣本的標(biāo)記仍被當(dāng)作樣例標(biāo)記[3]。
Stacking集成最大的特點是靈活,我們可以設(shè)置多層級的Stack,每層可以設(shè)置合適的分類器簇,并且可以將新特征很方便的融合在層之間的中間結(jié)果里。經(jīng)典的Stacking框架分為2層,第一層含有T個分類器,產(chǎn)生T組與原數(shù)據(jù)集規(guī)模相同且維度為1的結(jié)果,將這T組結(jié)果拼在一起可組成新的數(shù)據(jù)集,用以構(gòu)成第二層的輸入。在一層中,對于T個分類器中的每一個分類器,我們把訓(xùn)練數(shù)據(jù)分割為N份,利用其中的N-1份做訓(xùn)練,剩下的那一份做預(yù)測,這樣對訓(xùn)練集重復(fù)N次,就可以得到在一個分類器下對原始訓(xùn)練數(shù)據(jù)的一個完整預(yù)測結(jié)果,于是一個分類器可以得到N*1的新表達(dá),那么T個分類器就可以得到N*T的新表達(dá),而這就是用于下一層的輸入。
2.6 ?模型預(yù)測結(jié)果
Stacking模型預(yù)測準(zhǔn)確率如表2所示。
3.1 ?總結(jié)
我們在實驗中遇到了很多難題,比如龐大的數(shù)據(jù)量,繁多臃腫的特征向量,為保證精準(zhǔn)性,并沒有做大批量刪除處理,在保證結(jié)果的精度的前提下我們只保留了頻率大于50的詞,對小部分?jǐn)?shù)據(jù)進(jìn)行刪減,使數(shù)據(jù)更加精簡整潔,在解決數(shù)據(jù)冗雜的問題后,我們利用模型得到的結(jié)果與實際相比較準(zhǔn)確率較低,因此,我們對預(yù)處理部分做了進(jìn)一步優(yōu)化,篩選出沒有使用到的詞,在此基礎(chǔ)之上,變換不同的Word2vec維度,以得到準(zhǔn)確率更高的結(jié)果。
在如今互聯(lián)網(wǎng)高速發(fā)展的背景下,勾勒用戶畫像作為一種手段,有非常廣泛的用途,例如:精準(zhǔn)營銷,用戶分析,數(shù)據(jù)分析,數(shù)據(jù)應(yīng)用等。用戶畫像根據(jù)用戶搜索記錄,搜索頻數(shù),瀏覽時間等建立用戶個性化配置文件,再使用各種數(shù)據(jù)挖掘工具從用戶歷史記錄中學(xué)習(xí)用戶個人愛好與偏向,即這可以作為是從搜索即瀏覽記錄中刻畫用戶畫像,從而應(yīng)用在個性化訂制推薦中[4]。曾鴻等(2016)通過采集分析新浪微博等用戶社交數(shù)據(jù),定量分析定性描述社交網(wǎng)絡(luò)用戶的群體行為特征,構(gòu)建基于社交數(shù)據(jù)的用戶畫像模型,支撐精準(zhǔn)營銷[5]。
本文基于十萬搜狗用戶的搜索詞條,在經(jīng)過數(shù)據(jù)預(yù)處理、特征選擇、建立特征向量等處理后,我們采用Stacking分類模型對性別、年齡、學(xué)歷三項進(jìn)行預(yù)測,并與正確結(jié)果做比較,所得結(jié)果如下:性別標(biāo)簽的精確度為0.783;年齡標(biāo)簽的精確度為0.584;學(xué)歷標(biāo)簽的精確度為0.601。
3.2 ?展望
本文是通過用戶搜索詞對用戶貼標(biāo)簽,由于存在同一賬號不同用戶使用的情況,可能會導(dǎo)致一些誤差,所以可以分時間段對詞進(jìn)行處理,以提高準(zhǔn)確性。
參考文獻(xiàn):
[1] 趙鑫,丁效.淺析推薦系統(tǒng)中的用戶畫像構(gòu)建與應(yīng)用 [J].中國計算機(jī)學(xué)會通訊2017,13(11):45-51.
[2] 李雅坤.基于搜索引擎的用戶畫像構(gòu)建方法研究 [D].山西:山西財經(jīng)大學(xué),2018:1-3.
[3] 周志華.機(jī)器學(xué)習(xí) [M].北京:清華大學(xué)出版社,2016:183-185.
[4] Adomavicius G,Tuzhilin A. User profiling in personalization applications through rule discovery and validation [A]. Proceedings of the fifth ACM SIGKDD international conference on Knowledge discovery and data mining [C],DBLP,1999:377-381.
[5] 曾鴻,吳蘇倪.基于微博的大數(shù)據(jù)用戶畫像與精準(zhǔn)營銷 [J].現(xiàn)代經(jīng)濟(jì)信息,2016(16):306-308.
作者簡介:馬朋輝(1999.08-),男,漢族,河南周口人,軟件工程專業(yè),本科,研究方向:機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘;王雪寧(1997.08-),女,蒙古族,遼寧朝陽人,計算機(jī)科學(xué)與技術(shù)專業(yè),本科,研究方向:網(wǎng)絡(luò)與信息安全;李勇(1998.07-),男,回族,寧夏吳忠人,本科,研究方向:數(shù)學(xué)統(tǒng)計;邵帥(1998.06-),女,漢族,黑龍江哈爾濱人,網(wǎng)絡(luò)與信息安全專業(yè),本科在讀,研究方向:網(wǎng)絡(luò)與信息安全。