吳 迪,馬文莉,楊利君
(河北工程大學 信息與電氣工程學院,河北 邯鄲 056038)
目前,用戶畫像[1-5]主要分為3類:基于用戶行為[6]、用戶偏好[7]和主題的用戶畫像[8]。其中,基于主題的用戶畫像因能夠充分利用微博用戶各種文本信息,以建立全面精準的用戶畫像而被廣泛應用。Ding等[9]提出了基于動態文本建模的LDA-RCC模型,用于分析用戶興趣并建立用戶畫像。李琴等[10]提出了變分自編碼的有監督主題情感聯合分析模型,刻畫用戶群體游客畫像。上述研究只利用主題模型提取用戶主題詞,未考慮用戶興趣的變化。
近年來,研究者們開始考慮時間因素對微博用戶興趣的影響。吳樹芳等[11]提出了利用層次分析法和生命周期理論微博用戶畫像構建方法。馮勇等[12]提出了利用遺忘曲線擬合衰減因子的TIF-LDA主題模型。安璐等[13]利用生命周期理論,從用戶和文本兩個角度,提取微博用戶特征。王勝等[14]充分考慮主題模型建模過程詞頻權重對主題詞的影響,提出了基于詞頻特征的SL-LDA主題模型,提高中頻詞的影響力。
針對微博短文本具有時效性和建模中頻詞缺失的問題,從時間和詞頻兩個角度出發,提出了遺忘曲線和BTM詞頻雙層加權微博用戶畫像TW-BTM方法。利用遺忘曲線擬合時間函數,以計算詞條的時間權重;采用詞頻特征改進BTM建模過程,以提高中頻詞的詞頻權重。
針對傳統主題模型LDA對短文本建模的不足,短文本建模BTM主題模型應運而生。利用整個語料庫的單詞共現模式提高主題學習能力,解決了短文本特征稀疏的問題。具體來說,是將整個語料庫看成所有主題的混合,其中每個詞對都是獨立于一個主題的。一個詞對屬于某一主題的概率稱為詞概率分布,是由詞對中每個詞屬于該主題的概率相乘得到。BTM圖模型如圖1所示,超參數α和β是狄利克雷先驗參數,具體描述如下:①對語料庫采樣一個主題分布Θ~Dir(α); ②對每個主題Z∈[1,k], 確定主題Z下的詞分布Φ~Dir(β); ③對每個雙詞b=(wi,wj)∈B, 采樣一個主題Z~Mult(Θ), 根據主題Z, 每個詞對都從獨立主題中采樣,即wi,wj~Mult(Φ)。

圖1 BTM圖模型
針對用戶博文時效性及短文本建模中頻詞缺失的問題,提出了遺忘曲線和BTM詞頻雙層加權微博用戶畫像TW-BTM方法(forgetting curve time function and btm word frequency double-weighted microblog user portrait,TW-BTM)。將微博數據集按時間片切分;利用擬合時間函數,計算微博詞條的時間權重,動態調整用戶興趣詞集;采用詞頻加權BTM對不同時間片上處理后的用戶興趣詞集建模,獲取經雙層加權處理的用戶興趣主題詞;通過微博用戶行為影響力獲取不同時間片下各主題對應的主題詞,構建用戶畫像。TW-BTM方法框架如圖2所示。
如圖2所示,TW-BTM方法的總體框架包括:微博文本預處理、微博用戶主題滿意度、時間和詞頻雙層加權、微博用戶行為影響力計算。
采用jieba分詞對微博短文本進行處理,主要包括微博短文本過濾、分詞及詞性標注、去停用詞和特征選擇4個步驟。對處理好的文本集按時間片大小劃分數據。微博短文本集預處理流程如圖3所示。
由于數據集的特殊性,本文根據數據集的特點,構建一個詞典userdict和添加了一些網絡口語、表情包的停用詞表stoplist,幫助分詞工具更好的對數據集中特定詞的準確分詞,提高分詞的準確率。
2.2.1 遺忘曲線時間加權
針對用戶博文時效性的問題,不同時間的博文表現了用戶對話題不同的關注興趣點,故考慮時間因素的影響,從時間權重的角度,動態調整用戶興趣詞集。
采用jieba分詞后的數據,初步構建用戶興趣詞集。利用艾賓浩斯遺忘曲線擬合時間函數,獲取不同時間片微博文本詞條的時間權重之和,動態調整用戶興趣詞集,挖掘不同時期的用戶關注點。
艾賓浩斯遺忘曲線[12]是由德國心理學家艾賓浩斯針對人腦對于新事物的遺忘規律得出的研究成果。艾賓浩斯遺忘曲線,描述了人對事物的記憶隨時間變化逐漸降低的過程。可以將用戶對一個事物的興趣關注度類比為記憶,根據艾賓浩斯曲線呈現的圖像得出用戶對一個事物的興趣關注程度隨著時間不斷降低的結論。利用遺忘函數擬合的時間因子,符合遺忘曲線變化趨勢,進而擬合時間函數。
假設ST表示艾賓浩斯遺忘曲線擬合時間因子,則公式如下所示
ST=85.09×[Tmax-(Tu0-tε)]-0.2298+16.22
(1)
假設TW表示用戶詞條出現的時間與當前時間的時間差所反映的用戶興趣變化的權重,則公式如下所示
(2)
假設SumTW表示時間片內各詞條的時間權重之和,則公式如下所示
(3)
其中,Tu0表示詞條在時間片內第一次出現的時間,Tmax表示時間窗口的最大時間,Tcur表示當前時間,Trec表示詞條在時間片內最后一次出現的時間,t=1,2,…,n表示時間片的個數,ε表示時間窗的大小。式(2)中的數字含義參考文獻[16]。
根據遺忘曲線時間權重之和SunTW, 設置時間權重閾值,通過實驗獲取最佳閾值,篩選掉低頻詞匯,提高中頻詞占比,幫助模型能夠更好提取用戶興趣主題詞。

