一種基于項目的協(xié)同過濾推薦方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種基于項目的協(xié)同過濾推薦方法及裝置。
【背景技術(shù)】
[0002]協(xié)同過濾推薦(Collaborative Filtering recommendat1n)技術(shù)是目前推薦系統(tǒng)中應(yīng)用最為廣泛的技術(shù)之一。與傳統(tǒng)的基于內(nèi)容過濾直接分析內(nèi)容進行推薦不同,協(xié)同過濾分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統(tǒng)對該指定用戶對此信息的喜好程度預(yù)測。
[0003]目前,協(xié)同過濾推薦算法主要分為基于項目的協(xié)同過濾推薦算法和基于用戶的協(xié)同過濾推薦算法,其中,基于項目的協(xié)同過濾推薦算法,通過相同用戶對不同的項目的評分來評測項目之間的相似性,基于項目之間的相似性做出推薦;基于用戶的協(xié)同過濾推薦算法,通過不同用戶對相同項目的評分來評測用戶之間的相似性,基于用戶之間的相似性做出推薦。
[0004]現(xiàn)有兩種基于項目的協(xié)同過濾推薦算法的方式,一種方式是使用一臺計算機來進行基于項目的協(xié)同過濾推薦算法的計算;另一種方式是使用計算機集群來進行基于項目的協(xié)同過濾推薦算法的計算。
[0005]然而,在實際應(yīng)用中,使用一臺計算機來進行基于項目的協(xié)同過濾推薦算法的計算時,當被計算的數(shù)據(jù)集的數(shù)據(jù)量達到內(nèi)存容納不下的量級時,算法的性能不高;使用計算機集群來進行基于項目的協(xié)同過濾推薦算法的計算時,計算機集群的每臺計算機計算數(shù)據(jù)集的一部分,雖然能解決數(shù)據(jù)量大的問題,但是需要增加額外的輔助功能,影響算法的性能。例如:同一份數(shù)據(jù)在計算機集群里的各個計算機里都有一份拷貝,數(shù)據(jù)存在冗余;計算機集群的各個計算機需要保存計算的數(shù)據(jù),同時各個計算機之間還需要進行通信;計算機集群的每臺計算機計算數(shù)據(jù)集的一部分之后,還需要將計算的結(jié)果整合在一起,并且需要對拆分成若干數(shù)據(jù)子集的邊緣數(shù)據(jù)進行處理。并且隨著數(shù)據(jù)量的增加,需要增加計算機集群中的計算機,增加了成本。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例的目的在于提供一種基于項目的協(xié)同過濾推薦方法及裝置,以提高基于項目的協(xié)同過濾推薦算法的性能,且避免成本的增加。
[0007]為達到上述目的,本發(fā)明實施例公開了一種基于項目的協(xié)同過濾推薦方法,包括:
[0008]獲得目標數(shù)據(jù)集;
[0009]將目標數(shù)據(jù)集拆解成若干適合內(nèi)存容量的數(shù)據(jù)塊;
[0010]對每個數(shù)據(jù)塊B中的每個項目i,在本地計算項目i和該數(shù)據(jù)塊B中其它項目的相似度;
[0011]將與所述項目i的相似度高于預(yù)設(shè)的閾值對應(yīng)的項目確定為項目i的候選推薦項目。
[0012]較佳的,所述目標數(shù)據(jù)集,包括:
[0013]不同用戶收藏的網(wǎng)址信息;
[0014]或不同用戶點擊過的廣告信息;
[0015]或不同用戶搜索過的內(nèi)容;
[0016]或不同用戶購買過的商品。
[0017]較佳的,所述方法還包括:
[0018]判斷項目i的候選推薦項目的數(shù)量是否達到項目i實際推薦項目的需求數(shù)量N ;
[0019]在項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N的情況下,對項目i的候選推薦項目中的所有項目按照相似度數(shù)值從高到低排序;
[0020]從排序隊列中選取前N個項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0021 ] 較佳的,所述方法還包括:
[0022]在項目i的候選推薦項目的數(shù)量沒有達到項目i實際推薦項目的需求數(shù)量N的情況下,將項目i的候選推薦項目中的所有項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0023]較佳的,所述方法還包括:
[0024]在項目i的候選推薦項目的數(shù)量沒有達到項目i實際推薦項目的需求數(shù)量N的情況下,將預(yù)設(shè)的閾值調(diào)低,直到在項目i所處的數(shù)據(jù)塊B中,項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N ;
[0025]對項目i的候選推薦項目中的所有項目按照相似度數(shù)值從高到低排序;
[0026]從排序隊列中選取前N個項目作為項目i實際推薦的項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0027]較佳的,所述方法還包括:
[0028]在項目i的候選推薦項目的數(shù)量沒有達到項目i實際推薦項目的需求數(shù)量N的情況下,計算項目i和至少一個其它數(shù)據(jù)塊中的各項目的相似度;
[0029]將與所述項目i的相似度高于預(yù)設(shè)的閾值對應(yīng)的項目確定為項目i的候選推薦項目。
[0030]較佳的,所述方法還包括:
[0031]判斷項目i的候選推薦項目的數(shù)量是否達到項目i實際推薦項目的需求數(shù)量N ;
[0032]在項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N的情況下,對項目i的候選推薦項目中的所有項目按照相似度數(shù)值從高到低排序;
[0033]從排序隊列中選取前N個項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0034]較佳的,所述方法還包括:
[0035]在項目i的候選推薦項目的數(shù)量沒有達到項目i實際推薦項目的需求數(shù)量N的情況下,將項目i的候選推薦項目中的所有項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0036]較佳的,所述方法還包括:
[0037]在項目i的候選推薦項目的數(shù)量沒有達到項目i實際推薦項目的需求數(shù)量N的情況下,將預(yù)設(shè)的閾值調(diào)低,直到在所有數(shù)據(jù)塊中,項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N;
[0038]對項目i的候選推薦項目中的所有項目按照相似度數(shù)值從高到低排序;
[0039]從排序隊列中選取前N個項目作為項目i實際推薦的項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0040]為達到上述目的,本發(fā)明實施例還公開了一種基于項目的協(xié)同過濾推薦裝置,包括:
[0041]數(shù)據(jù)集獲得模塊,用于獲得目標數(shù)據(jù)集;
[0042]數(shù)據(jù)集拆解模塊,用于將目標數(shù)據(jù)集拆解成若干適合內(nèi)存容量的數(shù)據(jù)塊;
[0043]第一相似度計算模塊,用于對每個數(shù)據(jù)塊B中的每個項目i,在本地計算項目i和該數(shù)據(jù)塊B中其它項目的相似度;
[0044]候選推薦項目確定模塊,用于將與所述項目i的相似度高于預(yù)設(shè)的閾值對應(yīng)的項目確定為項目i的候選推薦項目。
[0045]較佳的,所述目標數(shù)據(jù)集,包括:
[0046]不同用戶收藏的網(wǎng)址信息;
[0047]或不同用戶點擊過的廣告信息;
[0048]或不同用戶搜索過的內(nèi)容;
[0049]或不同用戶購買過的商品。
[0050]較佳的,所述裝置還包括:
[0051]第一判斷模塊,用于判斷項目i的候選推薦項目的數(shù)量是否達到項目i實際推薦項目的需求數(shù)量N;
[0052]排序模塊,用于在第一判斷模塊判斷結(jié)果為是的情況下,對項目i的候選推薦項目中的所有項目按照相似度數(shù)值從高到低排序;
[0053]實際推薦項目選取模塊,用于從排序隊列中選取前N個項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0054]較佳的,所述實際推薦項目選取模塊,還用于:
[0055]在第一判斷模塊判斷結(jié)果為否的情況下,將項目i的候選推薦項目中的所有項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0056]較佳的,所述裝置還包括:
[0057]第一閾值調(diào)整模塊,用于在第一判斷模塊判斷結(jié)果為否的情況下,將預(yù)設(shè)的閾值調(diào)低,直到在項目i所處的數(shù)據(jù)塊B中,項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N。
[0058]較佳的,所述裝置還包括:
[0059]第二判斷模塊,用于在第一判斷模塊判斷結(jié)果為否的情況下,判斷是否還存在未和項目i計算相似度的其他數(shù)據(jù)塊的項目;
[0060]第二相似度計算模塊,用于在第二判斷模塊判斷結(jié)果為是的情況下,計算項目i和其它數(shù)據(jù)塊中的各項目的相似度。
[0061]較佳的,所述實際推薦項目選取模塊,還用于:
[0062]在第二判斷模塊判斷結(jié)果為否的情況下,將項目i的候選推薦項目中的所有項目作為項目i實際推薦項目,向客戶端反饋項目i的實際推薦的項目,以使所述客戶端將所述項目i的實際推薦的項目推薦給所述項目i的用戶。
[0063]較佳的,所述裝置還包括:
[0064]第二閾值調(diào)整模塊,用于在第二判斷模塊判斷結(jié)果為否的情況下,將預(yù)設(shè)的閾值調(diào)低,直到在所有數(shù)據(jù)塊中,項目i的候選推薦項目的數(shù)量達到項目i實際推薦項目的需求數(shù)量N。
[0065]較佳的,所述候選推薦項目確定模塊,還用于:
[0066]將相似度高于調(diào)低后的閾值對應(yīng)的項目確定為項目i的候選推薦項目。
[0067]由上述的技術(shù)方案可見,本發(fā)明實施例只使用一臺計算機進行基于項目的協(xié)同過濾推薦算法的計算,在計算時,將項目的整個數(shù)據(jù)集拆解成若干適合內(nèi)存容量的數(shù)據(jù)塊,對每個數(shù)據(jù)塊B中的每個項目i,在本地計算該項目i和該數(shù)據(jù)塊B中其它項目的相似度,將與所述項目i的相似度高于預(yù)設(shè)的閾值對應(yīng)的項目確定為該項目i的候