周 飛,高茂庭
(上海海事大學 信息工程學院,上海 201306)
隨著互聯網技術的迅猛發展,社交網絡服務(Social Network Service,SNS)作為互聯網應用發展的必備要素,不再局限于信息傳遞,而是與溝通交流、商務交易類應用融合,借助其他應用的用戶基礎,形成更強大的關系鏈,從而實現信息的廣泛、快速傳播。網絡社區是具有相同興趣愛好的網民相互交流、共享資源的虛擬社區,越來越多的人通過網絡社區分享信息、圖片,表達意見、觀點或參與話題討論。與線下社區一樣,網絡社區同樣存在社會分層,不同的是網絡社區更多依據思想和觀點的影響力進行劃分,影響力較高的成員就成了群體中的重要角色,即意見領袖。意見領袖通常是網絡社區中的活躍分子,是信息的積極傳播者,能夠提供大量信息、意見,引起大量關注并影響社區中的輿論導向,對網絡信息傳播、網絡營銷、廣告投放、輿論引導等方面起著極其重要的作用[1]。因此,對網絡社區中意見領袖的發現進行研究具有重要意義。
“知乎”是社區氛圍友好與理性、連接各行各業精英的一個網絡問答社區。用戶利用各自的專業知識、經驗和見解,為互聯網源源不斷地提供高質量的信息。知乎不同于微博與傳統社區,社會身份并非是知乎社區意見領袖的決定因素,知乎特有的投票機制和關注模式催生了大批草根意見領袖[2]。鑒于現有意見領袖發現算法中對用戶動態行為分析和動態行為所帶來的真實瀏覽量考慮不足的問題[3-6],本文對用戶自身影響力、用戶動態行為及其給動態內容帶來的真實影響等3個方面進行研究,提出一種基于用戶自身影響力、影響力傳播度和PageRank的意見領袖識別算法。
文獻[7]提出的二級傳播理論是關于意見領袖的最早研究,該理論指出意見領袖在主要以廣播和報紙為信息傳播媒介的當時占有不可或缺的地位,媒介信息必須經由某些意見領袖才能到達其他人群。隨著互聯網的發展,網絡社交媒體成為人們日常生活的重要工具,同時也吸引了眾多學者對其信息傳播、社會影響力、意見領袖發現等方面進行研究。文獻[8]指出在網絡社區中人們通常通過用戶發布信息的數量來認定意見領袖。文獻[9]通過Twitter網絡證實了信息傳播過程中兩級傳播理論的存在。文獻[4]用關注用戶數量、粉絲數量、是否被驗證身份和發布的微博數量等4項數據構建微博客意見領袖識別多維模型,對微博客用戶重要性進行評分。文獻[5]利用從網絡中采集到的基本數據,構造網絡話題參與者的“屬性矩陣”,提出意見領袖綜合評價算法。文獻[6]選取7個用戶特征,采用聚類分析方法篩選出具有意見領袖特點的群體。文獻[4-6]都是通過提取意見領袖屬性特征進行歸納分析,提出意見領袖發現算法。但是這些算法都沒有考慮到用戶與用戶之間的關注關系,因此,可能存在用戶大量發帖但并沒有人對其回復卻被誤認為是意見領袖的情況,與客觀事實存在一定偏差。文獻[10]通過考慮用戶的興趣空間和回復關系,提出基于興趣領域的意見領袖識別算法。文獻[3,11]將情感傾向性作為用戶之間評價的指標,并作為網絡權重分別提出OpinionRank算法和LeaderRank算法。文獻[12]基于話題相似度和用戶間關注關系提出TwitterRank算法。文獻[13]發現消息在微博網絡中的傳播過程可近似分解為各個意見領袖所驅動的子過程的特性,提出基于消息傳播的微博意見領袖影響力建模方法,并得出影響力衰減指數的大小以及影響力持續時間的長短與粉絲數量幾乎無關的結論。文獻[14]綜合考慮用戶自身影響力和用戶之間的鏈接關系,提出基于用戶影響力的PageRank意見領袖識別算法,簡稱UilRank算法。該算法雖然考慮了網絡論壇中的發帖數、回帖數和被回復數、被瀏覽數,但是缺乏用戶動態行為分析,以及存在使動態內容閱讀量增長的來源指向不明確的現象。
針對以上算法中用戶動態行為分析缺失和動態內容閱讀數增長不明確等問題,本文以網絡社區“知乎”為研究對象,綜合分析意見領袖影響力因子,在UilRank算法的基礎上,又從用戶動態行為影響傳播度和用戶行為對動態內容帶來的真實影響兩個方面考慮,提出一種基于PageRank的知乎意見領袖影響力發現算法。其中用戶自身影響力來源于諸如用戶粉絲數、獲得贊同數、回答問題數等用戶自身屬性。用戶動態行為及其對問題的真實影響將通過對用戶動態行為信息和問題動態變化信息分析得出,兩者共同決定用戶影響力傳播度的大小,繼而作用于改進的PageRank算法中。
PageRank的初衷指的是計算某個人在任意次點擊鏈接之后到達某一網頁的可能性,在網絡社區意見領袖發現中可把用戶之間的關注關系看作是用戶之間的網絡拓撲結構,通過分析網絡拓撲結構可獲得用戶影響力排名。因此,用戶影響力可以通過PageRank算法得出,如式(1)所示。
(1)
其中,PR(u)表示網頁u的PageRank值,Lu表示指向網頁u的網頁集合,N(Ov)表示網頁v指向其他網頁的總個數,d為阻尼因子,表示某頁面被訪問的概率,一般設為0.85。
文獻[14]在PageRank算法的基礎上,提取用戶屬性特征并給出權重,將用戶間的回復次數作為影響力占比分配原則,提出基于用戶影響力的意見領袖發現算法,簡稱UilRank算法,如式(2)、式(3)所示。
(2)
(3)
其中,R(u)表示用戶u的影響值,Tu為回復u的用戶集合,Wuv表示用戶u在所有影響用戶v的節點中所占比例,Iu代表用戶u的初始影響值,kuv表示用戶u和v之間的回復次數,Bv表示用戶v回復的用戶集合,通過數次迭代直至達到收斂狀態,得到用戶影響值。
在用戶影響力傳播度計算上,現有意見領袖識別算法往往采用均分原則平均分配,與實際網絡中意見領袖對不同用戶影響程度不同的這一情形不相符。
意見領袖在對某一提問做出回答行為或者對某一答案做出點贊行為時,他的行為動態就產生了,繼而將影響他的部分粉絲也對該提問或回答產生行為動態。然而,在這個過程中,有部分粉絲看到意見領袖的行為動態后,只是瀏覽了這個動態內容,并沒有發出回答或點贊的行為動態,因此,不能確定意見領袖是否對該用戶產生了影響。
為了解決這些問題,對這些屬性值量化處理后得到用戶的初始影響力值,即用戶自身影響力。還將往往被研究者遺忘的動態內容被閱讀數作為一個考核標準,考量用戶在對某動態內容產生行為動態后一段時間內該內容閱讀量的真實變化情況,閱讀量變化情況考量是對用戶行為動態影響度量存在缺漏現象的補充。然而在實際網絡中又存在普通用戶緊隨意見領袖產生行為動態而將意見領袖對閱讀量變化產生的影響據為己有的現象,用戶行為動態影響度量又反過來制約了此現象,防止普通用戶被認為擁有高影響力傳播度。2種度量方法相輔相成,構成用戶影響力傳播度。最后將用戶自身影響力和用戶影響力傳播度引入到改進的PageRank算法中得到每個用戶的最終影響力,排名靠前者即為網絡社區意見領袖。
3.1.1 用戶屬性特征提取
文獻[15-17]指出在Twitter網絡環境中,粉絲數量在信息傳播過程中和用戶影響力呈弱相關性。本文通過獲取到的知乎真實數據,對用戶粉絲數、獲得贊同數、回答問題數、獲得感謝數4個屬性特征兩兩刻畫相關性散點圖,如圖1所示,從圖1(a)發現獲得贊同數和獲得感謝數存在一定的線性相關性,因此,將贊同數和感謝數看作是相同的影響因子。另外,從圖1(b)~圖1(d)可以看出用戶粉絲數、獲得贊同數和回答問題數這3個屬性特征不存在線性相關性,因此,使用這3個屬性特征對用戶自身影響力進行評估,其中回答問題數是對意見領袖活躍度的一種肯定。