圖2 TW-BTM方法框架

圖3 微博短文本集預處理流程
2.2.2 改進BTM詞頻加權
針對傳統BTM主題模型在處理微博短文本時存在語義特征稀疏和中頻詞缺失的問題,本文對BTM進行改進,提出了一種詞頻加權的BTM主題模型。具體是根據統計文檔中的當前詞的詞頻、中頻詞的詞頻及詞頻統計結果中的最大最小值,并計算每個詞出現的次數及在文本中的權重之和,重新調整特征詞的權重。將調整好的詞頻特征引入Gibbs采樣的過程中,采樣過程中初始化的不再是隨機值,而是重新計算的詞頻權重。這可以降低高頻詞的影響力,提高中頻特征詞的影響力。經過計算時間權重和提高中頻詞詞頻權重,使得模型不過分偏重于高頻特征詞詞語,更準確提取各主題間的主題詞。
為保障加權后總特征詞的個數不變,需要對每個特征詞的權重做調整,Ci為調整好的詞的權重。用計算得到的Ci替換Gibbs采樣過程中初始化的隨機值。假設Gi表示第i個詞的權重,取值范圍[1,2]。則模型的詞頻加權公式如下[15]
(4)
(5)

2.3.1 微博用戶主題滿意度
微博匯聚了大量包含人們思想、感受和經歷的文本[16]。熱點話題下,用戶發布的博文具有不同的情感信息,表達了用戶的不同感受。通過對微博文本的情感極性分析,更準確提取用戶需求。根據用戶發布的博文,利用借助情感詞典的情感計算模型,計算整條博文的情感得分。
由于微博博文發布格式隨意,內容常包含大量網絡用語和日常口語。常用的情感詞典無法覆蓋這些網絡交互用語,不能準確挖掘文本原本的情感信息。因此采用BosonNLP情感詞典對用戶博文進行情感分析,該詞典是從微博、新聞、論壇等數據來源的上百萬篇情感標注數據當中自動構建的情感極性詞典。因為標注包括微博數據,并有很多網絡用語及非正式簡稱,對非規范文本也有較高的覆蓋率,更符合本文分析博文情感極性的情況。
情感計算模型步驟具體如下:
步驟1 獲取BosonNLP情感詞典內容,BosonNLP情感詞典中包含情感詞和對應的情感權重;讀取情感詞典的每一行,轉換成字典格式;
步驟2 將分詞結果轉換為字典,找出分詞文本中的情感詞、否定詞和程度副詞;
步驟3 情感詞權重初始化為1,單條用戶博文情感分數為0,情感詞下標初始化為-1,情感詞的位置下標集合;
步驟4 遍歷分詞文本
(1)判斷是否是情感詞,如果是情感詞,則權重*情感詞;
(2)情感詞下標加1,獲取下一個情感詞的位置;①判斷當前的情感詞與下一個情感詞之間是否有否定詞或程度副詞;②更新單條博文的權重,如果有否定詞,權重取反;
(3)定位下一個情感詞;
步驟5 計算博文整體的情感得分,情感值為正數,表示積極;為負數表示消極。
通過情感計算模型,對用戶文本進行情感分析,獲取每一條用戶博文的情感極性,動態挖掘微博用戶主題滿意度,獲取用戶關注興趣點。
假設wk,t為t時間片下主題k的滿意度,則微博用戶主題滿意度[15]公式如下
(6)
式中:ht為t時間片下k主題的積極博文數量,Sk,t為t時間片下主題k下的博文總數。
2.3.2 微博用戶行為活躍度
考慮到熱點話題下不同時間片文本重要性的不同,如何提取由雙層加權獲得的不同時間片用戶興趣詞的占比構建用戶畫像是需要解決的問題。
熱點話題下用戶參與的方式存在多樣性,點贊、評論和轉發等用戶行為,同樣反映了用戶興趣關注點。考慮不同時間片用戶博文轉發量F、 評論量P和點贊量D等行為數據,提出了微博用戶行為活躍度。
假設Tk,t表示第t個時間片的微博用戶行為活躍度,則Tk,t計算公式如下
Tk,t=[(Ftmax/Fsum)+(Ptmax/Psum)+(Dtmax/Dsum)]/3
(7)
式中:Ftmax表示第t個時間片微博用戶博文最高轉發量,Fsum表示微博用戶博文總轉發量;Ptmax表示第t個時間片微博用戶博文最高評論量,Psum表示微博用戶博文總評論量;Dtmax表示第t個時間片微博用戶博文最高點贊量,Dsum表示微博用戶博文總點贊量。
結合微博用戶主題滿意度和微博用戶行為活躍度等因素,提出微博用戶行為影響力計算方法,提取不同時間片的用戶興趣主題詞,更全面刻畫熱點話題下的用戶畫像。假設vtm為t時間片下的微博用戶行為影響力,則vtm計算公式如下
(8)
式中:wk,t為t時間片下主題k的微博用戶主題滿意度,Tk,t表示第t個時間片下主題k的微博用戶行為活躍度,nk,t表示t時間片下各主題k下的特征詞個數。
綜上,TW-BTM方法描述如下:
步驟1 處理好的文本集按時間片大小劃分數據;
步驟2 對不同時間片內的微博詞條根據式(1)~式(3)計算時間權重,并根據權重設置閾值,動態調整用戶興趣詞集;
步驟3 將根據式(4)和式(5)計算得到的詞頻特征替換Gibbs抽樣過程中初始化的隨機值,利用詞頻加權BTM主題模型建模,提高中頻特征詞詞頻,獲取經雙層加權的用戶興趣主題詞;
步驟4 采用BosonNLP情感詞典和情感計算模型,分析用戶博文情感極性,利用情感極性信息根據式(6)計算微博用戶主題滿意度;
步驟5 利用用戶的興趣行為(點贊、評論、轉發)信息,根據式(7)計算微博用戶行為活躍度;
步驟6 根據式(8),利用微博用戶主題滿意度和微博用戶行為活躍度等因素計算微博用戶行為影響力,根據影響力值,提取不同主題下的主題詞;
步驟7 利用不同時間片下各主題詞的匯總,構建各熱點話題下的用戶畫像。
本文在64位Windows8版本系統的計算機上進行模型搭建與實驗。采用PyCharm Professional Version 2021.2.1和Anaconda3開發環境下進行,編譯語言為Python3。
本文采用的是新浪微博平臺發布的2014年5月4日到5月11日的公開熱點話題數據集,其中包含了84 168條數據,通過刪除數據中的噪聲重復數據,保留了37 739條博文。數據集的組成部分見表1,數據展示示例見表2。

