本發(fā)明屬于社交網(wǎng)絡大數(shù)據(jù)技術(shù)領(lǐng)域,具體涉及一種基于相似關(guān)系和共現(xiàn)關(guān)系的話題流行度預測方法。
背景技術(shù):
微博作為當今最為流行的在線社會網(wǎng)絡形式之一,近幾年得到了迅速發(fā)展,它是一種互動及傳播性極快的平臺,傳播速度甚至比一般社會網(wǎng)絡和媒體都要快。微博的出現(xiàn),很多新聞事件和熱點話題在微博網(wǎng)站得以快速、廣泛地傳播,成為網(wǎng)民獲取信息、分享信息、交友的重要平臺。用戶發(fā)表話題根據(jù)其作者、內(nèi)容的不同,將會受到不同程度的關(guān)注,為了更好地將有價值、流行度較高的話題推薦給用戶,對話題流行度進行合理排序,有必要對用戶發(fā)表的話題流行度進行合理預測。然而,話題流行度預測是一個具有挑戰(zhàn)性的研究課題,涉及的方面很多,目前尚未有成熟的方案。參考文獻[1]首先發(fā)現(xiàn)了在線內(nèi)容在早期和晚期熱度的對數(shù)值之間的強線性關(guān)系,基于此發(fā)現(xiàn),他們提出了szabo-huberman模型來預測在線內(nèi)容的熱度。該方法雖然發(fā)現(xiàn)了流行度之間的數(shù)值關(guān)系,但僅針對具體數(shù)值,而在實際應用中,更關(guān)心的是內(nèi)容的流行程度而不是具體數(shù)值。
參考文獻[2]提出了適合長期預測的算法,基本思想是對待預測的話題,假設其歷史熱度曲線,根據(jù)與它歷史熱度曲線最相似的其他話題的熱度曲線來預測話題未來的變化趨勢,該方法的不足之處是無法應對短期預測的問題。
參考文獻[3]提出了一種基于k近鄰的預測帖子流行度方法,它以帖子的點擊數(shù)作為流行度的衡量標準,根據(jù)與話題相似的k個話題的流行度情況預測話題的發(fā)展趨勢。該方法采用的是向量空間模型表示,在找出最相似的k個話題上存在較大的誤差。
參考文獻[4]提出一種基于k近鄰和lda模型(latentdirichletallocation)的預測方法,該方法除了考慮了近鄰方法還加入了對作者興趣特征的考慮。該方法雖然采用lda模型,彌補了向量空間模型的問題,但是沒有加入話題之間的共現(xiàn)關(guān)系的考慮,共現(xiàn)話題存在一定的邏輯關(guān)聯(lián),對于話題流行度預測具有重要的作用。具體參考文獻如下:
[1]szabog,hubermanba.predictingthepopularityofonlinecontent.2010
[2]gaoh,wangss,fuy.predictionmodelforlong-termdevelopmenttrendofwebsentiment.2011
[3]nierl,chenl,wangyq,et,al,algorithmforpredictionofnewtopic’shotnessusingthek-nearestneighbors.2012.
[4]wangwj,chenl,wangyq,et,al,algorithmforpredictionofpost’shotnessusingk—nearestneighborsandlatentdirichletallocation.2014.
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明通過流行度定義、相似關(guān)系的分析、共現(xiàn)關(guān)系的分析和話題流行度預測,基于相似關(guān)系和共現(xiàn)關(guān)系對話題流行度進行了預測,提出了一種話題流行度預測方法。具體技術(shù)方案如下:
一種基于相似關(guān)系和共現(xiàn)關(guān)系的話題流行度預測方法,包括以下步驟:
(s1)輸入文檔集合,通過lda建模分析得到話題集合、每個話題的詞匯分布和每個文檔的話題分布;
(s2)針對任一個話題za,根據(jù)話題za的詞匯分布,通過kl散度法計算話題za與其他話題的相似關(guān)系,即話題za的相似向量;
(s3)針對任一個文檔d,根據(jù)文檔d的話題分布,將文檔d中的話題按照分布概率值進行降序排列,取出概率最大的3個話題作為文檔d的代表性話題,并計算話題za與其他話題的共現(xiàn)關(guān)系,即話題za的共現(xiàn)向量;
(s4)定義流行度,并計算話題的流行度;假設給定一個微博c,記微博c的發(fā)表時間為0時刻,則在t時刻的轉(zhuǎn)發(fā)次數(shù)記為r(c,t),即微博c在時刻t的流行度;設話題za包含若干條微博,記話題za中第一條微博的發(fā)表時間為0時刻,則在t時刻的屬于該話題za的所有微博轉(zhuǎn)發(fā)次數(shù)之和記為r(za,t),即話題za在時刻t的流行度;定義r(za,t1)表示話題za在t1時刻的流行度,r(za,t2)表示話題za在預測時刻t2的流行度,t2>t1,則計算評價中間量q:
q=r(za,t1)/r(za,t2);
設定三個閾值p1、p2、p3,且p1<p2<p3,將流行度分為四個類別,具體為,
如果q<p1,則為l1類;
如果p1≤q<p2,則為l2類;
如果p2≤q<p3,則為l3類;
如果q≥p3,則為l4類;
(s5)計算話題za基于相似關(guān)系的流行度;
(s6)計算話題za基于共現(xiàn)關(guān)系的流行度;
(s7)根據(jù)步驟(s5)和步驟(s6)的計算結(jié)果,分別計算話題za在l1、l2、l3、l4四類情況下的概率值,選擇概率值最大的類別作為該話題za的最終流行度。
優(yōu)選地,所述步驟(s2)中通過kl散度法計算話題za與其他話題的相似關(guān)系具體為:
similarity(za)={(z1,ws-a1),(z2,ws-a2),…,(zm,ws-am)}
其中,similarity(za)表示話題za的相似向量,zi表示第i個話題,ws-ai為第i個話題對應的相似權(quán)重,i=1,2,…,m且i≠a,m表示話題總數(shù),i取整數(shù)。
ta表示話題za的詞匯分布,ti表示話題zi的詞匯分布,n為詞匯總數(shù),log表示以10為底對數(shù)的簡寫,ta(vh)表示詞匯分布ta在詞匯vh時的概率值,tp(vh)表示詞匯分布tp在詞匯vh時的概率值,h=1,2,…,n。h取整數(shù)。
優(yōu)選地,所述步驟(s3)中計算話題za與其他話題的共現(xiàn)關(guān)系具體為:
cooccurrence(za)={(z1,wc-a1),(z2,wc-a2),…,(zm,wc-am)}
其中,cooccurrence(za)表示話題za的共現(xiàn)向量,zi表示第i個話題,wc-ai為第i個話題對應的共現(xiàn)權(quán)重,i=1,2,…,m且i≠a,m表示話題總數(shù);
f為文檔集合,za和zb表示任意兩個話題,d表示文檔,s(d)表示文檔的代表性話題集合;
優(yōu)選地,所述步驟(s5)中計算話題za基于相似關(guān)系的流行度具體過程為:
從話題za的相似向量中選出k個相似權(quán)重最高的話題,記為ssim(za),通過這k個話題的流行度類別和與話題za的相似關(guān)系,計算話題za在相似關(guān)系下屬于四種流行度類別的情況,計算公式如下:
其中β的取值為1,2,3,4,zj表示話題,ws-aj為話題zj對應的相似權(quán)重,r(zj)表示話題zj所屬流行度類別,δ()表示布爾函數(shù),
優(yōu)選地,所述步驟(s6)中計算話題za基于共現(xiàn)關(guān)系的流行度具體過程為:
從話題za的共現(xiàn)向量中選出k個共現(xiàn)權(quán)重最高的話題,記為scor(za),通過這k個話題的流行度類別以及與話題za的共現(xiàn)情況,計算出話題za在共現(xiàn)關(guān)系下屬于四種流行度類別的情況,計算公式如下:
其中β的取值為1,2,3,4,zl表示話題,wc-al為話題zl對應的相似權(quán)重,r(zl)表示話題zl所屬流行度的類別,δ()表示布爾函數(shù),
優(yōu)選地,所述步驟(s7)中話題za的最終流行度計算過程為:分別計算話題za屬于l1,l2,l3,l4四種類別的概率p(za,lβ):
p(za,lβ)=γ*psim(za,lβ)+(1-γ)*pcor(za,lβ)
其中γ表示線性參數(shù),psim(za,lβ)表示話題za基于相似關(guān)系屬于類別lβ的概率,pcor(za,lβ)表示話題za基于共現(xiàn)關(guān)系屬于類別lβ的概率;選擇最終概率最大值作為話題za的最終流行程度。
采用本發(fā)明獲得的有益效果:本發(fā)明方法將話題流行度預測方法應用到了社交網(wǎng)絡大數(shù)據(jù)中,實現(xiàn)了話題流行程度的短期預測,在考慮話題間相似關(guān)系的同時,融入話題間共現(xiàn)關(guān)系的考慮,簡化了預測過程,在一定程度上提高了話題流行度預測的準確性。
附圖說明
圖1為本發(fā)明方法流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
如圖1所示為本發(fā)明流程圖,一種基于相似關(guān)系和共現(xiàn)關(guān)系的話題流行度預測方法,包括以下步驟:
(s1)輸入文檔集合,通過lda建模分析,得到話題集合、每個話題的詞匯分布和每個文檔的話題分布;
(s2)針對任一個話題za,根據(jù)話題za的詞匯分布,通過kl散度法計算話題za與其他話題的相似關(guān)系,即話題za的相似向量;
(s3)針對任一個文檔d,根據(jù)文檔d的話題分布,將文檔d中的話題按分布概率的降序排列,取出概率最大的3個話題作為文檔d的代表性話題,并計算話題za與其他話題的共現(xiàn)關(guān)系,即話題za的共現(xiàn)向量;
(s4)定義流行度,并計算話題的流行度;假設給定一個微博c,記微博c的發(fā)表時間為0時刻,則在t時刻的轉(zhuǎn)發(fā)次數(shù)記為r(c,t),即微博c在時刻t的流行度(本發(fā)明中一個微博與該微博評論集合放在一起,經(jīng)過去停用詞、分詞等預處理操作后即得到一篇文檔);設話題za包含若干條微博,記話題za中第一條微博的發(fā)表時間為0時刻,則在t時刻的屬于該話題za的所有微博轉(zhuǎn)發(fā)次數(shù)之和記為r(za,t),即話題z在時刻t的流行度,也可表示為
q=r(za,t1)/r(za,t2);
設定三個閾值p1,p2,p3,且p1<p2<p3,將流行度分為四個類別,具體為,
如果q<p1,則為l1類;表示此話題在t2時刻后仍會產(chǎn)生高規(guī)模數(shù)量的新博文和轉(zhuǎn)發(fā);實施例中設置p1,p2,p3分別設置為0.2,0.4和0.7。
如果p1≤q<p2,則為l2類;表示此話題在t2時刻后仍會產(chǎn)生中規(guī)模數(shù)量的新博文和轉(zhuǎn)發(fā);
如果p2≤q<p3,則為l3類;表示此話題在t2時刻后仍會產(chǎn)生低規(guī)模數(shù)量的新博文和轉(zhuǎn)發(fā);
如果q≥p3,則為l4類;表示此話題在t2時刻后無新博文和轉(zhuǎn)發(fā);
(s5)計算話題za基于相似關(guān)系的流行度;
(s6)計算話題za基于共現(xiàn)關(guān)系的流行度;
(s7)根據(jù)步驟(s5)和步驟(s6)的計算結(jié)果,分別計算話題za在l1、l2、l3、l4四類情況下的概率值,選擇概率值最大的類別作為該話題za的最終流行度。
話題的相似關(guān)系分析的重點是如何判斷兩個話題是否是相似關(guān)系。實施例中采用kl散度的方法進行衡量。kl散度(kullback–leiblerdivergence),又稱相對熵(relativeentropy),是描述兩個概率分布p和q差異的一種方法。它是非對稱的,這意味著d(p||q)≠d(q||p)。特別的,在信息論中,d(p||q)表示當用概率分布q來擬合真實分布p時,產(chǎn)生的信息損耗,其中p表示真實分布,q表示p的擬合分布。具體如下面公式所示,其中
所述步驟(s2)中通過kl散度法計算話題za與其他話題的相似關(guān)系具體為:
similarity(za)={(z1,ws-a1),(z2,ws-a2),…,(zm,ws-am)}
其中,similarity(za)表示話題za的相似向量,zi表示第i個話題,ws-ai為第i個話題對應的相似權(quán)重,i=1,2,…,m且i≠a,m表示話題總數(shù);
ta表示話題za的詞匯分布,ti表示話題zi的詞匯分布,n為詞匯總數(shù),log表示以10為底對數(shù)的簡寫,ta(vh)表示詞匯分布ta在詞匯vh時的概率值,tp(vh)表示詞匯分布tp在詞匯vh時的概率值,h=1,2,…,n。
實施例中,通過lda模型可以得到文檔集合中每個話題的詞匯分布。對于兩個話題za和zi,它們詞匯分布分別為ta和ti。用kl散度衡量兩個話題的詞匯分布的相似程度,兩個話題語義越接近,則它們的分布越相似,那么它們對應的kl-divergence值就越接近于0。即在兩個話題相似性分析時,散度值越小越好。由于散度值越小,說明兩個話題越相似,所以上述采用簡單的取倒數(shù)方式來表示,為了防止計算過程中分母為零,一般情況下使用1+d(ta||ti)進行計算。
在話題模型中,每篇文檔表示為話題的混合分布,其中那些分布概率高的話題則是該文檔的代表性話題。如果兩個話題同時出現(xiàn)在某篇文檔的代表性話題中,則稱這兩個話題存在一次共現(xiàn),即這兩個話題是共現(xiàn)關(guān)系。共現(xiàn)次數(shù)越多的話題,可以認為它們的邏輯關(guān)系越強。
實施例中,計算兩個話題的共現(xiàn)次數(shù)具體為,定義布爾函數(shù)
則計算話題za與其他話題的共現(xiàn)關(guān)系具體為:
cooccurrence(za)={(z1,wc-a1),(z2,wc-a2),…,(zm,wc-am)}
其中,cooccurrence(za)表示話題za的共現(xiàn)向量,zi表示第i個話題,wc-ai為第i個話題對應的共現(xiàn)權(quán)重,i=1,2,…,m且i≠a,m表示話題總數(shù);
基于knn算法(又稱k近鄰分類算法)的思想,一個話題的流行度可以通過與其最相似的k個話題的流行情況進行預測,同樣,也可以通過與共現(xiàn)信息比重最高的k個話題的流行度進行預測?;谝陨峡紤],這里提出了scw(similarityco-occurrenceweighting)算法。根據(jù)相似情況和共現(xiàn)信息分別計算出話題屬于定義四個類別的概率,然后最終預測出話題的流行類別。
(1)計算話題za基于相似關(guān)系的流行度具體過程為:
從話題za的相似向量中選出k個相似權(quán)重最高的話題,記為ssim(za),通過這k個話題的流行度類別和與話題za的相似關(guān)系,計算話題za在相似關(guān)系下屬于四種流行度類別的情況,計算公式如下:
其中β的取值為1,2,3,4,zj表示話題,ws-aj為話題zj對應的相似權(quán)重,r(zj)表示對于一個話題zj,根據(jù)其評價中間量q的情況判斷話題zj所屬流行度類別的函數(shù),δ()表示布爾函數(shù),
(2)計算話題za基于共現(xiàn)關(guān)系的流行度具體過程為:
從話題za的共現(xiàn)向量中選出k個共現(xiàn)權(quán)重最高的話題,記為scor(za),通過這k個話題的流行度類別以及與話題za的共現(xiàn)情況,計算出話題za在共現(xiàn)關(guān)系下屬于四種流行度類別的情況,計算公式如下:
其中β的取值為1,2,3,4,zl表示話題,wc-al為話題zl對應的相似權(quán)重,r(zl)表示對于一個話題zl,根據(jù)其評價中間量q的情況判斷話題zl所屬流行度類別的函數(shù),δ()表示布爾函數(shù),
(3)話題za的最終流行度計算過程為:分別計算話題za屬于l1,l2,l3,l4四種類別的概率p(za,lβ):
p(za,lβ)=γ*psim(za,lβ)+(1-γ)*pcor(za,lβ)
其中γ表示線性參數(shù),γ∈(0,1),psim(za,lβ)表示話題za基于相似關(guān)系屬于類別lβ的概率,pcor(za,lβ)表示話題za基于共現(xiàn)關(guān)系屬于類別lβ的概率;選擇最終概率最大值對應的類別作為話題za的最終流行程度。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接應用在其他相關(guān)技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。