圖1 用戶各屬性特征散點圖
3.1.2 用戶屬性特征計算
從圖1可看出各個特征數據不具備一致性參考標準,因此不能直接比較,需要對每個特征指標進行歸一化處理。由于特征數據跨度較大,如用戶粉絲數高的用戶可以達到百萬級別,低的用戶甚至一個粉絲都沒有,因此本文采用對數歸一化處理方法。這種處理方式計算簡單、運算速度快、處理后數據跨度小,如式(4)所示。
(4)
其中,Fu表示對用戶u實際粉絲數做歸一化處理后得到的值,fu表示用戶u的實際粉絲數,fmax代表所有用戶粉絲數的最大值。同理,對用戶u獲得贊同數和回答問題數用式(4)歸一化處理后分別表示為Su、Au。本文定義以下公式計算用戶u的自身影響力值。
SI(u)=ω1Fu+ω2Su+ω3Au
(5)
其中,SI(u)代表用戶自身影響力值,對應UilRank算法中的Iu,Fu、Su、Au分別是用戶粉絲數、獲得贊同數和回答問題數歸一化處理過后的值,ω1、ω2、ω3代表不同特征的權重值。為了將各屬性重要程度數學化、系統化,本文采用層次分析法確定每個屬性特征的權重值,該方法對于多準則、多目標的系統有較好的判定效果[18]。構建以下判斷矩陣:

(6)
通過計算,得到各個屬性特征權值,一致性檢驗結果為0.079 33<0.1,滿足一致性檢驗,各屬性特征權值ωi如表1所示。

表1 屬性特征權重
在實際的網絡傳播中,存在以下2種現象:
1)在意見領袖發出回答、點贊等行為動態后,部分粉絲接收到意見領袖的動態,閱讀了相關動態內容并對此動態內容發出行為動態。那么意見領袖對于這部分粉絲的影響是顯而易見并且可以通過收集動態行為數據得到。但是仍然會存在一些粉絲在閱讀了動態內容后,不發出任何行為動態,對于這部分粉絲則無法通過動態行為數據知曉意見領袖是否對其產生了影響。
2)粉絲們會通過意見領袖發出的行為動態瀏覽這一動態內容,那么該動態內容在該意見領袖發出回答、點贊等行為之后某個時間段內的瀏覽數增長便可在一定程度上反映該意見領袖的影響力。但是當2個意見領袖A和意見領袖B相近時間發出同樣的行為動態時,就無法確定給動態內容帶來的影響是意見領袖A還是意見領袖B,或者是他們分別帶來了多少影響。
分析這2種現象可以發現,其實現象2就是對現象1中意見領袖影響缺失的一個補充,現象1則是對現象2中給動態內容帶來影響重疊的一個制約。對于現象1,將采用高行為動態數據(即參與者人數較多的動態內容數據)根據時間節點建立有向無環圖計算用戶行為動態信息下的影響力傳播度。對于現象2,采用低行為動態數據(即參與者人數較少的動態內容數據)計算行為動態后的問題被瀏覽增長率,確定基于動態內容瀏覽數增長下的用戶影響力傳播度。最后將兩者加權累加得到用戶影響力傳播度。
3.2.1 用戶行為動態信息下的影響力傳播度
在分析以時間線為基準的用戶行為動態后發現,該動態行為序列構成一個有向無環圖,如圖2所示。