表1 數據集的組成部分

表2 數據集展示示例
本文引入PMI-score作為模型的評價指標,PMI-score表示同主題下特征詞語之間的相關性,PMI-score分值越高,表明模型提取主題詞效果越佳,建模效果越好。PMI-score的計算公式如下
(9)
其中,p(wi,wj) 表示滑動窗口內同時出現詞對 (wi,wj) 的聯合分布概率,p(wi) 是詞語wi在邊緣概率分布范圍內出現在滑動窗口的邊緣概率,N表示每個主題下特征詞的個數,在這里,N=10。
TW-BTM的初始超參數取經驗值,α=50/k,β=0.01, 迭代次數由實驗所得,取20次實驗結果的平均值作為迭代次數的PMI-score值,實驗結果如圖4所示。

圖4 TW-BTM在不同迭代次數下的PMI-score
由圖4可知,迭代次數為100時,PMI-score值最優,表明提取的主題詞效果最佳,因此,本實驗中n-iter=100。
3.2.1 最優主題數選取
本文利用PMI-score確定最優主題數k值。本實驗中,α=50/k,β=0.01, 迭代次數為100,Day=3,主題數k取值為3,4,5,6,7,8,9,10,11。實驗重復進行20次,取20次實驗結果的平均值作為不同k值的PMI-score值,實驗結果如圖5所示。

