一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方法
【專利摘要】本發(fā)明涉及一種基于并行item?based協(xié)同過濾算法的微博關(guān)注推薦方法,首先,獲取微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù);其次,從這些數(shù)據(jù)中提取出微博用戶互動(dòng)行為偏好數(shù)據(jù)及微博用戶關(guān)注行為偏好數(shù)據(jù),分別存儲(chǔ)在HDFS上;再次,采用Hadoop的MapReduce框架與HDFS架構(gòu),對(duì)item?based協(xié)同過濾算法進(jìn)行并行化設(shè)計(jì),并對(duì)上述提取出的微博用戶互動(dòng)行為偏好數(shù)據(jù)及微博用戶關(guān)注行為偏好數(shù)據(jù)的進(jìn)行挖掘分析,找出和用戶已經(jīng)關(guān)注過的項(xiàng)目最相似的項(xiàng)目,并過濾掉用戶已經(jīng)關(guān)注的項(xiàng)目,將其推薦給目標(biāo)用戶。本發(fā)明解決了在非傳統(tǒng)場(chǎng)景下item?based協(xié)同過濾算法的應(yīng)用,不再依賴于顯示的評(píng)分?jǐn)?shù)據(jù)。提高了推薦的個(gè)性化。
【專利說明】
一種基于并行i tem-based協(xié)同過濾算法的微博關(guān)注推薦方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方法,屬于推 薦系統(tǒng)、數(shù)據(jù)挖掘技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的普及和社交網(wǎng)絡(luò)的快速發(fā)展,微博已經(jīng)成為最受歡迎的社交應(yīng)用之 一。在信息過載的時(shí)代,用戶很難從海量信息中找到感興趣的關(guān)注對(duì)象(可以是人、機(jī)構(gòu)或 者群組)。因此,抓住用戶的興趣點(diǎn)并有針對(duì)性地向用戶推薦潛在感興趣的關(guān)注對(duì)象是一個(gè) 至關(guān)重要的問題。協(xié)同過濾算法是在個(gè)性化推薦系統(tǒng)中應(yīng)用最廣泛的算法。其中,基于項(xiàng)目 的協(xié)同過濾算法的基本思想是可以根據(jù)用戶已知的確定性偏好來找到此用戶相關(guān)的喜好。
[0003] 傳統(tǒng)協(xié)同過濾算法更多用于推薦電影、商品等項(xiàng)目,然而在微博系統(tǒng)中,項(xiàng)目不再 是普通的物品而是人、機(jī)構(gòu)或者群體;歷史行為數(shù)據(jù)不再是直接能表現(xiàn)用戶傾向的顯示評(píng) 分?jǐn)?shù)據(jù),而是用戶轉(zhuǎn)發(fā)、評(píng)論、好友關(guān)系等隱式數(shù)據(jù)。因此,如何將微博隱式數(shù)據(jù)轉(zhuǎn)化為用戶 偏好也是本發(fā)明所考慮的問題。目前,傳統(tǒng)的微博關(guān)注推薦更傾向于向用戶推薦粉絲眾多 的大V賬號(hào)或者根據(jù)"朋友的朋友"進(jìn)行推薦。然而,這些推薦關(guān)注對(duì)象雖然有較好的流行 性,但是卻沒有考慮用戶的個(gè)人偏好,因此缺乏個(gè)性化。
[0004] 隨著微博數(shù)據(jù)量的急劇增長(zhǎng),在利用item-based協(xié)同過濾算法計(jì)算項(xiàng)目之間的相 似性和進(jìn)行預(yù)測(cè)的時(shí)候,單機(jī)集中式計(jì)算已經(jīng)不能滿足推薦系統(tǒng)對(duì)于推薦效率的要求。
【發(fā)明內(nèi)容】
[0005] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明公開了一種基于并行item-based協(xié)同過濾算法的微 博關(guān)注推薦方法;
[0006] 首先,獲取微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù);其次,從這些數(shù)據(jù)中 提取出微博用戶互動(dòng)行為偏好數(shù)據(jù)及微博用戶關(guān)注行為偏好數(shù)據(jù),分別存儲(chǔ)在HDFS上;再 次,采用Hadoop的MapReduce框架與HDFS架構(gòu),對(duì)item-based協(xié)同過濾算法進(jìn)行并行化設(shè) 計(jì),并對(duì)上述提取出的微博用戶互動(dòng)行為偏好數(shù)據(jù)及微博用戶關(guān)注行為偏好數(shù)據(jù)的進(jìn)行挖 掘分析,找出和用戶已經(jīng)關(guān)注過的項(xiàng)目最相似的項(xiàng)目,并過濾掉用戶已經(jīng)關(guān)注的項(xiàng)目,將其 推薦給目標(biāo)用戶。
[0007] 術(shù)語(yǔ)解釋
[0008] I、i tem-based協(xié)同過濾算法,也稱基于項(xiàng)目或基于物品的協(xié)同過濾算法。算法思 想是給用戶推薦那些和他們之前喜歡的項(xiàng)目相似的項(xiàng)目。該算法基于以下假設(shè):項(xiàng)目A和項(xiàng) 目B具有很大的相似度是因?yàn)橄矚g項(xiàng)目A的用戶大都也喜歡項(xiàng)目B。因此,可以通過分析用戶 的行為記錄來計(jì)算項(xiàng)目之間的相似度。
[0009] 2、MapReduce,是一種并行編程模式,包括Map階段和Reduce階段。Map階段主要實(shí) 現(xiàn)將切片的數(shù)據(jù)并行化處理,而Reduce階段實(shí)現(xiàn)將Map階段的結(jié)果進(jìn)行匯總,整個(gè)過程中輸 入輸出均以〈key,value〉的形式進(jìn)行計(jì)算。數(shù)據(jù)傳輸形式如下:
[0010] Map 階段:〈Kl,Vl>-list〈K2,V2>
[0011] Reduce 階段:<K2,list(V2)>-list〈K3,V3>
[0012] MapReduce的輸入是經(jīng)過分割的HDFS文件塊的<K1,V1>鍵值對(duì),其中,Kl為數(shù)據(jù)偏 離原文件首行的數(shù)值;Vl是Text類型,是該行的文本內(nèi)容;Map階段根據(jù)<K1,V1>進(jìn)行相關(guān)計(jì) 算,輸出多個(gè)<K2,V2>,經(jīng)過合并和排序,將相同key下的所有value進(jìn)行相關(guān)處理后發(fā)送到 Reduce階段,輸出最后的<K3,V3>到HDFS上。
[0013] 3、HDFS,是指分布式文件系統(tǒng)。采用主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群 是由一個(gè)NameNode和若干個(gè)DataNode組成的。文件被分成若干個(gè)數(shù)據(jù)塊,存放在一組 DataNode上。NameNode執(zhí)行文件系統(tǒng)的命名空間操作,DataNode負(fù)責(zé)處理文件系統(tǒng)客戶端 的文件讀寫請(qǐng)求,并在DataNode的統(tǒng)一調(diào)動(dòng)下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制工作。
[0014] 本發(fā)明的技術(shù)方案為:
[0015] -種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方法,具體步驟包括:
[0016] (1)獲取微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù),微博用戶互動(dòng)行為數(shù) 據(jù)包括用戶m、項(xiàng)目Ij、轉(zhuǎn)發(fā)次數(shù)retwwetj、提到次數(shù)Oj和評(píng)論次數(shù)commentj,微博用戶關(guān)注 行為數(shù)據(jù)包括用戶m、項(xiàng)目I j;
[0017] (2)從步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù)中提取用 戶偏好;步驟(2)將隱式反饋轉(zhuǎn)化成用戶偏好的目的是從用戶的行為特征中發(fā)現(xiàn)其中隱藏 的偏好信息,并基于此進(jìn)行推薦。
[0018] ①將步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)轉(zhuǎn)換為微博用戶互動(dòng)行為偏好數(shù)據(jù); 微博用戶互動(dòng)行為偏好數(shù)據(jù)包括用戶m、項(xiàng)目Ij、P(mIj),P(mIj)是指用戶m對(duì)項(xiàng)目Ij的偏 好值,求取P (ml j)的公式如式(I)所示:
[0019] P(UiIj) =am(UiIj)+0c(UiIj)+xr(UiIj) (I)
[0020] 式(I)中,a+i3+x=l,m(u山)是用戶U1對(duì)項(xiàng)目込提到次數(shù)與用戶U1提到總次數(shù)的比 值,c(u山)是用戶U 1對(duì)項(xiàng)目U平論次數(shù)與用戶m評(píng)論行為總次數(shù)的比值,r(u山)是用戶U1對(duì) 項(xiàng)目L轉(zhuǎn)發(fā)次數(shù)與用戶m轉(zhuǎn)發(fā)行為總次數(shù)的比值;
[0021] ②將步驟(1)獲取的微博用戶關(guān)注行為數(shù)據(jù)轉(zhuǎn)換為微博用戶關(guān)注行為偏好數(shù)據(jù), 微博用戶關(guān)注行為偏好數(shù)據(jù)包括用戶m、項(xiàng)目込、用戶U 1與項(xiàng)目Ij之間的偏好值,若用戶U1關(guān) 注項(xiàng)目込,用戶m與項(xiàng)目I j之間的偏好值為1.0,否則,用戶m與項(xiàng)目Ij之間的偏好值為0.0;
[0022] ③將步驟①及步驟②得到的數(shù)據(jù)分別存儲(chǔ)在HDFS上;
[0023] (3)利用并行item-based協(xié)同過濾算法對(duì)目標(biāo)用戶產(chǎn)生推薦:
[0024]④獲取用戶矩陣:以步驟③存在HDFS上的文件為輸入;輸入為〈off set,(m,Ij, Pij)>,offset是文件位置偏移量,(m,Ij,pij)是文件中的文本行,m表示用戶、Ij表示項(xiàng)目和 Plj表示偏好值;對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),PU = P(U1Ij);對(duì)于微博用戶關(guān)注行為偏 好數(shù)據(jù),Pij為1 ·〇或者〇.〇;Map階段,用戶m為key,(Ij,pij)為value,輸出〈Ui, (Ij,pij)>的鍵 值對(duì);Reduce階段,將相同key值的value進(jìn)行聚合,形成〈1^,1181:(1」4^)>的鍵值對(duì) ;
[0025] ⑤構(gòu)建共現(xiàn)矩陣并求出項(xiàng)目相似度
[0026] A、對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(II)、式(III)所 示:
[0027]
[0028] (ΠΙ)
[0029] 式(II)、式(III)中,1"、1"分別是指項(xiàng)目Im、項(xiàng)目In,ui是指對(duì)項(xiàng)目I m、項(xiàng)目In都有過 互動(dòng)行為的用戶,U是指對(duì)項(xiàng)目Im、項(xiàng)目1"都有過互動(dòng)行為的用戶總數(shù),P uil^表用戶ui對(duì)項(xiàng) 目L的偏好值,PuiIn代表用戶ui對(duì)項(xiàng)目In的偏好值,dot ImXIn是指對(duì)項(xiàng)目Im、項(xiàng)目1"都有過互 動(dòng)行為的所有用戶的偏好值乘積的和;normsim是指對(duì)應(yīng)項(xiàng)目Im的所有偏好值的平方和, n〇rmSIn是指對(duì)應(yīng)項(xiàng)目In的所有偏好值的平方和,5加11">< 111是指項(xiàng)目Im與項(xiàng)目In的相似度;
[0030] B、對(duì)于微博用戶關(guān)注行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(IV)所示:
[0031]
[0032] 式(IV)中,IN(Ic1)I是關(guān)注項(xiàng)目I。的用戶數(shù),In(Ip) I是關(guān)注項(xiàng)目Ip的用戶數(shù),|N(I。) HN(Ip)是同時(shí)關(guān)注項(xiàng)目I。和項(xiàng)目Ip的用戶數(shù);
[0033]⑥生成項(xiàng)目相似度矩陣
[0034]將步驟(2)求取的微博用戶互動(dòng)行為偏好數(shù)據(jù)的項(xiàng)目相似度及微博用戶關(guān)注行為 偏好數(shù)據(jù)的項(xiàng)目相似度作為輸入,即輸入為〈(Ii, Ij) ,Simiiixij>,以某一項(xiàng)目為key,與該項(xiàng) 目相似的項(xiàng)目發(fā)送到同一個(gè)reduce節(jié)點(diǎn),輸出為<Ii,list(Ij: Simiiixij))>,得到互動(dòng)相 似度列表矩陣和關(guān)注相似度列表矩陣,并存儲(chǔ)在可共享的存儲(chǔ)平臺(tái)上;
[0035]⑦生成用戶-項(xiàng)目相似度矩陣
[0036]將步驟④求取的用戶矩陣和步驟⑥求得的項(xiàng)目相似度矩陣進(jìn)行拼接,Map階段根 據(jù)項(xiàng)目進(jìn)行聚合,將與該項(xiàng)目互動(dòng)過的用戶、用戶對(duì)該項(xiàng)目的偏好以及該項(xiàng)目的鄰近項(xiàng)目 聚合在一起,輸出形式為<u, (list(Ij: Simiiixij) )>,u為目標(biāo)用戶,Ii為該用戶已經(jīng)關(guān)注的 一個(gè)項(xiàng)目,Ij為待推薦給用戶的項(xiàng)目,Similixlj是項(xiàng)目I i和項(xiàng)目Ij之間的相似度。
[0037]⑧輸出推薦結(jié)果
[0038] 將步驟⑦中按照用戶互動(dòng)行為數(shù)據(jù)和用戶關(guān)注行為數(shù)據(jù)生成的用戶-項(xiàng)目相似度 矩陣按照項(xiàng)目相似度從高到低排序;根據(jù)用戶互動(dòng)行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成TOPN互動(dòng) 推薦數(shù)據(jù)A;根據(jù)用戶關(guān)注行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成TOPN關(guān)注推薦數(shù)據(jù)B;取A和B的交 集,作為最后的推薦結(jié)果。
[0039] 根據(jù)本發(fā)明優(yōu)選的,α = 0·4,β = 0·4,χ = 0·2。
[0040] 根據(jù)本發(fā)明優(yōu)選的,所述步驟(1)中,利用爬取工具從新浪微博平臺(tái)抓取數(shù)據(jù),經(jīng) 過對(duì)數(shù)據(jù)進(jìn)行清洗、集成、變換,收集大量微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù) 據(jù),并存入mysql數(shù)據(jù)庫(kù)中。
[00411根據(jù)本發(fā)明優(yōu)選的,N=20。
[0042]本發(fā)明的有益效果為:
[0043] 1、將隱式反饋轉(zhuǎn)換為用戶偏好,解決了在非傳統(tǒng)場(chǎng)景下item-based協(xié)同過濾算法 的應(yīng)用,不再依賴于顯示的評(píng)分?jǐn)?shù)據(jù)。
[0044] 2、目前,傳統(tǒng)的微博關(guān)注推薦更傾向于向用戶推薦粉絲眾多的大V賬號(hào)或者根據(jù) "朋友的朋友"進(jìn)行推薦。然而,這些推薦關(guān)注對(duì)象雖然有較好的流行性,但是卻沒有考慮用 戶的個(gè)人偏好,因此缺乏個(gè)性化。將微博用戶互動(dòng)行為數(shù)據(jù)和用戶關(guān)注行為數(shù)據(jù)作為向用 戶推薦關(guān)注對(duì)象的依據(jù),提高了推薦的個(gè)性化。
[0045] 3、將item-based協(xié)同過濾算法在Hadoop平臺(tái)上實(shí)現(xiàn),利用并行化編程計(jì)算模型 MapReduce和分布式文件系統(tǒng)HDFS,提高了算法的效率和可擴(kuò)展性,能夠滿足大數(shù)據(jù)場(chǎng)景下 對(duì)推薦系統(tǒng)實(shí)時(shí)性和可擴(kuò)展性的需求。
【附圖說明】
[0046]圖1是本發(fā)明所述方法的總體流程圖;
[0047]圖2是本發(fā)明所述item-based協(xié)同過濾算法基本原理圖;
[0048]圖3是本發(fā)明所述MapReduce并行化處理框架流程圖。
【具體實(shí)施方式】
[0049] 下面結(jié)合說明書附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步限定,但不限于此。
[0050] 實(shí)施例
[0051 ] -種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方法,具體步驟包括:
[0052] (1)利用爬取工具從新浪微博平臺(tái)抓取數(shù)據(jù),經(jīng)過對(duì)數(shù)據(jù)進(jìn)行清洗、集成、變換,收 集大量微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù),并存入mysql數(shù)據(jù)庫(kù)中;微博用戶 互動(dòng)行為數(shù)據(jù)包括用戶m、項(xiàng)目Ij、轉(zhuǎn)發(fā)次數(shù)retwwetj、提到次數(shù)Oj和評(píng)論次數(shù)commentj,微 博用戶關(guān)注行為數(shù)據(jù)包括:用戶m、項(xiàng)目I j;
[0053] (2)從步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù)中提取用 戶偏好;步驟(2)將隱式反饋轉(zhuǎn)化成用戶偏好的目的是從用戶的行為特征中發(fā)現(xiàn)其中隱藏 的偏好信息,并基于此進(jìn)行推薦。
[0054]①將步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)轉(zhuǎn)換為微博用戶互動(dòng)行為偏好數(shù)據(jù); 微博用戶互動(dòng)行為偏好數(shù)據(jù)包括用戶m、項(xiàng)目Ij、P(mIj),P(mIj)是指用戶m對(duì)項(xiàng)目Ij的偏 好值,求取P (ml j)的公式如式(I)所示:
[0055] P(UiIj) =am(UiIj)+0c(UiIj)+xr(UiIj) (I)
[0056] 式(1)中,(1+3+乂 = 1,(1 = 〇.4,0 = 〇.4,乂 = 〇.2。111(11山)是用戶1^對(duì)項(xiàng)目1」提到次數(shù) 與用戶m提到總次數(shù)的比值,c(u山)是用戶m對(duì)項(xiàng)目U平論次數(shù)與用戶m評(píng)論行為總次數(shù) 的比值,HmI j)是用戶m對(duì)項(xiàng)目込轉(zhuǎn)發(fā)次數(shù)與用戶m轉(zhuǎn)發(fā)行為總次數(shù)的比值;
[0057] ②將步驟(1)獲取的微博用戶關(guān)注行為數(shù)據(jù)轉(zhuǎn)換為微博用戶關(guān)注行為偏好數(shù)據(jù), 微博用戶關(guān)注行為偏好數(shù)據(jù)包括用戶m、項(xiàng)目込、用戶m與項(xiàng)目I j之間的偏好值,若用戶m關(guān) 注項(xiàng)目込,用戶m與項(xiàng)目Ij之間的偏好值為1.0,否則,用戶m與項(xiàng)目I j之間的偏好值為0.0; [0058]③將步驟①及步驟②得到的數(shù)據(jù)分別存儲(chǔ)在HDFS上;
[0059] (3)利用并行item-based協(xié)同過濾算法對(duì)目標(biāo)用戶產(chǎn)生推薦:所述item-based協(xié) 同過濾算法基本原理圖如圖2所示。
[0060]④獲取用戶矩陣:以步驟③存在HDFS上的文件為輸入;輸入為〈off set,(Ui,Ij, Pij)>,offset是文件位置偏移量,(m,Ij,pij)是文件中的文本行,Ui表示用戶、Ij表示項(xiàng)目和 Plj表示偏好值;對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),PU = P(U1Ij);對(duì)于微博用戶關(guān)注行為偏 好數(shù)據(jù),Pij為1 ·〇或者〇.〇;Map階段,用戶m為key,(Ij,pij)為value,輸出〈Ui, (Ij,pij)>的鍵 值對(duì);Reduce階段,將相同key值的value進(jìn)行聚合,形成〈Ui,list(Ij,pij)>的鍵值對(duì); MapReduce并行化處理框架流程圖如圖3所示。
[0061 ]⑤構(gòu)建共現(xiàn)矩陣并求出項(xiàng)目相似度
[0062] A、對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(II)、式(III)所 示:
[0063]
[0064]
[0065] 式〈11;、式〈111;干,lm、ln甘別定指項(xiàng)曰1m、項(xiàng)曰ln,Ul定指別·項(xiàng)曰1m、項(xiàng)曰In邵令]Q: 互動(dòng)行為的用戶,U是指對(duì)項(xiàng)目Im、項(xiàng)目1"都有過互動(dòng)行為的用戶總數(shù),Puil^表用戶ui對(duì)項(xiàng) 目的偏好值,PuiIn代表用戶Ui對(duì)項(xiàng)目In的偏好值,d〇tImXIn是指對(duì)項(xiàng)目I m、項(xiàng)目1"都有過互 動(dòng)行為的所有用戶的偏好值乘積的和;normsim是指對(duì)應(yīng)項(xiàng)目Im的所有偏好值的平方和, n〇rmSIn是指對(duì)應(yīng)項(xiàng)目In的所有偏好值的平方和,5加11">< 111是指項(xiàng)目Im與項(xiàng)目In的相似度;
[0066] B、對(duì)于微博用戶關(guān)注行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(IV)所示:
[0067
[0068] 式(IV)中,IN(Ic1)I是關(guān)注項(xiàng)目I。的用戶數(shù),In(Ip) I是關(guān)注項(xiàng)目Ip的用戶數(shù),|N(I。) HN(Ip)是同時(shí)關(guān)注項(xiàng)目I。和項(xiàng)目Ip的用戶數(shù);
[0069] ⑥生成項(xiàng)目相似度矩陣
[0070] 將步驟(2)求取的微博用戶互動(dòng)行為偏好數(shù)據(jù)的項(xiàng)目相似度及微博用戶關(guān)注行為 偏好數(shù)據(jù)的項(xiàng)目相似度作為輸入,即輸入為〈(Ii, Ij) ,Simiiixij>,以某一項(xiàng)目為key,與該項(xiàng) 目相似的項(xiàng)目發(fā)送到同一個(gè)reduce節(jié)點(diǎn),輸出為<Ii,list(Ij: Simiiixij))>,得到互動(dòng)相 似度列表矩陣和關(guān)注相似度列表矩陣,并存儲(chǔ)在可共享的存儲(chǔ)平臺(tái)上;
[0071 ]⑦生成用戶-項(xiàng)目相似度矩陣
[0072]將步驟④求取的用戶矩陣和步驟⑥求得的項(xiàng)目相似度矩陣進(jìn)行拼接,Map階段根 據(jù)項(xiàng)目進(jìn)行聚合,將與該項(xiàng)目互動(dòng)過的用戶、用戶對(duì)該項(xiàng)目的偏好以及該項(xiàng)目的鄰近項(xiàng)目 聚合在一起,輸出形式為〈u,(liSt(I j:SimiIlXIj))>其中u為目標(biāo)用戶,I1為該用戶已經(jīng)關(guān)注 的一個(gè)項(xiàng)目山為待推薦給用戶的項(xiàng)目,Simi lixlj是項(xiàng)目I1和項(xiàng)目込之間的相似度。
[0073]⑧輸出推薦結(jié)果
[0074]將步驟⑦中按照用戶互動(dòng)行為數(shù)據(jù)和用戶關(guān)注行為數(shù)據(jù)生成的用戶-項(xiàng)目相似度 矩陣按照項(xiàng)目相似度從高到低排序;根據(jù)用戶互動(dòng)行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成"Τ0ΡΝ互 動(dòng)推薦數(shù)據(jù)A" ;根據(jù)用戶關(guān)注行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成"Τ0ΡΝ關(guān)注推薦數(shù)據(jù)B" ;取A和B 的交集,作為最后的推薦結(jié)果。N=20。
[0075]本發(fā)明所述方法的總體流程圖如圖1所示。
【主權(quán)項(xiàng)】
1. 一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方法,其特征在于,具體步 驟包括: (1) 獲取微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù),微博用戶互動(dòng)行為數(shù)據(jù)包 括用戶m、項(xiàng)目。、轉(zhuǎn)發(fā)次數(shù)retwwetj、提到次數(shù)(?和評(píng)論次數(shù)comment^,微博用戶關(guān)注行為 數(shù)據(jù)包括:用戶m、項(xiàng)目I" (2) 從步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù)中提取用戶偏 好; ① 將步驟(1)獲取的微博用戶互動(dòng)行為數(shù)據(jù)轉(zhuǎn)換為微博用戶互動(dòng)行為偏好數(shù)據(jù);微博 用戶互動(dòng)行為偏好數(shù)據(jù)包括用戶Ui、項(xiàng)目。、?(11山)^(11山)是指用戶1^對(duì)項(xiàng)目。的偏好值, 求取P(m。)的公式如式(I)所示: P(Uilj) = am(uilj)+化(UiIj)+x;r(UiIj) (I) 式(I)中,日+0+乂=1,111(111。)是用戶111對(duì)項(xiàng)目。提到次數(shù)與用戶111提到總次數(shù)的比值,〇 (11山)是用戶m對(duì)項(xiàng)目。評(píng)論次數(shù)與用戶m評(píng)論行為總次數(shù)的比值,r(u山)是用戶m對(duì)項(xiàng)目 。轉(zhuǎn)發(fā)次數(shù)與用戶m轉(zhuǎn)發(fā)行為總次數(shù)的比值; ② 將步驟(1)獲取的微博用戶關(guān)注行為數(shù)據(jù)轉(zhuǎn)換為微博用戶關(guān)注行為偏好數(shù)據(jù),微博 用戶關(guān)注行為偏好數(shù)據(jù)包括用戶ui、項(xiàng)目。、用戶m與項(xiàng)目。之間的偏好值,若用戶ui關(guān)注項(xiàng) 目Ij,用戶m與項(xiàng)目Ij之間的偏好值為1.0,否則,用戶m與項(xiàng)目Ij之間的偏好值為0.0; ③ 將步驟①及步驟②得到的數(shù)據(jù)分別存儲(chǔ)在皿FS上; (3) 利用并行item-based協(xié)同過濾算法對(duì)目標(biāo)用戶產(chǎn)生推薦: ④ 獲取用戶矩陣:W步驟③存在HDFS上的文件為輸入;輸入為<off set,(Ui,Ij,pij)>, offset是文件位置偏移量,(Ui,Ij,pij)是文件中的文本行,Ui表不用戶、Ij表不項(xiàng)目和pij表 示偏好值;對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),PU = P(m。);對(duì)于微博用戶關(guān)注行為偏好數(shù) 據(jù),Pij為1.0或者0.0;Map階段,用戶Ui為key,(Ij,pij)為value,輸出<山,(Ij,pij)>的鍵值 對(duì);Reduce階段,將相同key值的value進(jìn)行聚合,形成 <化,1131(。,9^)〉的鍵值對(duì); ⑤ 構(gòu)建共現(xiàn)矩陣并求出項(xiàng)目相似度 A、 對(duì)于微博用戶互動(dòng)行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(II)、式(虹)所示:式(II)、式(虹)中,Im、In分別是指項(xiàng)目Im、項(xiàng)目In,Ui是指對(duì)項(xiàng)目Im、項(xiàng)目In都有過互動(dòng) 行為的用戶,U是指對(duì)項(xiàng)目Im、項(xiàng)目In都有過互動(dòng)行為的用戶總數(shù),Puilm代表用戶Ui對(duì)項(xiàng)目Im 的偏好值,Puiln代表用戶Ui對(duì)項(xiàng)目In的偏好值,dotimXIn是指對(duì)項(xiàng)目Im、項(xiàng)目In都有過互動(dòng)行 為的所有用戶的偏好值乘積的和;normsim是指對(duì)應(yīng)項(xiàng)目Im的所有偏好值的平方和,normsin 是指對(duì)應(yīng)項(xiàng)目In的所有偏好值的平方和,SimilmXIn是指項(xiàng)目Im與項(xiàng)目In的相似度; B、 對(duì)于微博用戶關(guān)注行為偏好數(shù)據(jù),項(xiàng)目相似度的計(jì)算公式如式(IV)所示:式(IV)中,|Να〇)Ι是關(guān)注項(xiàng)目I。的用戶數(shù),|N(Ip)|是關(guān)注項(xiàng)目Ip的用戶數(shù),|N(lD)nN (Ip) I是同時(shí)關(guān)注項(xiàng)目I。和項(xiàng)目Ip的用戶數(shù); ⑥ 生成項(xiàng)目相似度矩陣 將步驟(2)求取的微博用戶互動(dòng)行為偏好數(shù)據(jù)的項(xiàng)目相似度及微博用戶關(guān)注行為偏好 數(shù)據(jù)的項(xiàng)目相似度作為輸入,即輸入為<(Ii, Ij), Simiiixij〉,W某一項(xiàng)目為key,與該項(xiàng)目相 似的項(xiàng)目發(fā)送到同一個(gè)reduce節(jié)點(diǎn),輸出為<Ii, Simiiixij)) >,得到互動(dòng)相似度 列表矩陣和關(guān)注相似度列表矩陣,并存儲(chǔ)在可共享的存儲(chǔ)平臺(tái)上; ⑦ 生成用戶-項(xiàng)目相似度矩陣 將步驟④求取的用戶矩陣和步驟⑥求得的項(xiàng)目相似度矩陣進(jìn)行拼接,Map階段根據(jù)項(xiàng) 目進(jìn)行聚合,將與該項(xiàng)目互動(dòng)過的用戶、用戶對(duì)該項(xiàng)目的偏好W及該項(xiàng)目的鄰近項(xiàng)目聚合 在一起,輸出形式為<u,αist(Ij:SimiIixIj))〉,u為目標(biāo)用戶,Ii為該用戶已經(jīng)關(guān)注的一個(gè) 項(xiàng)目,Ij為侍推薦給用戶的項(xiàng)目,Simiiixij是項(xiàng)目li和項(xiàng)目Ij之間的相似度; ⑧ 輸出推薦結(jié)果 將步驟⑦中按照用戶互動(dòng)行為數(shù)據(jù)和用戶關(guān)注行為數(shù)據(jù)生成的用戶-項(xiàng)目相似度矩陣 按照項(xiàng)目相似度從高到低排序;根據(jù)用戶互動(dòng)行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成TOPN互動(dòng)推薦 數(shù)據(jù)A;根據(jù)用戶關(guān)注行為數(shù)據(jù)得到前N個(gè)項(xiàng)目,生成TOPN關(guān)注推薦數(shù)據(jù)B;取A和B的交集,作 為最后的推薦結(jié)果。2. 根據(jù)權(quán)利要求1所述的一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方 法,其特化在于,日二0.4,β二0.4,X二0.2。3. 根據(jù)權(quán)利要求1所述的一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方 法,其特征在于,所述步驟(1)中,利用爬取工具從新浪微博平臺(tái)抓取數(shù)據(jù),經(jīng)過對(duì)數(shù)據(jù)進(jìn)行 清洗、集成、變換,收集大量微博用戶互動(dòng)行為數(shù)據(jù)及微博用戶關(guān)注行為數(shù)據(jù),并存入mysql 數(shù)據(jù)庫(kù)中。4. 根據(jù)權(quán)利要求1所述的一種基于并行item-based協(xié)同過濾算法的微博關(guān)注推薦方 法,其特征在于,N=20。
【文檔編號(hào)】G06F17/30GK105843860SQ201610153763
【公開日】2016年8月10日
【申請(qǐng)日】2016年3月17日
【發(fā)明人】袁東風(fēng), 徐秀珊, 張艷
【申請(qǐng)人】山東大學(xué)