黃 維,王 梅
(東華大學,上海 201620)
隨著互聯(lián)網(wǎng)行業(yè)的快速發(fā)展與普及,在線社交網(wǎng)絡(luò)也得到了快速的發(fā)展,例如新浪微博、Twitter、Facebook等,在線社交網(wǎng)絡(luò)也成為了信息傳播和人與人之間相互影響的主要途徑。對用戶間影響關(guān)系和用戶影響的傳播進行估計,具有廣泛的應用,如商品營銷[1]、廣告投放策略[2]、事件發(fā)展預測[3]、謠言檢測[4]等均利用了社交網(wǎng)絡(luò)中用戶的相互影響。因此,對該問題的研究具有重要意義。
新浪微博作為目前國內(nèi)最大的微型博客社交平臺,其注冊用戶接近四億,活躍用戶超過一億。用戶可以通過發(fā)布微博等方式來分享信息,其它用戶也可以通過評論轉(zhuǎn)發(fā)等方式來對信息做出反饋。即用戶通過微博的形式來對其它用戶產(chǎn)生影響,其它的用戶通過評論和轉(zhuǎn)發(fā)的形式對其影響進行擴散?;诖耍谛吕宋⒉┲锌梢院芊奖愕墨@得用戶與用戶之間的直接的影響記錄,從而能夠比較準確的建立起用戶之間的影響關(guān)系。
本文基于新浪微博下社交網(wǎng)絡(luò)的特點,提出一種用戶影響傳播預測學習方法。該方法包括數(shù)據(jù)預處理、影響概率計算、影響力傳播三個主要模塊。數(shù)據(jù)預處理模塊首先對評論數(shù)據(jù)丟失的問題進行處理,影響概率計算模塊使用評論和轉(zhuǎn)發(fā)數(shù)據(jù)作為輸入來學習用戶的表征,并在此基礎(chǔ)上學習用戶與用戶之間的影響概率。影響傳播模塊通過傳播動力學過程模擬了社交網(wǎng)絡(luò)中的影響擴散過程,最終輸出初始活躍用戶影響的用戶,其數(shù)量標示了初始活躍用戶的影響力。在新浪微博實際數(shù)據(jù)集上的實驗結(jié)果表明,本文對用戶影響傳播預測的效果,相比較傳統(tǒng) DTIC-Jaccard[5]、DTIC-Credit[5]方法,其F1值分別提升了26.7%和51.4%。
由于社交媒體用戶數(shù)量的不斷增長以及社交媒體為影響傳播提供的便利,社交網(wǎng)絡(luò)中的影響關(guān)系成為研究的熱點?;谟脩糁g的影響關(guān)系,可以對社交網(wǎng)絡(luò)中的影響力擴散進行建模。對影響關(guān)系的研究主要有兩類:統(tǒng)計方法和嵌入方法。統(tǒng)計方法利用傳統(tǒng)的統(tǒng)計學方法直接進行影響關(guān)系的計算,得到用戶與用戶之間的影響概率。嵌入方法通過相應的算法來學習得到用戶的表征向量,從而通過用戶的表征向量來學習到用戶之間的影響概率。
嵌入方法。受自然語言領(lǐng)域的單詞嵌入方法的啟發(fā)[7],人們對網(wǎng)絡(luò)嵌入進行了一些研究,將網(wǎng)絡(luò)中用戶嵌入到一個連續(xù)的潛在空間中,并根據(jù)潛在空間中的相對距離推斷用戶關(guān)系。Grover[8]提出“node2vec”算法,使用一個參數(shù)來平衡隨機游走的策略,通過該方法可以探索給定區(qū)域的不同鄰域節(jié)點。Feng[9]利用網(wǎng)絡(luò)結(jié)構(gòu)和傳播事件來學習網(wǎng)絡(luò)嵌入,通過網(wǎng)絡(luò)表征來界定社會影響。然而,這些學習方法依賴于網(wǎng)絡(luò)結(jié)構(gòu),在大多數(shù)情況下,網(wǎng)絡(luò)結(jié)構(gòu)是動態(tài)變化的。Bourigault[10]首先提出只從擴散事件中學習了網(wǎng)絡(luò)嵌入,即無網(wǎng)絡(luò)結(jié)構(gòu)模型。在他們的研究中,他們模擬了像熱擴散一樣的影響擴散。然后他們將模型[10]擴展到另一個基于級聯(lián)過程的模型[11]。但是由于 EM算法的消耗,這個模型的可伸縮性受到影響。
相比于統(tǒng)計方法,嵌入方法有普遍有兩個好處:1)參數(shù)量少。每個用戶用一個稠密的向量來表示,相對于維持一個n×n的二維用戶矩陣來說,參數(shù)量大大減少。2)發(fā)現(xiàn)新關(guān)系。嵌入方法可以找到?jīng)]有直接交互的,但可能存在影響關(guān)系的用戶。3)嵌入方法不容易出現(xiàn)過擬合的現(xiàn)象。因此,本文的模型是基于網(wǎng)絡(luò)嵌入的思想提出的。
本文將微博下的用戶社交網(wǎng)絡(luò)圖定義為 G =(V, E, P),其中,V為社交網(wǎng)絡(luò)中的用戶集合,E為社交網(wǎng)絡(luò)中的邊集合,P為用戶間的影響概率(也稱為用戶間影響關(guān)系或社交網(wǎng)絡(luò)邊的權(quán)重)。一條有向邊(u, v)?E代表用戶u對v有影響概率p(u, v)?P。V集合中用戶所發(fā)布的微博集合記為M。具體地,用戶 u?V發(fā)布的微博記為 M(u)。對于每個微博 m?M,其轉(zhuǎn)發(fā)列表和評論列表分別記為 R(m)和 C(m),分別記錄了轉(zhuǎn)發(fā)和評論該微博的用戶。在新浪微博的數(shù)據(jù)集中,轉(zhuǎn)發(fā)列表記錄了全部的轉(zhuǎn)發(fā)用戶,而評論列表由于數(shù)據(jù)限制,只記錄了部分評論用戶。
基于上述定義,本文影響傳播學習的基本思想是給定一個用戶 u和一個用戶 v,如果用戶 u發(fā)布了一條信息(微博),用戶v轉(zhuǎn)發(fā)或評論了這條信息(微博),認為用戶u影響了用戶v。一旦用戶被影響,他將成為活躍用戶。影響傳播過程是基于獨立級聯(lián)模型的,在獨立級聯(lián)模型,用迭代的過程去模擬影響力傳播。
本文針對微博平臺下的社交網(wǎng)絡(luò)形式提出Inf-embedding模型,其中包括數(shù)據(jù)預處理、影響概率計算、影響力傳播三個部分。圖1展示了整體的模型框架。一共分為三個部分。在第一部分(數(shù)據(jù)預處理)中,該模型首先處理了評論數(shù)據(jù)丟失的問題,并利用最大似然估計將丟失的數(shù)據(jù)處理成一種可以在后面使用的形式。在第二部分(影響概率計算)中,構(gòu)建相應算法使用評論和轉(zhuǎn)發(fā)數(shù)據(jù)作為輸入來學習用戶的表征。在對用戶進行特征化之后,進一步構(gòu)建社交網(wǎng)絡(luò),也就是學習到用戶與用戶之間的影響概率。在第三部分(影響傳播)中,通過傳播動力學過程模擬了社交網(wǎng)絡(luò)中的影響擴散過程,最終輸出初始活躍用戶影響的用戶。在下面的每個小節(jié)中,將詳細描述本文模型的每一部分的具體細節(jié)。
圖1 模型框架Fig.1 Model framework
由于微博平臺的限制,微博下的社交網(wǎng)絡(luò)數(shù)據(jù)是存在缺失的,所以將根據(jù)后面學習算法的需要,本文通過極大似然估計的思想來進行缺失數(shù)據(jù)的估計。對于第 i條微博,首先計算得到能獲得的評論用戶數(shù)量占真實微博的評論數(shù)量比例。進一步,對于用戶u的K條微博來說,可以構(gòu)建用戶v對用戶u微博的評論情況的似然函數(shù),通過極大似然估計算法,估計用戶v對用戶u微博評論概率。
通過用戶u作為影響發(fā)出者時的表征向量Iu和用戶v作為影響接收者時的表征向量Sv可以計算得到用戶u對v的影響概率:
其中,
這里通過Sigmoid函數(shù),可以將用戶間影響概率映射到(0,1),這也符合真實的社交網(wǎng)絡(luò)環(huán)境。
將上式擴展成為所有用戶的微博轉(zhuǎn)發(fā)列表和評論列表的對數(shù)似然函數(shù):
同樣使用極大似然估計的思想,最終的學習目標就是最大化上式的對數(shù)似然函數(shù)。本文使用隨機梯度下降法去更新用戶表征從而最大化該對數(shù)似然函數(shù),從而得到每個用戶的表征?;谟脩舯碚魍ㄟ^公式(1)計算得到每對用戶間的影響概率的集合P輸入到算法1。
對于用戶對(u,v),當用戶 u在任意一個時間戳影響用戶v時,則用戶u成功影響用戶v。因此,用戶u在每個時間戳成功影響用戶v的概率與用戶 u在所有時間戳成功影響用戶 v的概率p(u,v)有如下關(guān)系:
算法1影響傳播過程
輸入:種子用戶節(jié)點集合S,影響概率集合P,用戶集合V,時間戳的個數(shù)N
輸出:被影響的用戶集合f(S)
計算:用T代表整個發(fā)散過程持續(xù)的時間,t代表時間戳的長度。假定每個時間戳是相等的,那么時間戳的個數(shù)為。圖 2繪制了在本文數(shù)據(jù)集中,用戶被微博影響的數(shù)量,隨著距離微博發(fā)布的時間的變化。圖 3進一步繪制了在數(shù)據(jù)集中,用戶被影響的概率密度隨微博發(fā)布時間的變化。用函數(shù)f(x)來擬合圖3曲線,則不同時間戳里,用戶 u對用戶 v的影響概率有如下關(guān)系:
圖2 交互數(shù)量隨時間變化Fig.2 Nu mber of interactions vs. the time difference
圖3 交互頻率隨時間變化Fig.3 Frequency of interactions vs. the time difference
影響力傳播是影響力分析研究中重要的一個領(lǐng)域。對于每條微博,將最開始發(fā)布這條微博的人視為種子用戶?;诿商乜迥M來模擬影響傳播的過程。實驗中將對比在數(shù)據(jù)集中用戶真實影響的人和模擬結(jié)果所影響的人。從一個初始的種子用戶開始,活躍的用戶會嘗試去影響他的非活躍的鄰居,一個節(jié)點一旦被影響,便會重復這種嘗試。
本文通過構(gòu)建爬蟲程序來獲得新浪微博下的數(shù)據(jù)。首先獲取微博中的若干用戶。根據(jù)這些用戶,來獲取這些用戶所發(fā)的微博。根據(jù)所獲得的微博,獲取轉(zhuǎn)發(fā)或評論這些微博的用戶。最終數(shù)據(jù)集中共有6792個用戶,本文獲取了這些用戶從2020年8月1日到2020年8月4日的發(fā)布微博。微博總數(shù)為 159 879,所有的這些微博共收到了507 014條轉(zhuǎn)發(fā)和177 888條評論。但是,評論列表能看到的評論只有50 369條,剩余的為缺失評論。本文將2020年8月1日到2020年8月3日的數(shù)據(jù)設(shè)定為訓練集,將2020年8月4日的數(shù)據(jù)設(shè)定為測試集。具體數(shù)據(jù)集的統(tǒng)計信息見表1。
表1 數(shù)據(jù)集統(tǒng)計信息Tab.1 Statistical information of dataset
1. DTIC-Jaccard[5]。該模型利用Jaccard index來進行影響關(guān)系進行計算。
2. DTIC-Credit[5]。該模型是基于信用分配的方法來計算用戶之間的影響關(guān)系。
3. Inf-embedding。由本文提出的影響力嵌入方法。
本文通過正則化平方誤差[12]、精確率、召回率、F1、參數(shù)數(shù)量等評價指標評估本文學習得到的影響力與真實影響力的接近程度以及所提方法的參數(shù)復雜度。具體結(jié)果如表2所示。
測試集中真實的受影響的用戶集合:Inf(u) =u(m1) ∪u(m2)… ∪u(mn)
定義以下情況為 True Positive (TP), True Negative (TN), False Positive (FP), False Negative(FN):
表2 影響傳播模型對比Tab.2 Comparison of influence diffusion model
表2呈現(xiàn)了三個模型在影響傳播預測任務中的表現(xiàn)。Inf-embedding模型在各項評估指標上表現(xiàn)均優(yōu)于另外兩個。由于數(shù)據(jù)集的時間跨度較短,用戶之間的實際交互歷史并不能充分包含在內(nèi)?;谶@種情況,通過對短期訓練集的學習,來對影響傳播的結(jié)果進行召回,得到 0.142的召回率相對其它模型已經(jīng)有一定的提升。另外由于社交網(wǎng)絡(luò)中用戶行為本身存在的偶然性,所以對用戶影響力傳播的預測具有諸多不確定性。因此,對用戶影響力的傳播是十分有挑戰(zhàn)性的工作,例如在twitter環(huán)境下只能達到的0.013[11]的F1,在Digg環(huán)境下的 0.18[9]的平均準確率。本文所提出方法所達到的精確率 0.400相較于其它模型有了大幅度的提升。以 F1值作為評價標準,相比較傳統(tǒng)DTIC-Jaccard、DTIC-Credit方法,其 F1值分別提升了 26.7%和 51.4%。另外正則化平方誤差指標最低說明了,本模型對影響傳播范圍的預測更接近于真實的傳播范圍,能對用戶影響力有更準確的估計。最后作為嵌入學習的方法,本文在參數(shù)量上明顯少于基于統(tǒng)計的模型。綜合來看,本文模型相較于其它模型更適用于新浪微博下社交網(wǎng)絡(luò)的影響力分析。
本文提出了微博社交網(wǎng)絡(luò)影響力預測學習方法,通過所提方法可以對用戶的影響傳播過程進行模擬并學習得到用戶的影響力。基于對用戶的歷史行為進行學習,訓練出用戶表征向量,從而建立起用戶間的影響關(guān)系,進而模擬影響傳播的動力學過程。利用該嵌入方法對用戶間影響概率進行計算,能夠很大程度的減少參數(shù)的復雜度。并且,該模型在微博的真實數(shù)據(jù)中各評估指標表現(xiàn)也明顯優(yōu)于其它模型。