圖5 4種方法在不同主題數下的PMI-score值
由圖5可知,隨著主題數的增加,4種模型的PMI-score都呈現先上升后下降的大趨勢且都在主題數目為8時,4種方法的PMI-score值最大,表明此時模型的建模效果最佳,因此選取的最優主題數k=8。
3.2.2 時間函數閾值選取
針對微博數據具有時效性的特點,利用遺忘曲線擬合時間函數,獲取每個時間片文本的時間權重,通過不同時間權重閾值的篩選,確定最佳的閾值。本實驗中,迭代次數為100,最優主題數k為8,取20次實驗結果的平均值作為不同閾值的PMI-score值,實驗結果如圖6所示。

圖6 遺忘曲線擬合時間函數在不同閾值下的PMI-score值
如圖6所示,本實驗在未經時間函數處理的原始文本數據及遺忘曲線時間函數閾值范圍設置為<100,<90和<80時進行。當文本的時間權重閾值為<100時,PMI-score值最大,這是由于時間函數篩選掉了數據集中的低頻詞,提高中頻詞的占比,使得TW-BTM能夠取得更好的建模效果。當閾值為<90和<80時,PMI-score逐漸降低,這是因為閾值設置低,不僅會減少文本分詞后的低頻詞匯,還減少了一部分中頻詞匯,導致在建模過程中,造成主題詞提取分類不明確。當數據集為原始數據時,PMI-score值比較低的原因是噪聲詞過多,導致主題建模出現大量重復詞匯且各主題間主題詞的區分度不高,出現主題詞混淆的情況。
3.3.1 微博文本主題分析
選取時間片3和時間片4下各主題的Top10主題詞,相關熱點話題的核心大致可以分為恒大、同桌的你、火箭、韓劇等8個主題。經過時間權重和詞頻權重的計算,TW-BTM提取的不同時間片各主題下用戶興趣主題詞,見表3。
從表3可知,時間片3和時間片4主題詞有一些重復的詞,這是由于不同時間片的數據集屬于同一個熱點話題,主題相同,因此不同時間片的主題詞有一定的重復度。同時前后時間片主題詞又存在不同,這是由于時間的推移,用戶對相關熱點話題的關注度更加深入,出現用戶興趣偏移的情況,因此不同主題下主題詞獲取結果不同。表明了TW-BTM能夠準確的捕獲用戶興趣詞,提高不同時間片各主題主題詞的區分度。
3.3.2 微博用戶主題滿意度分析
通過借助BosonNLP詞典,利用情感詞典模型對熱點話題下的用戶博文進行情感分析,實現熱點話題下用戶博文的情感二分類結果。其中,積極29 420條,消極8319條,由于微博用戶主題滿意度需要不同時間片各主題下的積極博文數量,故積極博文分布見表4。

表3 Day3和Day4的Top10主題詞

表4 熱點話題的積極博文分布情況
由表4所示的不同時間片主題下積極博文分布,依據式(6)計算各主題的微博用戶主題滿意度。實驗結果如圖7所示。

圖7 不同時間片下各主題的微博用戶主題滿意度
由圖7可知,微博用戶主題滿意度都在0以上,表明熱點話題下用戶博文大多是積極的,但各主題的滿意度是存在差異的。在各熱點話題中,恒大話題的用戶滿意度是各主題最高的,且整體趨勢趨于平穩狀態。在時間片7略有下降,表明用戶對那一天的比賽結果略有失望,用戶消極情感有所上升,但還是以積極為主。魅族話題用戶討論也是積極為主,但是消極評論增加的比例也是穩定的,表明部分用戶認為魅族手機存在一些不足之處,這也能幫助企業去更好改進產品,滿足用戶的基本訴求。用戶對其余主題的積極情感雖有升有降,也是積極為主,消極為輔。
3.3.3 微博用戶行為影響力分析
通過對不同時間片微博內容的點贊量、轉發量、評論量的計算,獲得微博用戶行為活躍度,同時利用微博用戶主題滿意度與主題下的特征詞個數,共同計算不同時間片各主題的微博用戶行為影響力,見表5。

