一種基于轉(zhuǎn)發(fā)鏈相似度的用戶關(guān)注對(duì)象推薦計(jì)算方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及社交網(wǎng)絡(luò)分析和推薦系統(tǒng)領(lǐng)域,具體涉及一種基于轉(zhuǎn)發(fā)鏈相似度的用 戶關(guān)注對(duì)象推薦計(jì)算方法的研究及實(shí)現(xiàn)。
【背景技術(shù)】
[0002] 新型社交策展網(wǎng)絡(luò)中存在用戶的關(guān)注與被關(guān)注關(guān)系。針對(duì)社交網(wǎng)絡(luò)的用戶關(guān)注推 薦算法很多,大都利用用戶參與過的內(nèi)容記錄,使用內(nèi)容、標(biāo)簽等比對(duì)手段發(fā)現(xiàn)用戶的潛在 興趣以及關(guān)注對(duì)象。推薦系統(tǒng)中用戶隱私的保護(hù)一直以來是一個(gè)重要問題。如何在盡可能 少使用用戶隱私數(shù)據(jù)的前提下充分挖掘用戶的興趣點(diǎn),為用戶提供用戶關(guān)注推薦。
[0003] 在社交策展網(wǎng)絡(luò)中,用戶的每一個(gè)公開的收藏條目均可以被其他用戶進(jìn)行轉(zhuǎn)發(fā)。 轉(zhuǎn)發(fā)行為在一定程度上體現(xiàn)了用戶對(duì)被轉(zhuǎn)內(nèi)容的喜好程度,同時(shí)轉(zhuǎn)發(fā)的路徑也表現(xiàn)了用戶 的信息來源以及信息流向。大量針對(duì)社交網(wǎng)絡(luò)的數(shù)據(jù)挖掘相關(guān)研究針對(duì)其中的轉(zhuǎn)發(fā)特性而 開展。研究者通過對(duì)微博、Twitter上博文轉(zhuǎn)發(fā)關(guān)系、轉(zhuǎn)發(fā)路徑以及用戶參與頻數(shù)的分析,來 進(jìn)行如:話題提取、社區(qū)分割、熱點(diǎn)預(yù)測(cè)等方面的工作。針對(duì)轉(zhuǎn)發(fā)關(guān)系的分析研究,主要通過 用戶的個(gè)人屬性,轉(zhuǎn)發(fā)微博的標(biāo)簽、關(guān)鍵詞,各結(jié)點(diǎn)轉(zhuǎn)發(fā)量等數(shù)據(jù)進(jìn)行分析。通過如1D-IDF、 主題建模等方法對(duì)文本數(shù)據(jù)進(jìn)行處理,通過圖論算法對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行提取化簡(jiǎn),得到所需 的特征。而事實(shí)上,就轉(zhuǎn)發(fā)路徑上看,一個(gè)信息的流向也包含了用戶的興趣偏好,并且,不同 轉(zhuǎn)發(fā)鏈路徑上重合節(jié)點(diǎn)的密度關(guān)系到用戶對(duì)每個(gè)結(jié)點(diǎn)的感興趣程度。單個(gè)用戶的收藏條目 對(duì)應(yīng)的轉(zhuǎn)發(fā)關(guān)系包含的相關(guān)數(shù)據(jù)從結(jié)構(gòu)、信息流向、重合節(jié)點(diǎn)密度上都存在許多值得研究 的特性。如何從收藏條目的轉(zhuǎn)發(fā)路徑上獲取用戶潛在的關(guān)注對(duì)象就成了研究的要點(diǎn)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明主要解決如何利用用戶的轉(zhuǎn)發(fā)行為以及轉(zhuǎn)發(fā)對(duì)應(yīng)的關(guān)系數(shù)據(jù)進(jìn)行用戶的 潛在關(guān)注對(duì)象挖掘,實(shí)現(xiàn)用戶關(guān)注推薦。
[0005] 為了實(shí)現(xiàn)上述問題,本發(fā)明提供了一種基于轉(zhuǎn)發(fā)鏈相似度的用戶關(guān)注對(duì)象推薦計(jì) 算方法。該方法包括:
[0006] A、根據(jù)目標(biāo)用戶的所有收藏條目進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)的采集,根據(jù)收藏條目中轉(zhuǎn)發(fā)自何 人的數(shù)據(jù),獲取每一條收藏條目到原始收藏條目的數(shù)據(jù)。從當(dāng)前收藏條目開始向父級(jí)爬取 數(shù)據(jù)。根據(jù)轉(zhuǎn)發(fā)自何處這一數(shù)據(jù)作為指導(dǎo),一直追溯到原始收藏條目位置。在追溯過程中 的每一個(gè)結(jié)點(diǎn)都是原始收藏條目的一個(gè)拷貝,而由這些結(jié)點(diǎn)構(gòu)成了一條鏈狀的路徑圖,稱 之為轉(zhuǎn)發(fā)鏈。每個(gè)轉(zhuǎn)發(fā)鏈均由一個(gè)包含若干收藏條目的集合構(gòu)成。以每個(gè)轉(zhuǎn)發(fā)的收藏條目 的創(chuàng)建用戶來代表該轉(zhuǎn)發(fā)鏈上的一個(gè)結(jié)點(diǎn)。
[0007] B、對(duì)于目標(biāo)用戶的所有轉(zhuǎn)發(fā)鏈數(shù)據(jù)構(gòu)成的集合,取集合中的所有兩兩轉(zhuǎn)發(fā)鏈組 合,對(duì)組合求取轉(zhuǎn)發(fā)鏈相似度值。
[0008] 進(jìn)一步地,所述步驟B具體包括:
[0009] B1、定義目標(biāo)用戶轉(zhuǎn)發(fā)鏈集合中轉(zhuǎn)發(fā)鏈數(shù)據(jù)的具體表達(dá)式。設(shè)?"為當(dāng)前的收藏條 目,E為轉(zhuǎn)發(fā)關(guān)系集合,S為原始收藏條目集合。將一條轉(zhuǎn)發(fā)鏈數(shù)據(jù)以轉(zhuǎn)發(fā)鏈上各個(gè)節(jié)點(diǎn)收 藏條目的創(chuàng)建用戶的編號(hào)為標(biāo)記,以鏈表的形式表示為R = (Pr P2, P;?,…,PnI〈Pi,Pi+i〉 GE,PlGS}。設(shè)R 1,p表示轉(zhuǎn)發(fā)鏈i的第p個(gè)結(jié)點(diǎn)位置上用戶的編號(hào)。由于對(duì)目標(biāo)用戶的 推薦不需要考慮目標(biāo)用戶自身和目標(biāo)用戶已經(jīng)關(guān)注的用戶,所以,在計(jì)算時(shí)將每一條轉(zhuǎn)發(fā) 鏈數(shù)據(jù)的最后兩個(gè)結(jié)點(diǎn)P n :和P n去除。
[0010] B2、計(jì)算轉(zhuǎn)發(fā)鏈之間轉(zhuǎn)換的最小操作代價(jià)。設(shè)在轉(zhuǎn)發(fā)鏈結(jié)構(gòu)的鏈表中存在插入一 個(gè)結(jié)點(diǎn)、刪除一個(gè)結(jié)點(diǎn)和以另一個(gè)結(jié)點(diǎn)替換當(dāng)前結(jié)點(diǎn)這三種基本操作,每個(gè)操作所要花費(fèi) 的代價(jià)均為1。則長度為k的轉(zhuǎn)發(fā)鏈民通過三種基本操作變?yōu)殚L度為1的轉(zhuǎn)發(fā)鏈R ,所需 的最小操作代價(jià)Cost (R1, R,)通過回溯搜索算法計(jì)算得到。
[0011] B3、根據(jù)上一步的計(jì)算結(jié)果Costd Rj),計(jì)算轉(zhuǎn)發(fā)鏈民和轉(zhuǎn)發(fā)鏈R 的相似度 Sim(RpRj)c3相似度simd Rj)的計(jì)算公式如下:
[0012]
[0013] max{k,1}表示求取k和1中的最大值。
[0014] 至此對(duì)于目標(biāo)用戶的所有轉(zhuǎn)發(fā)鏈數(shù)據(jù)集合中任意兩個(gè)轉(zhuǎn)發(fā)鏈都得到一個(gè)相似度 計(jì)算值simd Rj)。
[0015] C、根據(jù)B步計(jì)算的相似度計(jì)算值simd Rj)獲取候選的推薦對(duì)象用戶,并計(jì)算每 一個(gè)候選的推薦對(duì)象的權(quán)重值。
[0016] 進(jìn)一步地,所述步驟C具體包括:
[0017] C1、確定候選的推薦對(duì)象用戶集合。
[0018] C2、根據(jù)轉(zhuǎn)發(fā)鏈相似度計(jì)算結(jié)果給每一條轉(zhuǎn)發(fā)鏈上的候選推薦對(duì)象計(jì)算權(quán)重值。
[0019] C3、加和所有轉(zhuǎn)發(fā)鏈上的權(quán)重值計(jì)算結(jié)果
[0020] 進(jìn)一步地,所述步驟Cl具體包括:
[0021] C11、設(shè)目標(biāo)用戶u的所有轉(zhuǎn)發(fā)鏈集合為Tu= (R1, R2,…,RJ,其中n表示目標(biāo)用 戶所包含的所有收藏條目個(gè)數(shù)。根據(jù)步驟Bl中對(duì)轉(zhuǎn)發(fā)鏈數(shù)據(jù)的定義,轉(zhuǎn)發(fā)鏈民和轉(zhuǎn)發(fā)鏈
S1,,中用戶的總數(shù)。
[0022] C12、設(shè)目標(biāo)用戶轉(zhuǎn)發(fā)鏈集合Tu中所有相似度不為0的轉(zhuǎn)發(fā)鏈中所有重復(fù)出現(xiàn)在2 個(gè)或2個(gè)以上轉(zhuǎn)發(fā)鏈數(shù)據(jù)中的用戶編號(hào)定義為候選的推薦對(duì)象用戶。設(shè)D 1S轉(zhuǎn)發(fā)鏈R 所有候選的推薦對(duì)象用戶的集合,則D1由公式瑪_ 計(jì)算,其中n表示目標(biāo)用戶 所包含的所有收藏條目個(gè)數(shù),U為求并集符號(hào)。
[0023]C14、對(duì)目標(biāo)用戶所有轉(zhuǎn)發(fā)鏈上候選的推薦對(duì)象用戶構(gòu)成的集合?,則由如下公式 計(jì)算:#? ,其中n表示目標(biāo)用戶所包含的所有收藏條目個(gè)數(shù),U為求并集符號(hào)。
[0024] 所述步驟C2具體包括:
[0025] C21、給所有的存在與其它轉(zhuǎn)發(fā)鏈相似度不為0的轉(zhuǎn)發(fā)鏈1單位的分配權(quán)重。
[0026] C22、根據(jù)步驟B中所得的轉(zhuǎn)發(fā)鏈相似度計(jì)算結(jié)果,轉(zhuǎn)發(fā) 鏈R1上第k個(gè)候選的推薦對(duì)象u 1所得到的分配權(quán)重值weight(u D為
用戶所包含的所有收藏條目個(gè)數(shù),S1, ,表示轉(zhuǎn)發(fā)鏈R1和轉(zhuǎn)發(fā)鏈R ,上的共同用戶集合。
[0027] C23、反復(fù)執(zhí)行步驟C22直到所有轉(zhuǎn)發(fā)鏈上所有的候選的推薦對(duì)象所得的分配權(quán) 重值全部被單獨(dú)計(jì)算完畢。
[0028] 所述步驟C3具體包括:
[0029] C31、設(shè)I(AD1)為判定函數(shù),如果U1G D,j函數(shù)返回值為1,否則為0。
[0030] C32、根據(jù)步驟C2中計(jì)算得到的每個(gè)轉(zhuǎn)發(fā)鏈上候選推薦對(duì)象所得的權(quán)重值,進(jìn)行 求和操作,得到全體候選用戶集合?中每個(gè)用戶的最終權(quán)重值:
[0032] 其中,?表示目標(biāo)用戶所有轉(zhuǎn)發(fā)鏈上候選的推薦對(duì)象用戶構(gòu)成的集合,U表示等 待計(jì)算的候選用戶對(duì)象,U 1表示當(dāng)前等待計(jì)算的候選對(duì)象在第i條轉(zhuǎn)發(fā)鏈上環(huán)境下的標(biāo)記, weight (U1)表示當(dāng)前等待計(jì)算的候選對(duì)象在第i條轉(zhuǎn)發(fā)鏈上所得到的分配權(quán)重值,n表示 目標(biāo)用戶所包含的所有收藏條目個(gè)數(shù)。
[0033] 至此,所有候選的推薦對(duì)象所得的權(quán)重值全部計(jì)算完畢。
[0034] D、根據(jù)步驟C中計(jì)算得到的候選的推薦對(duì)象權(quán)重值大小,將候選的推薦對(duì)象用戶 進(jìn)行降序排序,權(quán)重值越大的用戶越靠前,也越可能被推薦。
【附圖說明】
[0035] 圖1為實(shí)施例一中步驟B3所有轉(zhuǎn)發(fā)鏈的相似度計(jì)算可視化結(jié)果圖
[0036] 圖2為實(shí)施例一中推薦產(chǎn)生不意圖
[0037] 圖3為實(shí)施例一中轉(zhuǎn)發(fā)鏈?zhǔn)疽鈭D
[0038] 圖4為實(shí)施例一的推薦結(jié)果在實(shí)驗(yàn)測(cè)試集上與對(duì)比算法的查準(zhǔn)率、查全率和Fl指 數(shù)結(jié)果對(duì)比圖
【具體實(shí)施方式】
[0039] 下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。
[0040] 本實(shí)施例是針對(duì)某社交策展網(wǎng)絡(luò)真實(shí)數(shù)據(jù)進(jìn)行的,例中的用戶為網(wǎng)絡(luò)中的真實(shí)用 戶,包含有69個(gè)收藏條目以及收藏條目對(duì)應(yīng)的轉(zhuǎn)發(fā)鏈,有214個(gè)關(guān)注對(duì)象。
[0041] A、讀入用戶的關(guān)注對(duì)象數(shù)據(jù)和收藏條目轉(zhuǎn)發(fā)鏈數(shù)據(jù)。
[0042] B、提取轉(zhuǎn)發(fā)鏈集合上的用戶編號(hào),并計(jì)算轉(zhuǎn)發(fā)鏈之間的相似度值。
[0043] 所述步驟B具體包括:
[0044] B1、將一條轉(zhuǎn)發(fā)鏈數(shù)據(jù)以轉(zhuǎn)發(fā)鏈上各個(gè)節(jié)點(diǎn)收藏條目的創(chuàng)建用戶的編號(hào)為標(biāo)記, 以鏈表的形式表示為1?={口 1,口2,口3,*",口」<^七+1〉££,口 1£5}。設(shè)1^,|:)表示轉(zhuǎn)發(fā)鏈1 的第P個(gè)結(jié)點(diǎn)位置上用戶的編號(hào),將每一條轉(zhuǎn)發(fā)鏈數(shù)據(jù)的最后兩個(gè)結(jié)點(diǎn)Pn JP P n去除。本 實(shí)例中目標(biāo)用戶的第一條轉(zhuǎn)發(fā)鏈可以用用戶編號(hào)表示為{8089456,6589657,889106}。
[0045] B2、根據(jù)目標(biāo)用戶的轉(zhuǎn)發(fā)鏈數(shù)據(jù),計(jì)算轉(zhuǎn)發(fā)鏈之間轉(zhuǎn)換的最小操作代價(jià),在本實(shí) 例中,目標(biāo)用戶的第四條的數(shù)據(jù)表示為{9550825,6308943,6363423,1265655,6589657, 8889106},第五條轉(zhuǎn)發(fā)鏈的數(shù)據(jù)表示為{9550825,10138913,11219171,286421,305714, 57678,853734,960710,485684889716,889106},根據(jù)Bl步驟去除最后兩個(gè)結(jié)點(diǎn)的數(shù)據(jù)后, 第一條轉(zhuǎn)發(fā)鏈與第四條轉(zhuǎn)發(fā)鏈之間的最小操作代價(jià)Cost (R1, R4)的計(jì)算結(jié)果為4,而第四條 和第五條轉(zhuǎn)發(fā)鏈的最小操作代價(jià)Cost (R4, R5)計(jì)算結(jié)果為8。
[0046] B3、根據(jù)上一步的計(jì)算結(jié)果,計(jì)算目標(biāo)用戶的各轉(zhuǎn)發(fā)鏈之間的兩兩相似度SinKR