圖2 用戶行為動態結構
圖2描述了影響力傳播的3種情況:
1)在用戶A發出某一行為動態后,他的粉絲用戶中C、D、E也對該內容發出行為動態,則可認為A對C、D、E產生了影響。
2)用戶H是用戶D、E的共同粉絲,且用戶D、E在用戶H前發出行為動態,那么認定用戶H同時受到用戶D、E的影響。
3)用戶I是用戶B、E的共同粉絲,且用戶E在用戶B之后發出行為動態,用戶I在用戶E之后發出行為動態,那么認定用戶I同時受到用戶B、E的影響,用戶E受到用戶B的影響。
由此,根據用戶動態行為數據建立用戶動態行為結構圖(在圖中認定出度為0的節點為葉子節點),并依次從葉子節點向根節點遍歷,統計每個用戶的用戶動態行為影響力值。用戶行為動態信息下的影響力傳播度算法描述如下,其中qid表示動態內容編號。
輸入qid
輸出用戶行為動態影響度Degree
執行步驟:
1)Userlist←動態內同編號為qid并以時間節點排序的用戶列表;
2)for用戶u∈UserList:{
用戶u的孩子集ChildSetu←UserList中排在u之后的用戶集和用戶u粉絲集的交集;
將添加到ChildrenSetu中每個用戶c的父集合ParentSetc中;}
3)LeafSet←UserList中孩子集合為空的用戶集合;
4)for用戶u∈LeafSet:{
標記v已經被查找過;
將v父集合ParentSetv中每個父節點p的深度Degreep自加1;
如果p沒有被查找過且不在LeafList中,將p添加到LeafSet中;}
5)ifLeafSet不為空,轉到4),否則轉到6);
6)用對數歸一化法對Degree進行歸一化處理;
7)ReturnDegree。
該算法中步驟2)和步驟3)的時間復雜度都是O(N),步驟4)、步驟5)為二層循環,時間復雜度為O(N2),步驟6)為歸一化處理,時間復雜度為O(N)。因此,該算法時間復雜度為O(N2)。另外,需要3N的額外空間存儲結果和中間變量。因此,該算法空間復雜度為O(N)。
在使用用戶行為動態影響力算法對每一個行為動態計算之后,得到每個動態下的用戶影響力值,返回歸一化后的用戶動態行為影響力傳播度。

(7)
其中,Degree(qid)[u]為對第qid號的動態行為做用戶動態行為影響力算法后用戶u的影響力傳播度,Qlist為用戶行為動態編號列表。
3.2.2 動態內容瀏覽數增長下的影響力傳播度
文獻[13]指出在微博網絡環境中,在意見領袖發出一條消息后300 min內,消息以激增的態勢傳播,隨后逐漸減弱,第二天會有所增長但影響將逐漸消失。由于微博信息繁雜且動態內容更新速度快,表現出快速增長和快速消亡的特性。但對于知乎而言,這個過程就相對緩慢一些,因此,以2天為一個行為動態的影響周期,計算這段時間內的最快增長,把增長率作為用戶動態行為給問題帶來實際影響的考量標準。
本文通過式(8)~式(10)計算用戶u給動態內容帶來的平均真實影響度。
Gn(q,t)=max(B(q,t+1)-B(q,t)),?t∈[t,t+2]
(8)

(9)

(10)
其中,B(q,t)表示問題q在t時刻的被瀏覽次數,Gn(q,t)表示問題q在[t,t+2]時間區間內被瀏覽次數增長最大值,utime表示用戶u對問題q產生行為動態的時刻,max(Gn(q,T))表示在整個數據集時間段中問題q的被瀏覽次數增長最大值,Gr(q,u)表示用戶u在問題q下的影響力比率,Qir(u)表示用戶u在眾多問題動態中給問題帶來的平均真實影響度。
綜合用戶行為動態信息下的影響力傳播度和行為動態給動態內容帶來的實際影響度得到用戶影響力傳播度 (User Influence Transfer Degree,UITD)。
(11)
本文在PageRank算法的思想基礎上提出了基于用戶自身影響力、用戶影響力傳播度和PageRank的意見領袖發現算法,簡稱ZhihuRank算法,如式(12)、式(13)所示。
(12)
(13)
其中,ZR(u)表示用戶的影響力值。d為阻尼因子,表示用戶受到影響的概率,通常在(0,1)之間,本文設為0.85。FRu表示用戶u的粉絲集合,對應于UilRank算法中的Tu集合。W(u,v)表示用戶u在用戶v關注的人集合中影響力傳播度的占比。FEv表示用戶v關注的人的集合,對應于UilRank算法中的Bv集合。SI(u)表示用戶自身初始影響力值。UITD(u)代表用戶u的影響力傳播度。
假設網絡社區個體數為N,設定2個結束標志,一個為網絡循環迭代次數iterations,另一個為α,表示每個個體當前ZR值和上一次迭代結果ZRold值的差值的閾值。算法結束后ZR為最終用戶影響力值,SORT()是以ZR為基準的逆排序函數。ZhihuRank算法描述如下:
輸入N,iteration,a
輸出用戶影響力排名
執行步驟:
1)對ZR進行初始化,將所有節點ZR值設為1。
2)使用式(12)、式(13)計算每個節點的ZR值。