表5 不同時間片各主題的微博用戶行為影響力
通過用戶微博行為影響力的計算,獲取每個時間片各主題下用戶最感興趣的主題詞,構建熱點話題下的用戶畫像。由表5可知,不同時間片各主題的微博用戶行為影響力分布數值,相對平均,可以相應獲取不同時間片的興趣主題詞,準確捕捉各主題下的用戶興趣關注點。同時也可以看出,在時間片7時的微博用戶行為影響力低于其它時間片,這是由于時間片7的用戶行為活躍度偏低和所包含的博文消極情感有所增加,用戶滿意度有所下降,導致該時間片下的微博用戶行為影響力普遍偏低。
為了更直觀表示熱點話題下用戶討論的主題詞與權重,本文采用詞項概率分布進一步生成熱點話題下用戶興趣主題詞詞云,如圖8所示。

圖8 熱點話題下用戶興趣主題詞詞云展示
從圖8中的圖(a)~圖(d)可知,通過微博用戶行為影響力計算獲取的恒大、火箭、同桌的你和韓劇熱點話題下的用戶興趣主題詞,可以高度概括這4個主題下用戶的關注點。因此從不同時間片獲取的用戶興趣主題詞,可以更形象地刻畫各主題下的用戶畫像。
為了驗證TW-BTM方法的有效性,本實驗使用公開數據集,分別與BTM、SL-LDA與LDA進行比較,利用這4種方法對數據集建模并分析實驗結果。選用“同桌的你”熱點話題的詞分布進行分析,4種方法獲取的Top10主題詞見表6。

表6 4種方法在“同桌的你”熱點話題下 Day1和Day7主題詞
由表6可知,在關于“同桌的你”的主題詞中,BTM、SL-LDA和LDA輸出的結果中都存在噪聲數據,TW-BTM方法輸出的主題詞幾乎不含噪聲詞,說明TW-BTM建模得到的主題詞能更好地概括和描述主題。這是由于TW-BTM在考慮時間因素的同時,也改進了吉布斯采樣過程中詞頻特征的計算方法,提高了中頻詞的影響力,刪除了無用的低頻詞和造成主題區分度不高的詞。因此,TW-BTM相較于其它3種模型,能更準確挖掘熱點話題下用戶的興趣詞。
為了更形象展示4種方法在用戶博文主題詞挖掘方面的能力,本文計算了不同時間片內4種方法的PMI-score值,如圖9所示。

圖9 4種方法在不同時間片內對應的PMI-score
由圖9可知,TW-BTM在不同時間片的PMI-score值均大于其它3種模型。這是因為BTM擅長處理短文本,但是未考慮時間因素和中頻詞對主題建模及提取主題詞的影響,導致獲取的主題詞區分度不高。LDA和SL-LDA由于更擅長對長文本建模,而微博短文本具有語義稀疏和時效性的特點,影響了兩個模型的建模效果,導致出現不同時間片各主題間主題詞混亂的情況。LDA由于其未考慮中頻詞的影響,導致模型建模效果在4種模型中最差。TW-BTM構建的用戶畫像能更準確地表達熱點話題下用戶的興趣。
本文提出了遺忘曲線和BTM詞頻雙層加權微博用戶畫像TW-BTM。利用遺忘曲線構建時間函數,計算微博文本時間權重,刪除噪聲詞匯,提高中頻詞占比。改進BTM模型,將調整好的詞頻特征引入Gibbs采樣過程中,提高了中頻詞的影響力和模型主題詞提取的能力。結合微博用戶主題滿意度和微博用戶行為活躍度等因素,提出微博用戶行為影響力計算方法,準確獲取經雙層加權處理的不同時間片各主題的主題詞,更全面構建熱點話題下的用戶畫像。實驗結果表明,與BTM、SL-LDA及LDA模型相比,TW-BTM在各個時間片內都有更高的PMI-score值,提高了主題間的區分度,降低了主題詞的重復度,能更好地提取用戶的興趣詞。