王雅靜,郭 強(qiáng),鄧春燕 ,林青軒 ,劉建國
(1.上海理工大學(xué)復(fù)雜系統(tǒng)科學(xué)研究中心,上海 200093;2.上海財經(jīng)大學(xué)會計與財務(wù)研究院,上海 200433;3.新浪微熱點(diǎn)大數(shù)據(jù)研究院,上海 210204)
用戶特征是分析網(wǎng)絡(luò)用戶的重要途徑,它可以基于用戶行為以及建立模型實(shí)現(xiàn)預(yù)測[1],在了解用戶個體的同時也能夠提高社交平臺的信息服務(wù)質(zhì)量,近年來通過用戶各種行為推斷用戶特征、實(shí)現(xiàn)應(yīng)用的相關(guān)研究[2-4]也逐漸增多。而點(diǎn)贊行為相較其他用戶行為更簡單直接,它能直接體現(xiàn)用戶對某事件是否持有贊同態(tài)度,并且同樣能夠?qū)崿F(xiàn)用戶特征的預(yù)測[5-6]。文獻(xiàn)[7]曾通過Facebook上在線用戶的點(diǎn)贊標(biāo)簽進(jìn)行奇異值分解(SVD)和Logistic回歸,預(yù)測用戶特征和屬性。SVD優(yōu)點(diǎn)在于可以忽略用戶的主題偏好,直接利用點(diǎn)贊行為進(jìn)行特征預(yù)測。但由于無法保證SVD的魯棒性,預(yù)測新數(shù)據(jù)時需要重新構(gòu)建矩陣進(jìn)行計算,然而實(shí)際問題中通常面臨百萬級別以上的數(shù)據(jù),此時再通過SVD計算的代價很大,因此難以實(shí)現(xiàn)新數(shù)據(jù)的預(yù)測。該場景下考慮用戶點(diǎn)贊的主題特征更有效。
微博作為當(dāng)今流行的社交平臺,成為了各領(lǐng)域的研究熱點(diǎn)。由于用戶發(fā)表的短文本標(biāo)簽一般由微博平臺提供,用戶在微博上發(fā)生的點(diǎn)贊行為可以視作用戶個人偏好的具體體現(xiàn),但并非所有已有標(biāo)簽均能夠準(zhǔn)確地體現(xiàn)用戶真實(shí)偏好[8]。若能將主題模型與用戶點(diǎn)贊行為相結(jié)合,利用主題模型挖掘用戶點(diǎn)贊信息的隱含主題,不僅能夠更好地表達(dá)用戶真實(shí)偏好,當(dāng)新數(shù)據(jù)加入時,新數(shù)據(jù)中用戶點(diǎn)贊信息的主題分布還能夠由訓(xùn)練好的主題模型判斷得到,進(jìn)而實(shí)現(xiàn)新用戶的特征預(yù)測。主題模型是挖掘文本主題的重要工具。
主題模型常用于自然語言處理與機(jī)器學(xué)習(xí)中,通過發(fā)現(xiàn)文檔中核心主題,可以有效避免忽略文檔的詞背后隱藏的語義信息[9]。由于微博短文本的特性,為了降低在主題提取過程中微博信息的稀疏性和多維性造成的影響,可以選擇基于語義分析的模型挖掘微博主題[10],常見語義分析文本挖掘模型有LSA(Latent Semantic Analysis)、PLSA(Probabilistic Latent Semantic Analysis)和LDA,其中LSA需要大量文檔以及詞匯提升結(jié)果,PLAS存在過擬合問題[11],而LDA主題模型雖屬于無監(jiān)督模型,但模型能根據(jù)已有語料庫訓(xùn)練進(jìn)而劃分新文本主題,并且能夠克服標(biāo)簽局限性以及語義模糊性、緩解數(shù)據(jù)多維性和稀疏性等問題[12],因此在微博主題提取中,LDA主題模型被廣泛應(yīng)用。文獻(xiàn)[13]通過LDA模型提取隱含主題特征;文獻(xiàn)[14]使用LDA模型挖掘用戶潛在興趣主題。
本文的主要貢獻(xiàn)為:1)實(shí)驗(yàn)中通過LDA主題模型對用戶點(diǎn)贊文本集合進(jìn)行主題挖掘,用一致性系數(shù)判斷最佳主題數(shù),實(shí)現(xiàn)主題劃分,實(shí)驗(yàn)結(jié)果顯示,基于主題預(yù)測用戶特征相較基于微博標(biāo)簽SVD的F1值最高提升0.15,一定程度上反映了主題挖掘更能體現(xiàn)用戶的真實(shí)偏好,幫助平臺更加了解用戶群體;2)提出了一種預(yù)測新用戶特征的研究方法。利用已訓(xùn)練好的主題模型直接對新加入的數(shù)據(jù)進(jìn)行用戶特征預(yù)測,避免了SVD預(yù)測過程中仍需重新計算的弊端,為用戶特征分析提供了另一條可行途徑。
本文實(shí)驗(yàn)中,以基于SVD分解的傳統(tǒng)預(yù)測模型作為對比方法。SVD算法是一種矩陣分解算法,假設(shè)矩陣A∈R是一個a×b的矩陣,則定義矩陣A的SVD分解為:
(1)
其中,U∈R是a×a的正交矩陣,U的列向量稱為左奇異值向量;Σr=diag(λ1,λ2,…,λr),對角線的值為矩陣A的非零奇異值,r=rank(A);V∈R是b×b的正交矩陣,VT是V的轉(zhuǎn)置,V的列向量稱為右奇異向量。一般可用最大的k個奇異值和相應(yīng)的左右奇異值向量近似描述矩陣,即:
(2)
Logistic回歸是經(jīng)典的二分類模型,其主要思想是:利用現(xiàn)有數(shù)據(jù),在分類邊界線上構(gòu)建回歸公式,進(jìn)而實(shí)現(xiàn)分類和預(yù)測[16]。Logistic回歸由條件概率P(Y|X)表示,隨機(jī)變量X取值為實(shí)數(shù),隨機(jī)變量Y取值為0或1。參數(shù)一般通過訓(xùn)練數(shù)據(jù)確定模型,進(jìn)而實(shí)現(xiàn)預(yù)測。二項(xiàng)Logistic的條件概率分布如式(3)所示。
(3)
(4)
SVD分解后的矩陣以及對應(yīng)的用戶特征作為訓(xùn)練集輸入Logistic回歸模型,進(jìn)而實(shí)現(xiàn)對新數(shù)據(jù)的預(yù)測。當(dāng)訓(xùn)練集出現(xiàn)類別數(shù)據(jù)不平衡的問題時,可以利用smote算法平衡數(shù)據(jù)。類別不平衡,即訓(xùn)練集中某類數(shù)據(jù)樣本數(shù)量和其他類樣本數(shù)量差值過大,使得部分機(jī)器學(xué)習(xí)模型失效的問題。實(shí)驗(yàn)中Logistic回歸算法便不適合處理類別不平衡問題,因?yàn)楫?dāng)絕大多數(shù)樣本都為正常樣本而其他類樣本很少,Logistic模型傾向于把待預(yù)測的大部分樣本判定為正常,這樣雖然準(zhǔn)確率(P)很高,卻達(dá)不到較高的召回率(R)[17]。因此針對這種問題,需要使用smote算法平衡訓(xùn)練集中的類別數(shù)據(jù)后再進(jìn)行預(yù)測,才能保證預(yù)測結(jié)果具有參考性。
基于SVD分解的預(yù)測模型可以忽略用戶的偏好主題,直接利用用戶的點(diǎn)贊行為實(shí)現(xiàn)用戶特征預(yù)測,但缺陷在于運(yùn)算復(fù)雜度較高,假設(shè)對矩陣Aa×b做分解,則時間復(fù)雜度為O(b2a+ba2)≈O(b3),而預(yù)測新數(shù)據(jù)集時需要重構(gòu)矩陣,加大了運(yùn)算復(fù)雜度,因此難以預(yù)測新數(shù)據(jù)集。
本文基于用戶信息以及其點(diǎn)贊微博文本,建立主題模型,進(jìn)而預(yù)測新用戶的特征。首先利用預(yù)處理后的用戶點(diǎn)贊微博數(shù)據(jù)訓(xùn)練LDA主題模型、確定合適主題數(shù)并劃分主題;然后基于“用戶—主題”的關(guān)聯(lián)規(guī)則建立對應(yīng)稀疏矩陣,并訓(xùn)練預(yù)測模型;最后加入新數(shù)據(jù)集,得到預(yù)測結(jié)果。本文提出的基于LDA的用戶特征預(yù)測模型具體流程如圖1所示。
圖1 基于LDA主題提取的用戶特征預(yù)測模型流程圖
通過LDA主題模型可以對用戶相應(yīng)的點(diǎn)贊微博文本進(jìn)行主題劃分。LDA模型是一個基于“文檔—主題—詞”的三層貝葉斯文檔主題生成模型,即認(rèn)為一篇文檔中每個詞都是通過“某個概率確定主題,并從該主題中概率確定某個詞語”過程得到的,文檔到主題以及主題到詞均服從多項(xiàng)式分布。當(dāng)利用LDA主題模型獲取微博平臺上用戶點(diǎn)贊微博的主題時,LDA主題模型的文檔對應(yīng)為點(diǎn)贊微博集合,詞對應(yīng)為用戶點(diǎn)贊微博文本,LDA根據(jù)文檔中的詞不斷訓(xùn)練得出文檔的主題以及主題分布,便能得到點(diǎn)贊微博文本-主題概率多項(xiàng)分布。假設(shè)D={d1,d2,…,dM}為微博文本集合,M為訓(xùn)練的微博文本數(shù)量,每個文本有N個詞,n代表主題數(shù),θi為微博di的主題分布,φti,j為主題ti,j的詞分布,其中Dirichlet(α)是參數(shù)為α的先驗(yàn)分布,是LDA通過訓(xùn)練生成文本對應(yīng)的主題分布;Dirichlet(β)是參數(shù)為β的先驗(yàn)分布,模型中訓(xùn)練生成主題對應(yīng)的詞分布,則模型中各種變量關(guān)系可表示為
(5)
其中,式(5)中隱含變量的條件分布可以通過聯(lián)合概率分布計算為[18]:
(6)
本文以用戶的點(diǎn)贊微博文本集合為輸入,訓(xùn)練LDA模型,進(jìn)而獲得每條微博的主題分布。
在構(gòu)建主題模型前,需要基于“用戶—點(diǎn)贊微博”的二元關(guān)系,使用Python語言提供的機(jī)器學(xué)習(xí)包Gensim對用戶的點(diǎn)贊微博文本進(jìn)行LDA主題劃分,而合適的主題數(shù)量n是重要參數(shù)。主題數(shù)n是由LDA模型根據(jù)文本集合劃分的主題個數(shù),每一個主題均由詞的概率分布組成,主題數(shù)過大或者過小均會影響到預(yù)測模型的結(jié)果。Gensim提供了一個數(shù)值定量評估方法“主題相干性”判定主題模型質(zhì)量的好壞,它表明人們對主題模型的理解更傾向于屬于同一主題的單詞在語料庫中共同出現(xiàn)的頻率,該方法得到的數(shù)值稱為“一致性系數(shù)”,可用于評估LDA在不同主題數(shù)下的分類效果,取值范圍∈[-1.0,1.0],通常數(shù)值越高,該主題數(shù)下的主題模型效果越好[19]。常見的一致性系數(shù)有CV、CP、CUMass等,其中CV組合了間接余弦度量、標(biāo)準(zhǔn)化點(diǎn)互信息和布爾滑動窗口,綜合性能更強(qiáng)[20],因此本文使用CV的數(shù)值度量主題模型輸出的一致性。通過對LDA主題的一致性系數(shù)計算,可以為用戶點(diǎn)贊信息集合提供適當(dāng)?shù)闹黝}數(shù)量,并將每條點(diǎn)贊微博分配到相應(yīng)主題中。
確定最佳主題數(shù)n后便得到“點(diǎn)贊微博—主題”的概率分布,即點(diǎn)贊微博di在每個主題tn下的主題分布概率pin,其中主題集合Topic={t1,t2,…,tn},微博di的主題分布θi={(t1,pi1),(t2,pi2),…,(tn,pin)},LDA主題模型完成訓(xùn)練。
選取點(diǎn)贊微博di中最高概率值所對應(yīng)的主題t,作為該微博所屬主題。假設(shè)User={user1,user2,…,userm}為用戶集合,以主題集合和用戶集合分別作行標(biāo)簽與列標(biāo)簽,建立“用戶—主題”稀疏矩陣,該稀疏矩陣建立規(guī)則為:若用戶點(diǎn)贊過主題tj下的微博,記為1;若該用戶未點(diǎn)贊過主題tj下的微博,則記為0。因此構(gòu)建的“用戶—主題”稀疏矩陣Cm×n示例如式7所示。將該稀疏矩陣以及用戶對應(yīng)的特征作為輸入,訓(xùn)練預(yù)測模型。本次實(shí)驗(yàn)中選用的預(yù)測模型同樣是Logistic回歸模型。
(7)
新數(shù)據(jù)集加入時,新用戶點(diǎn)贊信息的主題分布可由訓(xùn)練好的主題模型推斷得到,進(jìn)而實(shí)現(xiàn)新用戶的特征預(yù)測。清洗數(shù)據(jù)后,首先將新數(shù)據(jù)集中用戶點(diǎn)贊微博文本集合輸入到已訓(xùn)練的LDA主題模型中,實(shí)現(xiàn)主題劃分;其次仍構(gòu)建相應(yīng)的“用戶—主題”稀疏矩陣;最后使用已訓(xùn)練Logistic回歸模型,預(yù)測新數(shù)據(jù)中用戶特征,完成預(yù)測。
微博作為當(dāng)今人們交流和共享信息的熱門平臺,能夠提供用戶行為等各方面豐富的公開數(shù)據(jù),為學(xué)術(shù)研究奠定了充足的數(shù)據(jù)基礎(chǔ)。因此,本文以微博平臺數(shù)據(jù)為例,提取某熱點(diǎn)事件下參與討論的所有用戶近1年內(nèi)的點(diǎn)贊微博,并剔除點(diǎn)贊次數(shù)低于5次的用戶以及被點(diǎn)贊次數(shù)低于10次的微博文本,最終篩選出64 598位用戶及這些用戶的點(diǎn)贊微博共計1 854 548條,并劃分訓(xùn)練集和測試集,分別作為訓(xùn)練模型的數(shù)據(jù)以及待預(yù)測的新數(shù)據(jù)集。測試集為總數(shù)據(jù)集中隨機(jī)選取的約20%用戶以及對應(yīng)的點(diǎn)贊微博。最終得到表1所列數(shù)據(jù)集合:
表1 數(shù)據(jù)清洗后有效用戶數(shù)以及相應(yīng)的點(diǎn)贊微博數(shù)
待預(yù)測特征有性別、認(rèn)證類型、是否本科學(xué)歷、年齡階段。表2為訓(xùn)練集中有特征信息的用戶數(shù)量分布。
表2 訓(xùn)練集中用戶特征分布情況
表2顯示訓(xùn)練集中僅性別中男女類別比例相近,而其他特征均出現(xiàn)一個類別遠(yuǎn)高于另一類別的數(shù)據(jù)不平衡特點(diǎn)。為保證預(yù)測模型預(yù)測結(jié)果準(zhǔn)確,對于類別不平衡的數(shù)據(jù)需要利用smote算法做類別平衡后再訓(xùn)練預(yù)測模型。
一致性系數(shù)計算通過Gensim包中的ConherenceModel實(shí)現(xiàn)。實(shí)驗(yàn)中以10為間隔,可以得到不同主題數(shù)對應(yīng)的一致性系數(shù)變化趨勢,具體如圖2所示。
圖2 不同主題數(shù)下的一致性系數(shù)
圖2可知當(dāng)主題數(shù)n=110時,一致性系數(shù)均高于其他主題數(shù)下的相應(yīng)值,主題模型在該主題數(shù)下的表現(xiàn)更佳,因此設(shè)置實(shí)驗(yàn)中LDA主題模型的主題數(shù)n為110。
實(shí)驗(yàn)中模型的評價指標(biāo)主要依據(jù)F1值。二分類問題通常將樣例以真實(shí)的類別和預(yù)測后的類別為基礎(chǔ),組合為真正例(True Positive)、假正例(False Positive)、真反例(True Negative)以及假反例(False Negative)4種情形,在該組合基礎(chǔ)上可得到學(xué)習(xí)器評價指標(biāo):準(zhǔn)確率(Precision)與召回率(Recall),定義為:
(8)
(9)
通常準(zhǔn)確率與召回率呈反比關(guān)系。為了能夠兼顧準(zhǔn)確率和召回率,Pazzani[21]等在同時考慮兩者的基礎(chǔ)上提出了F-Measure指標(biāo)。F-Measure指標(biāo)即F1值,可看作準(zhǔn)確率與召回率的一種調(diào)和平均。F1取值范圍為[0,1],通常值越高說明預(yù)測效果越好,定義為:
(10)
利用Logistic回歸模型完成測試集的預(yù)測?;贚DA的預(yù)測模型(當(dāng)主題數(shù)n=110時)與基于SVD的預(yù)測模型(當(dāng)降維數(shù)k=110時)對測試集用戶特征預(yù)測結(jié)果評估具體如圖3所示。
圖3a表明,兩種模型僅預(yù)測性別特征時F1值相近,其他特征預(yù)測中LDA預(yù)測模型F1值均高于SVD預(yù)測模型,并在預(yù)測本科學(xué)歷特征時有最明顯的差異,差值高達(dá)約0.15。進(jìn)一步比較在測試集中,基于LDA的預(yù)測模型與基于SVD的預(yù)測模型對用戶特征預(yù)測運(yùn)算時間,結(jié)果如圖3b所示。圖3b可見,兩種模型預(yù)測測試集中各類用戶特征時,基于LDA的預(yù)測模型運(yùn)算時間均低于基于SVD的預(yù)測模型運(yùn)算時間,其中在性別預(yù)測中時間減少68.19%,本科學(xué)歷預(yù)測中時間減少66.45%,認(rèn)證類型預(yù)測中時間減少74.34%,年齡階段預(yù)測中時間減少67.40%,運(yùn)算時間平均減少69.09%。
圖3 兩種預(yù)測模型的F1值比較
綜合分析,基于LDA的預(yù)測模型在F1值以及運(yùn)算時間均優(yōu)于基于SVD的預(yù)測模型,說明LDA主題模型較SVD模型能夠更好的實(shí)現(xiàn)對新數(shù)據(jù)集用戶特征的預(yù)測。
本文的研究基于用戶基本特征信息以及用戶相應(yīng)的點(diǎn)贊微博文本數(shù)據(jù),對新數(shù)據(jù)的用戶特征進(jìn)行預(yù)測。首先對已有數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗,篩選出符合條件的用戶以及相應(yīng)的點(diǎn)贊微博文本,利用LDA主題模型劃分用戶點(diǎn)贊微博文本的主題,并選用“一致性系數(shù)”作為確定最佳主題數(shù)的指標(biāo)后,完成LDA主題模型的訓(xùn)練;其次基于“用戶-主題”關(guān)聯(lián)規(guī)則建立對應(yīng)的稀疏矩陣,作為訓(xùn)練Logistic預(yù)測模型的輸入;最后通過加入新數(shù)據(jù)集,根據(jù)已有模型判斷新數(shù)據(jù)集中用戶點(diǎn)贊文本的主題分布,從而實(shí)現(xiàn)對新數(shù)據(jù)集用戶的特征預(yù)測,并將預(yù)測結(jié)果與傳統(tǒng)的SVD方法得到的結(jié)果進(jìn)行比較。實(shí)驗(yàn)結(jié)果表明,基于LDA的預(yù)測模型在預(yù)測用戶特征時,各特征相應(yīng)的F1值以及運(yùn)算時間均優(yōu)于基于SVD的傳統(tǒng)預(yù)測模型,并且由于LDA模型在預(yù)測新數(shù)據(jù)集時,僅需根據(jù)已訓(xùn)練的LDA主題模型便能夠得到新數(shù)據(jù)集的主題分布,很大程度上降低運(yùn)算的復(fù)雜度,同時也提高了運(yùn)算速度,相較SVD模型需重構(gòu)矩陣計算,更具有預(yù)測效率。
本文工作中提出的基于LDA的預(yù)測模型不僅彌補(bǔ)了現(xiàn)有標(biāo)簽不能有效反映用戶真實(shí)偏好的缺陷,并且為快速預(yù)測在線用戶特征提供了另一條便捷途徑。本文的研究也存在以下不足:實(shí)驗(yàn)數(shù)據(jù)僅基于微博平臺上某個特定事件,存在局限性,若選取多個熱點(diǎn)事件下的用戶及其點(diǎn)贊信息集合作為訓(xùn)練集,提升訓(xùn)練集的數(shù)據(jù)質(zhì)量,在預(yù)測新數(shù)據(jù)的用戶特征時是否能夠提升預(yù)測效果;此外由于用戶的每一條點(diǎn)贊微博服從主題的概率分布,若構(gòu)建用戶-點(diǎn)贊微博主題概率分布矩陣而非建立用戶-主題稀疏矩陣,以該矩陣訓(xùn)練模型用于預(yù)測用戶特征,預(yù)測結(jié)果有何變化。本文中未討論這些情況,后續(xù)可以對該預(yù)測模型拓展相關(guān)工作,進(jìn)一步提高模型性能。