一種信息推薦方法
【專利摘要】本發(fā)明涉及信息【技術(shù)領(lǐng)域】,特別涉及一種信息推薦方法,包括:接收到訪問請求時,提取與訪問請求相對應(yīng)的當(dāng)前用戶的特征信息,根據(jù)特征信息確定當(dāng)前用戶是否為新用戶;確定當(dāng)前用戶為新用戶時,根據(jù)當(dāng)前用戶的歷史訪問記錄,按照點擊率排名向當(dāng)前用戶進(jìn)行熱點推薦;確定當(dāng)前用戶為老用戶時,對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類;在用戶聚類中,生成基于項目內(nèi)容的第一推薦列表,還生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表;根據(jù)第一推薦列表及第二推薦列表生成混合推薦列表;根據(jù)混合推薦列表向當(dāng)前用戶進(jìn)行信息推薦。該信息推薦方法形成的推薦信息的實時性提高,精確性及關(guān)聯(lián)性提高,能夠有效為用戶進(jìn)行信息推薦。
【專利說明】一種信息推薦方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,具體而言,涉及一種信息推薦方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,用戶可方便快捷地接觸到大量信息。但,海量信息及海量用戶的同時出現(xiàn),一方面令用戶難以從海量數(shù)據(jù)信息中發(fā)現(xiàn)自己的目標(biāo)數(shù)據(jù),同時也造成大量信息的無人問津,使得信息利用率低;另一方面,用戶訪問量的增加造成原始日志文件的增加。為了有針對性的向用戶提供其所需要的信息,進(jìn)而出現(xiàn)了用于向用戶推薦相關(guān)信息的推薦系統(tǒng)及推薦方法。具體地,推薦系統(tǒng),就是通過建立用戶與信息產(chǎn)品之間的二元關(guān)系,利用已有的選擇過程或相似性關(guān)系挖掘每個用戶潛在的感興趣的對象,進(jìn)而進(jìn)行個性化推薦,其本質(zhì)就是信息過濾。
[0003]相關(guān)技術(shù)中的信息推薦方法的推薦形式主要有兩種,一種是基于內(nèi)容的推薦,另一種是基于協(xié)同過濾算法的推薦。但,現(xiàn)有的該兩種推薦方法均存在著一定局限性。
[0004]例如,基于協(xié)同過濾算法的推薦方法需通過計算用戶或是項目的相似度以識別“最近鄰居”,在大數(shù)據(jù)情況下,計算量的增加直接影響信息推薦的實時性和精確度。而基于內(nèi)容的推薦則過分依賴信息的特征,使得實現(xiàn)后的推薦不能夠很好的表達(dá)信息的關(guān)聯(lián)性,進(jìn)而導(dǎo)致不能夠為用戶進(jìn)行有效的信息推薦。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種信息推薦方法,以解決上述的問題。
[0006]在本發(fā)明的實施例中提供了一種信息推薦方法,包括:
[0007]接收到訪問請求時,提取與所述訪問請求相對應(yīng)的當(dāng)前用戶的特征信息,根據(jù)所述特征信息確定所述當(dāng)前用戶是否為新用戶;
[0008]確定所述當(dāng)前用戶為新用戶時,根據(jù)所述當(dāng)前用戶的歷史訪問記錄,按照點擊率排名向所述當(dāng)前用戶進(jìn)行熱點推薦;
[0009]確定所述當(dāng)前用戶為老用戶時,對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類;在所述用戶聚類中,生成基于項目內(nèi)容的第一推薦列表,還生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表;根據(jù)所述第一推薦列表及所述第二推薦列表生成混合推薦列表;根據(jù)所述混合推薦列表向當(dāng)前用戶進(jìn)行信息推薦。
[0010]本發(fā)明上述實施例的信息推薦方法,接收到用戶的訪問請求,向用戶進(jìn)行信息推薦時,能夠根據(jù)用戶的特征信息將用戶分為新用戶及老用戶,對于新用戶進(jìn)行熱點推薦;而向老用戶進(jìn)行信息推薦時,會將系統(tǒng)中存儲的大量數(shù)據(jù)進(jìn)行聚類,如此能夠?qū)⒑A坑脩艚稻S成有限的幾個聚類,在形成的用戶聚類中對用戶形成推薦信息,如此能夠簡化海量數(shù)據(jù)的計算,保證信息推薦的實時性,而且在形成的聚類中形成面向老用戶的推薦信息時,能夠基于項目內(nèi)容生成第一推薦列表及基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾生成第二推薦列表,其中用戶-項目網(wǎng)絡(luò)是指根據(jù)用戶信息及項目信息形成的信息網(wǎng)絡(luò)。根據(jù)第一推薦列表及第二推薦列表形成混合推薦列表,通過混合推薦列表能夠避免基于內(nèi)容推薦的過于依賴信息特征的缺陷,而且通過混合推薦列表向用戶進(jìn)行信息推薦,保證推薦的信息的精確性,及推薦的信息的關(guān)聯(lián)性,因此通過本發(fā)明的信息推薦方法形成的推薦信息的實時性提高,推薦信息的精確性及關(guān)聯(lián)性提高,保證能夠有效為用戶進(jìn)行信息推薦。
【專利附圖】
【附圖說明】
[0011]圖1示出了本發(fā)明實施例信息推薦方法的流程圖;
[0012]圖2示出了本發(fā)明實施例中對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類的流程圖;
[0013]圖3示出了本發(fā)明實施例中構(gòu)建用戶偏好向量的流程圖;
[0014]圖4示出了本發(fā)明實施例中基于Hadoop技術(shù),采用MapReduce編程模型下的K-Means算法對構(gòu)建的所有用戶偏好向量進(jìn)行聚類操作的流程圖;
[0015]圖5示出了本發(fā)明實施例中在用戶聚類中生成基于項目內(nèi)容的第一推薦列表的流程圖;
[0016]圖6示出了本發(fā)明實施例中在用戶聚類中生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表的流程圖;
[0017]圖7示出了本發(fā)明實施例中在用戶聚類中構(gòu)建項目網(wǎng)絡(luò)的流程圖。
【具體實施方式】
[0018]下面通過具體的實施例子并結(jié)合附圖對本發(fā)明做進(jìn)一步的詳細(xì)描述。
[0019]本發(fā)明實施例提供一種推薦方法,如圖1所示,主要處理步驟包括:
[0020]步驟A:接收到訪問請求時,提取與所述訪問請求相對應(yīng)的當(dāng)前用戶的特征信息,根據(jù)所述特征信息確定所述當(dāng)前用戶是否為新用戶;
[0021]確定所述當(dāng)前用戶為新用戶時,執(zhí)行步驟B:根據(jù)所述當(dāng)前用戶的歷史訪問記錄,按照點擊率排名向所述當(dāng)前用戶進(jìn)行熱點推薦;
[0022]確定所述當(dāng)前用戶為老用戶時,執(zhí)行步驟C:對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類;在所述用戶聚類中,生成基于項目內(nèi)容的第一推薦列表,還生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表;根據(jù)所述第一推薦列表及所述第二推薦列表生成混合推薦列表;根據(jù)所述混合推薦列表向當(dāng)前用戶進(jìn)行信息推薦。
[0023]步驟A中,所述根據(jù)所述特征信息確定所述當(dāng)前用戶是否為新用戶,包括:
[0024]所述特征信息為發(fā)出所述訪問請求的當(dāng)前用戶的已參與項目數(shù)目;將提取的所述已參與項目數(shù)目與預(yù)設(shè)的項目數(shù)目閾值進(jìn)行比較,若所述已參與項目數(shù)目不大于所述項目數(shù)目閾值,則確定所述當(dāng)前用戶為新用戶,否則確定所述當(dāng)前用戶為老用戶。
[0025]步驟C中,所述對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類,如圖2所示,包括:
[0026]步驟Cl:根據(jù)預(yù)先存儲的用戶信息及項目信息,構(gòu)建用戶偏好向量;
[0027]步驟C2:基于Hadoop技術(shù),采用MapReduce編程模型下的K-Means算法對構(gòu)建的所有所述用戶偏好向量進(jìn)行聚類操作,生成用戶聚類。
[0028]步驟Cl中所述根據(jù)預(yù)先存儲的用戶信息及項目信息,構(gòu)建用戶偏好向量,如圖3所示,包括:
[0029]步驟Cll:所述項目信息對應(yīng)設(shè)置有項目類別標(biāo)簽,根據(jù)所述項目類別標(biāo)簽確定所述用戶偏好向量的分量及維度;
[0030]其中,所述用戶偏好向量的數(shù)學(xué)表達(dá)式為:
[0031]
【權(quán)利要求】
1.一種信息推薦方法,其特征在于,包括: 接收到訪問請求時,提取與所述訪問請求相對應(yīng)的當(dāng)前用戶的特征信息,根據(jù)所述特征信息確定所述當(dāng)前用戶是否為新用戶; 確定所述當(dāng)前用戶為新用戶時,根據(jù)所述當(dāng)前用戶的歷史訪問記錄,按照點擊率排名向所述當(dāng)前用戶進(jìn)行熱點推薦; 確定所述當(dāng)前 用戶為老用戶時,對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類;在所述用戶聚類中,生成基于項目內(nèi)容的第一推薦列表,還生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表;根據(jù)所述第一推薦列表及所述第二推薦列表生成混合推薦列表;根據(jù)所述混合推薦列表向當(dāng)前用戶進(jìn)行信息推薦。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述特征信息確定所述當(dāng)前用戶是否為新用戶,包括: 所述特征信息為發(fā)出所述訪問請求的當(dāng)前用戶的已參與項目數(shù)目; 將提取的所述已參與項目數(shù)目與預(yù)設(shè)的項目數(shù)目閾值進(jìn)行比較,若所述已參與項目數(shù)目不大于所述項目數(shù)目閾值,則確定所述當(dāng)前用戶為新用戶,否則確定所述當(dāng)前用戶為老用戶。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對預(yù)先存儲的用戶信息及項目信息進(jìn)行聚類,生成用戶聚類,包括: 根據(jù)預(yù)先存儲的用戶信息及項目信息,構(gòu)建用戶偏好向量; 基于Hadoop技術(shù),采用MapReduce編程模型下的K-Means算法對構(gòu)建的所有所述用戶偏好向量進(jìn)行聚類操作,生成用戶聚類。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)預(yù)先存儲的用戶信息及項目信息,構(gòu)建用戶偏好向量,包括: 所述項目信息對應(yīng)設(shè)置有項目類別標(biāo)簽,根據(jù)所述項目類別標(biāo)簽確定所述用戶偏好向量的分量及維度; 其中,所述用戶偏好向量的數(shù)學(xué)表達(dá)式為:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述采用TF-1DF算法確定所述用戶偏好向量的分量權(quán)重,包括: 存儲的所有所述項目信息組成項目集,所述項目集中的項目信息的項目數(shù)目記為N ; 所述項目集中設(shè)置有項目類別標(biāo)簽\的項目信息的項目數(shù)目為Iii ; 所述項目集中,將項目類別標(biāo)簽\在任意用戶u已參與項目信息中出現(xiàn)的次數(shù)記為fiu ;
貝U,項目類別標(biāo)簽\在所述用戶u已參與項目集中出現(xiàn)的詞頻為
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述基于Hadoop技術(shù),采用MapReduce編程模型下的K-Means算法對構(gòu)建的所有所述用戶偏好向量進(jìn)行聚類操作,生成用戶聚類,包括: 所有所述用戶偏好向量組成用戶偏好向量集合; 從所述用戶偏好向量集合中隨機選取K個用戶偏好向量分別作為K個類的初始中心; 利用Split過程按預(yù)設(shè)規(guī)則對所述用戶偏好向量集合中的所有用戶偏好向量進(jìn)行分組; 利用Map過程,按照所述Split過程分組的結(jié)果,計算所述用戶偏好向量集合中每個所述用戶偏好向量分別到K個所述初始中心的中心距離,并根據(jù)最短中心距離原則,形成K個聚類,同時確定K個所述聚類的用戶中心; 利用Shuffle過程,對K個所述聚類進(jìn)行洗牌歸類; 利用Reduce過程,重新計算所述洗牌歸類后的K個聚類的聚類中心; 將重新計算得到的所述聚類中心分別對應(yīng)地與所述用戶中心進(jìn)行比較; 若重新計算得到的所述聚類中心分別對應(yīng)地與所述用戶中心相等,則完成聚類操作,輸出聚類結(jié)果;否則,按預(yù)設(shè)規(guī)則重新計算聚類用戶中心,直至聚類用戶中心穩(wěn)定。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在所述用戶聚類中,生成基于項目內(nèi)容的第一推薦列表,包括: 在當(dāng)前用戶所屬的用戶聚類中,構(gòu)建項目屬性向量; 其中,所述項目屬性向量的數(shù)學(xué)表達(dá)式為:
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述用戶聚類中,還生成基于用戶-項目網(wǎng)絡(luò)的協(xié)同過濾的第二推薦列表,包括: 在所述用戶聚類中,構(gòu)建項目網(wǎng)絡(luò); 基于所述項目網(wǎng)絡(luò)構(gòu)建用戶網(wǎng)絡(luò);在所述用戶網(wǎng)絡(luò)中,按預(yù)設(shè)規(guī)則確定當(dāng)前用戶的最近鄰居集; 根據(jù)所述當(dāng)前用戶的已參與項目信息集合及所述最近鄰居集的已參與項目信息集合,形成候選推薦項目集合; 計算所述候選推薦項目集合中的項目信息對于當(dāng)前用戶的推薦度; 根據(jù)所述推薦度的計算結(jié)果,從所述候選推薦項目集合中 選取項目信息形成第二推薦列表。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述在所述用戶聚類中,構(gòu)建項目網(wǎng)絡(luò),包括: 在所述用戶聚類中,所有項目信息形成項目集I,根據(jù)任意兩個項目信息之間的邊權(quán)值,確定邊集E ; 其中,所述邊權(quán)值的數(shù)學(xué)表達(dá)式為:
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述基于所述項目網(wǎng)絡(luò)構(gòu)建用戶網(wǎng)絡(luò),包括: 構(gòu)建用戶網(wǎng)絡(luò)U= (Iu,Eu); 其中,Iu為任意用戶u已參與項目的項目信息集合,Eu= {(i,j) | (i, j) ∈ E且i,j∈ Iu為任意用戶u已參與的任意兩個項目之間的邊集,所述E指所述項目網(wǎng)絡(luò)中的邊集E。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述在所述用戶網(wǎng)絡(luò)中,按預(yù)設(shè)規(guī)則確定當(dāng)前用戶的最近鄰居集,包括: 根據(jù)預(yù)設(shè)的同一項目對關(guān)系計算當(dāng)前用戶與任意用戶u之間的Jaccard相似性,其中當(dāng)前用戶記為用戶a,計算公式為:
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述根據(jù)所述Jaccard相似性、所述相似項目相似性及所述相關(guān)項目相似性的計算結(jié)果,確定用戶a和任意用戶u之間的相似度量值,包括: 在所述用戶聚類中,除構(gòu)建項目網(wǎng)絡(luò)外,還構(gòu)建用戶-項目興趣度矩陣; 利用所述用戶-項目興趣度矩陣實現(xiàn)所述Sim1 (a, u)、sim2 (a, u)及sim3 (a, u);利用矩陣實現(xiàn)的所述Sim1 (a, u)、sim2(a,u)及sim3(a,u)確定用戶a和任意用戶u之間的相似度量值。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述同一項目對關(guān)系、相似項目對關(guān)系、相關(guān)項目對關(guān)系分別為: 設(shè)任意兩個用戶a和用戶u,Iu為用戶u已參與項目的項目信息集合,Ia為用戶a已參與項目的項目信息集合,i及j分別表示任意項目i及任意項目j ; 若 i G Ia,j G Iu, i, j G Ia n Iu,則稱 i,j 為同一項目對; 若i G Ia/Iu,j G Iu/Ia,(i, j) G E,稱i,j為用戶a和u之間的相似項目對; 若(/,/>£且w(i,j)> 0,稱i,j為用戶a和用戶u之間的相關(guān)項目對,其中
【文檔編號】G06F17/30GK103678672SQ201310726417
【公開日】2014年3月26日 申請日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】程嘉薪, 李麗麗, 雷翻翻, 馬雪峰 申請人:北京中興通軟件科技股份有限公司