一種基於用戶行為序列的相互影響力快速度量方法與流程
2023-10-11 09:31:14 1
本發明屬於在線社交網絡數據挖掘領域,具體涉及一種基於用戶行為序列的相互影響力快速度量方法。
背景技術:
隨著網際網路技術的進一步發展以及移動智能設備的廣泛使用,以twitter和新浪微博為代表的社交平臺成為網絡應用的主流,基於其特有的社交功能,用戶可以隨時隨地發布、評論或回復消息,甚至可以與其他用戶進行在線交互。此外,社交網絡平臺還具有廣泛的商業用途,例如進行新產品推廣、信息推薦或輿情監控等。用戶、信息和結構是社交網絡的三大要素,同時也是推動信息在網絡中進行傳播的主體、客體和載體:用戶在社交平臺上發布一則信息,通過用戶之間的相互交互在已有的關係網絡中實現信息的傳播[1]。
近年來,社交網絡分析受到學術界和工業界的廣泛關注,它是指基於統計學、信息學和社會學等多學科理論,為用戶社交關係形成、行為特點分析以及信息傳播規律提供一種可計算的方法[1]。相比於傳統的社會學研究,社交網絡分析不僅關注網絡中用戶的屬性,而且更注重分析網絡中用戶之間的關係結構和交互行為。作為社交網絡分析的重要內容,影響力分析一直是學術界的熱點研究問題,因為信息在社交網絡中的傳播離不開用戶的交互,而影響力是驅動用戶交互的關鍵因素。在社交網絡中,影響力是指用戶的行為、觀點或態度會受其他用戶的影響而發生改變。研究社交影響力的形成原因和作用機制可以幫助人們揭示網絡中用戶互動的底層機制,為理解社交網絡中信息傳播規律奠定基礎。早期,社交影響力在社會心理學領域被大量研究,被認為是一種在人們的行為、思想或態度從最初的不確定狀態到最終趨於穩定狀態的過程中的特有現象。由於當時理論研究和實驗方法的限制,研究者只能從人工整理的小數據集上定性地對社交影響力進行分析,驗證了在某個社會性系統中存在影響力。在線社交網絡平臺的興起為社交網絡分析提供了大量可用的實驗數據,研究者可以對構建的社交網絡模型及理論進行定量分析,特別是海量用戶的交互數據為建立影響力度量模型和影響力傳播仿真計算進行充分的實驗論證提供了可能。
如何準確衡量用戶之間的相互影響力是社交網絡中影響力分析的重要研究內容,也是研究影響力個體識別技術和影響力傳播極大化技術的前提條件。現有文獻中的方法主要從網絡結構、用戶行為和博文內容等角度對相互影響力進行建模及定量計算。例如,相關學者認為相互影響力的大小與用戶之間共同好友個數相關。顯然,這種方法不符合實際情況,因為用戶之間的相互影響力是不對稱的,如在新浪微博中,大v用戶和普通用戶之間的相互影響力就不對等。還有學者利用網絡日誌數據,基於行為分布規律和因果關係建立用戶之間相互影響力度量模型[2],雖然在一定程度上能提高模型的準確率,但難以獲取完整的日誌數據導致模型的使用率並不高。後來還有學者綜合考慮網絡拓撲結構和博文內容,通過構造用戶博文、關係或行為生成等概率產生式模型,利用參數估計方法對用戶之間的相互影響力進行推斷[3],這類方法具有較高的準確率,但社交網絡結構規模和參數估計方法的複雜性給模型的計算效率帶來挑戰。
社交網絡數據建立的圖結構模型相當複雜,包含上億個用戶節點以及用戶之間關係構成的成百上千億條邊,我們難以直接在這種超大規模圖上進行用戶相互影響力的挖掘分析。再者,出於隱私考慮,現有社交網絡平臺不能完整顯示用戶的好友列表等信息,加之社交網絡的動態演化性,不能實時得到當前時刻網絡的拓撲結構,因此已有的相互影響力計算方法難以實現。在社交網絡平臺中,用戶之間的交互行為是相互影響的外在表現,而相互影響是用戶交互行為的內在誘因,因此我們可以利用用戶之間的交互行為特徵度量用戶之間的相互影響力。社交網絡平臺中用戶的行為有轉發、回復、點讚和收藏等,其中轉發行為最能表徵用戶之間的相互影響,同時也是信息得以傳播的最直接方式。一般情況下,用戶發布或轉發博文等行為都具有一定時間規律,存在相互影響用戶的社交行為時序特徵具有某種一致性,並且這種一致性越強,用戶之間的相互影響程度就越高。本發明旨在充分考慮上述因素,建立一種高效而準確的社交網絡用戶相互影響力度量模型。文中相關參考文獻:
[1]方濱興,許進,李建華.在線社交網絡分析[m].電子工業出版社,2014.
[2]goyala,bonchif,lakshmananlvs.learninginfluenceprobabilitiesinsocialnetworks.[c]//internationalconferenceonwebsearchandwebdatamining,wsdm2010,newyork,ny,usa,february.2010:241-250.
[3]zhangj,tangj,zhuangh,etal.role-awareconformityinfluencemodelingandanalysisinsocialnetworks[c]//twenty-eighthaaaiconferenceonartificialintelligence.2014.
技術實現要素:
針對現有技術在社交網絡中度量用戶之間相互影響力不能同時保證精度和效率的問題,本發明提出了一種基於用戶行為序列的相互影響力快速度量方法,該方法共分為數據採集、行為序列向量化以及相互影響力計算3個步驟。其中,數據採集階段負責搜集並存儲相關社交網絡平臺用戶產生的社交行為數據;行為序列向量化階段負責對上述用戶行為數據進行數學化(向量化)表示;相互影響力計算階段負責對用戶之間的相互影響力進行定量計算。本發明的核心思想就是基於用戶時序行為特徵,綜合利用用戶之間的轉發歷史信息,通過構造的相互影響力計算模型,實現在社交網絡中快速而準確地度量任意用戶之間的相互影響力。具體技術方案如下:
一種基於用戶行為序列的相互影響力快速度量方法,包括以下步驟,
(s1)數據採集階段:搜集並存儲社交網絡平臺用戶產生的行為數據,所述行為數據包括用戶轉發關係數據、用戶發布博文數據、用戶轉發博文數據、用戶發布博文時間數據和用戶轉發博文時間數據;
(s2)行為序列量化階段:將所述步驟(s1)中的用戶發布博文時間數據和用戶轉發博文時間數據進行向量化表示,得到向量化結果;
(s3)相互影響力計算階段:根據步驟(s1)中的行為數據和步驟(s2)中的向量化結果,計算任意兩個用戶之間的相互影響力。
進一步地,所述用戶發布博文時間數據進行向量化表示的具體過程為:選取時間周期tp,以時間間隔sp將時間周期tp均分成np個時間區間,設pu是np維向量,表示用戶u在不同時間區間內發布博文的次數;通過計算公式(1)將用戶u發布博文時間數據映射到不同的時間區間,進一步累加映射次數獲得其發布博文的次數統計向量,
其中,mod表示取模運算,表示向下取整,tp表示用戶發布博文的時間,t0表示參照時間;t0取常數。
進一步地,所述用戶轉發博文時間數據進行向量化表示的具體過程為:選取時間周期tr,以時間間隔sr將tr均分成nr個時延區間,設rpdu是nr維向量,表示用戶u轉發博文在不同時延區間內的次數。按照計算公式(2)將用戶u轉發博文時間數據映射到不同的時延區間,通過累加映射次數獲得其轉發博文時延次數統計向量;
其中,mod表示取模運算,表示向下取整,tr表示用戶轉發博文的時間,td表示源博文發布時間。
進一步地,所述計算任意兩個用戶之間的相互影響力的具體過程為:設iu(v)表示用戶u對用戶v的影響力,且iu(v)≠iv(u),計算用戶u對用戶v的影響力,即:
其中#repostsu→v表示用戶v轉發用戶u博文的次數,#postsu表示用戶u發布博文的次數,#repostv表示用戶v轉發博文的次數,表示向量的第i個分量,而表示向量的第j個分量;d表示時延窗口因子,1≤d≤nr;δ(i,j,np)=(i+jmodnp)+1;pu為np維向量,表示用戶u在不同時間區間內發布博文次數;rpdv為nr維向量,表示用戶v轉發博文在不同時延區間內的次數;和分別為pu和rpdv的歸一化結果,表示用戶u發博時間概率分布,表示用戶v轉博時延概率分布;i,j,d取整數。
採用本發明獲得的有益效果:本發明充分考慮了社交網絡中用戶之間的轉發關係以及用戶發布或轉發博文的時序行為特徵,為定量分析社交網絡影響力奠定了基礎。本發明方法實用性強,在實現過程中無需依賴社交網絡中用戶之間的關係拓撲結構,同時該方法在保證計算精度的前提下,也具有很高的計算效率,適用於在大規模社交網絡數據中挖掘用戶之間的相互影響力。
附圖說明
圖1為本發明方法流程示意圖;
圖2為本發明網絡結構示意圖。
具體實施方式
下面結合附圖和實施例進一步說明本發明的技術方案。
本發明的具體流程和網絡結構示意圖分別如圖1和圖2所示,其具體階段分別為:
(s1)數據採集階段,從網際網路中抓取相關社交網絡平臺用戶產生的社交行為數據,並根據規定的數據格式抽取有效信息,存入本地資料庫;實施例中,搜集的行為數據包括用戶轉發關係數據、用戶發布博文數據、用戶轉發博文數據、用戶發布博文時間數據和用戶轉發博文時間數據;搜集的行為數據均以數據集的形式存在,具體格式為:
1)搜集用戶轉發關係數據集,其格式要求是一個三元組;2)搜集用戶發布博文數據集,其格式要求是一個二元組;3)搜集用戶轉發博文數據集,其格式要求是一個二元組;4)搜集用戶發布博文時間數據集,其格式要求是一個二元組;5)搜集用戶轉發博文時間數據集,其格式要求是一個三元組。
(s2)行為序列向量化階段,基於頻次統計方法將上述搜集的數據按類別進行離散化處理,得到所有用戶發布博文的次數統計向量和轉發博文時延次數統計向量,歸一化後得到所有用戶發博時間概率分布和轉博時延概率分布;具體過程如下:
a)用戶發布博文時間數據進行向量化表示過程為:選取時間周期tp,以時間間隔sp將時間周期tp均分成np個時間區間,設pu是np維向量,表示用戶u在不同時間區間內發布博文的次數;通過計算公式(1)將用戶u發布博文時間數據映射到不同的時間區間,進一步累加映射次數獲得其發布博文的次數統計向量,
其中,mod表示取模運算,表示向下取整,tp表示用戶發布或者轉發博文的時間,t0表示參照時間;t0取常數。為了克服數據稀疏問題,將用戶轉發博文時間數據也視作用戶發布博文時間數據。
b)用戶轉發博文時間數據進行向量化表示過程為:選取時間周期tr,以時間間隔sr將tr均分成nr個時延區間,設rpdu是nr維向量,表示用戶u轉發博文在不同時延區間內的次數。按照計算公式(2)將用戶u轉發博文時間數據映射到不同的時延區間,通過累加映射次數獲得其轉發博文時延次數統計向量;
其中,mod表示取模運算,表示向下取整,tr表示用戶轉發博文的時間,td表示源博文發布時間。
c)重複步驟a)和步驟b),計算所有用戶的p*和rpd*,「*」表示任一用戶;然後通過歸一化方法得到和其中中的分量表示用戶在不同時間區間內的發博時間概率,而中的分量表示用戶轉博時延在不同時延區間中的概率。
(s3)相互影響力計算階段,根據上述已經處理好的數據,利用相互影響力度量模型(即計算公式(3))計算任意兩個相互之間的相互影響力。
其中#repostsu→v表示用戶v轉發用戶u博文的次數,可以由用戶轉發關係數據集得到;#postsu表示用戶u發布博文的次數,可以由用戶發布博文數據集得到;#repostv表示用戶v轉發博文的次數,可以由用戶轉發博文數據集得到;表示向量的第i個分量,而表示向量的第j個分量;d表示時延窗口因子,1≤d≤nr;δ(i,j,np)=(i+jmodnp)+1。
為了充分說明本發明的技術特點,在此以一個人工合成的小數據集為例進行說明。我們抽取該人工數據集中的4位社交網絡用戶u1、u2、u3、u4及其產生的部分社交行為數據,說明本發明方法計算其相互影響力的過程。
(s1)數據採集階段,該階段主要負責搜集數據。一般地,實施例中可利用網絡爬蟲工具以指定用戶集為種子集合在相關社交網絡平臺搜集用戶的社交行為數據。並通過自然語言處理技術抽取有效信息存入資料庫。具體過程如下:
(s11)針對搜集到的用戶轉發關係數據,若該轉發關係已存在於用戶轉發關係數據集a1中,則在相應轉發關係的轉發次數欄位加1;若不存在,則在該數據集a1中插入此條轉發關係,且轉發次數欄位置為1。如表1所示:
表1用戶轉發關係數據集a1
(s12)針對搜集到的用戶發布博文數據,若該用戶已存在於用戶發博數據集a2中,則在相應用戶的發博次數欄位加1;若不存在,則在該數據集a2中插入此用戶,且發博次數欄位置為1。如表2所示:
表2用戶發博數據集a2
(s13)針對搜集到的用戶轉發博文數據,若該用戶已存在於用戶轉博數據集a3中,則在相應用戶的轉博次數欄位加1;若不存在,則在該數據集a3中插入此用戶,且轉博次數欄位置為1。如表3所示:
表3用戶轉博數據集a3
(s14)針對搜集到的用戶發布博文時間數據,將每條數據插入用戶發博時間數據集a4中,為了克服數據稀疏問題,將用戶轉發博文時間數據也看作用戶發布博文時間數據並存入數據集a4中,用來計算用戶在不同時間區間內的發博時間概率,這是合理的,因為當用戶處於在線狀態時,該用戶有可能發布博文。如表4所示,時間單位是毫秒:
表4用戶發博時間數據集a4
(s15)針對搜集到的用戶轉發博文時間數據,將每條數據插入用戶轉博時間數據集a5中。如表5所示,時間單位是毫秒:
表5用戶轉博時間數據集a5
(s2)行為序列向量化階段,該階段主要對步驟1中數據集a4和a5的數據進行向量化處理。具體過程如下:
(s21)針對用戶發博時間數據集a4,統計用戶在不同時間區間內發博的次數。一般情況下,用戶的社交行為具有明顯的時間周期性,如以天、周或月為時間周期。周期和時間區間的選取可以依實際情況而定,周期越長,時間區間越小,計算的時間複雜度和精度越高;周期越短,時間區間越大,計算的時間複雜度和精度越低。由於此處只做示例性說明,所以令tp=24h,時間間隔sp=4h,則np=6,t0可以是任意一天的零點時刻,如1492444800。那麼一天被劃分為[0,4),[4,8),[8,12),[12,16),[16,20),[20,24)共6個時間區間,令pu1=[0,0,0,0,0,0]表示用戶u1在上述時間區間內的發博次數向量,可以通過公式(1)計算pu1,以表4中第一條數據為例進行說明,此時tp=1492450090,則
即更新pu1=[1,0,0,0,0,0]。在數據集a4中,將用戶u1的所有發博/轉博時間映射到上述6個時間區間,統計不同時間區間內用戶發博次數。
(s21)針對用戶轉博時間數據集a5,統計用戶在不同時延區內轉博的次數。令tr=12h,時間間隔sr=3h,則nr=4,令rpdu1=[0,0,0,0]表示用戶u1在[0,3),[3,6),[6,9),[9,12)這4個時延區間內的轉博次數向量,可以通過公式(2)計算rpdu1,以表5中第一條數據為例進行說明,此時tr=1492520122,td=1492499884,則
即更新rpdu1=[0,1,0,0],在數據集a5中,將用戶u1的所有轉博時延數據映射到上述4個時延區間,統計不同時延區間內用戶轉博次數。
(s23)重複步驟(s21)和步驟(s22),統計所有用戶在不同時間區間內的發博次數和不同時延區間內的轉博次數,如表6和表7所示:
表6用戶發博次數統計
表7用戶轉博時延次數統計
表8所示為所有用戶在不同時間區間內的發博時間概率分布,由表6中的數據進行歸一化處理所得;表9所示為所有用戶在不同時延區間內的轉博概率分布,由表7中的數據進行歸一化處理所得:
表8用戶發博時間概率分布
表9用戶轉博時延概率分布
(s3)相互影響力計算階段,該階段主要根據步驟s1和步驟s2中的數據結果計算社交網絡中任意兩個用戶之間的相互影響力。具體過程如下:
(s31)時延窗口因子d表示用戶可能轉發其他用戶博文的延遲時間範圍,d值越大,計算的時間複雜度和精度越高;d值越小,計算的時間複雜度和精度越低,應依實際情況而定。在本實例過程中,令d=2,即博文發布6小時之後不存在被轉發的可能。根據公式(3)計算用戶u1對用戶u2的影響力iu1(u2),此時,「#repostsu1→u2」可由數據集a1得到;「#postsu1」可由數據集a2得到;「#repostu2」可由數據集a3得到,則
(s32)重複步驟(s31),計算所有用戶之間的相互影響力。如表10所示:
表10用戶之間的相互影響力
由表10可以看出,用戶之間的相互影響力滿足非對稱性。
綜上所述,本發明基於用戶發布或轉發博文的時間統計規律,結合社交網絡用戶之間轉發關係,提出了一種基於用戶行為序列的相互影響力度量方法,為定量分析社交網絡影響力奠定了基礎。該方法可擴展性高、操作性強,無需考慮社交網絡關係拓撲結構。此外,該方法在保證精度的前提下具有較高的計算效率,適用於在大規模社交網絡數據中挖掘用戶之間的相互影響力。
以上是對本發明進行了示例性的描述,顯然本發明的實現並不受上述方式的限制,只要採用了本發明技術方案進行的各種改進,或未經改進將本發明的構思和技術方案直接應用於其它場合的,均在本發明的保護範圍內。