本發(fā)明涉及網(wǎng)絡(luò)信息智能處理領(lǐng)域,具體而言,涉及一種基于網(wǎng)絡(luò)用戶瀏覽、購買行為記錄的協(xié)同過濾式個性化推薦方法和裝置。
背景技術(shù):隨著互聯(lián)網(wǎng)的快速普及和網(wǎng)絡(luò)基礎(chǔ)設(shè)施、服務(wù)的日益完善,搜索引擎、電子商務(wù)、社交網(wǎng)站等網(wǎng)絡(luò)應(yīng)用已經(jīng)深入到互聯(lián)網(wǎng)用戶生活的方方面面。以電子商務(wù)網(wǎng)站而言,據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)在2013年的統(tǒng)計報告顯示,我國網(wǎng)絡(luò)購物用戶的規(guī)模已達(dá)到2.42億人,網(wǎng)絡(luò)購物應(yīng)用的使用率達(dá)到43%以上。個性化推薦技術(shù)致力于向網(wǎng)絡(luò)用戶自動推薦其最有可能感興趣的物品或服務(wù)。個性化推薦技術(shù)的核心在于“個性化”。在購物網(wǎng)站中,不同的用戶有不同的偏好和關(guān)注的領(lǐng)域,例如有的用戶經(jīng)常購買電子產(chǎn)品,而有的用戶則主要關(guān)注于化妝品等日用產(chǎn)品。如果向經(jīng)常購買的電子產(chǎn)品的用戶推薦其并不感興趣的化妝品產(chǎn)品,則往往不能得到用戶的采納,反之亦然。因此,推薦策略必須考慮到用戶的個體差異性,根據(jù)用戶的不同需求給出不同的推薦結(jié)果,從而最大化用戶采納該推薦的可能。協(xié)同過濾技術(shù)是目前實現(xiàn)個性化推薦的各項技術(shù)中應(yīng)用最為普遍、效果也最為明顯的一項技術(shù)。實現(xiàn)協(xié)同過濾的具體技術(shù)手段有多種,而基于用戶的協(xié)同過濾是其中較為直觀和易于理解的一種。基于用戶的協(xié)同過濾首先通過用戶的評分記錄來計算每兩個用戶之間的相似程度,當(dāng)對一個目標(biāo)用戶進(jìn)行個性化推薦時,會從全部用戶群體中選出與目標(biāo)用戶興趣相似的用戶,進(jìn)而利用這些用戶所喜歡的商品為目標(biāo)用戶提供個性化的商品推薦。一個典型的例子是關(guān)聯(lián)商品推薦,例如當(dāng)用戶在瀏覽某一個商品時,購物網(wǎng)站往往會提示“購買該商品的用戶也喜歡如下這些商品”,這是基于用戶的協(xié)同過濾技術(shù)的一種重要表現(xiàn)形式。除基于用戶的協(xié)同過濾之外,還有基于物品的協(xié)同過濾和基于模型的協(xié)同過濾。不管是哪種協(xié)同過濾技術(shù),其最重要的特征均為利用整個用戶群體的行為信息進(jìn)行整體的分析和建模,并最終為目標(biāo)用戶給出合理的推薦結(jié)果。然而,目前基于矩陣分解的協(xié)同過濾算法在精度和算法效率兩方面存在不足。
技術(shù)實現(xiàn)要素:針對目前基于矩陣分解的協(xié)同過濾算法的不足,本發(fā)明提出了一種基于塊對角矩陣的推薦方法和推薦系統(tǒng)來提高預(yù)測和推薦的精度與效率。根據(jù)本發(fā)明的一個方面,本發(fā)明提出了一種基于塊對角矩陣的推薦方法,包括:步驟S1:對用戶行為日志進(jìn)行預(yù)處理;步驟S2:將預(yù)處理的結(jié)果轉(zhuǎn)換為迭代雙邊塊對角矩陣;步驟S3:由所述迭代雙邊塊對角矩陣構(gòu)建對角塊矩陣;以及步驟S4:利用所述對角塊矩陣進(jìn)行評分預(yù)測。在上述推薦方法中,所述步驟S1包括:對所述用戶行為日志進(jìn)行編碼轉(zhuǎn)換;根據(jù)編碼轉(zhuǎn)換的結(jié)果構(gòu)建用戶物品評分矩陣;以及根據(jù)所述用戶物品評分矩陣構(gòu)建對應(yīng)的用戶物品評分二部圖。在上述推薦方法中,所述步驟S2包括:步驟S2.1:將所述用戶物品評分矩陣設(shè)為當(dāng)前迭代雙邊塊對角矩陣;步驟S2.2:計算當(dāng)前迭代雙邊塊對角矩陣的各對角塊的平均密度,如果達(dá)到或超過預(yù)設(shè)的最小平均塊密度則所述步驟S2結(jié)束并返回當(dāng)前結(jié)果,如果未達(dá)到所述最小平均塊密度則進(jìn)行到步驟S2.3;步驟S2.3:計算各對角塊的面積,按照面積由大到小進(jìn)行排序,并設(shè)定所有對角塊的標(biāo)記為0;步驟S2.4:判斷是否還存在標(biāo)記為0的對角塊,如果不存在,則步驟S2結(jié)束并返回當(dāng)前結(jié)果;如果存在,則進(jìn)行到步驟S2.5;步驟S2.5:在標(biāo)記為0的對角塊中選取面積最大的對角塊,將其標(biāo)記改為1,并進(jìn)行分割以構(gòu)建兩個新對角塊;步驟S2.6:檢查分割后的所述新對角塊的平均密度與分割前相比是否有所提升,如果沒有提升,則返回執(zhí)行步驟S2.4;如果有提升,則進(jìn)行到步驟S2.7;步驟S2.7:采納并保留所述步驟S2.5中的分割,并返回執(zhí)行所述步驟S2.2。在上述推薦方法中,所述步驟S2.5包括:步驟S2.5.1:構(gòu)建所述面積最大的對角塊的二部圖,尋找包含盡可能少的點的點集合,去掉所述點集合以分割所構(gòu)建的二部圖;步驟S2.5.2:在所述分割的基礎(chǔ)上,將對角塊子矩陣中相應(yīng)于所述點集合中的行節(jié)點的那些行移動到矩陣的下部,同時將對角塊子矩陣中相應(yīng)于所述點集合中的列節(jié)點的那些列移動到矩陣的右部;步驟S2.5.3:將子矩陣中剩下的行和列按照所述分割結(jié)果中的兩個子圖所對應(yīng)的節(jié)點排列為所述兩個新對角塊。在上述推薦方法中,所述步驟S3包括:對于所述迭代雙邊塊對角矩陣中的每一個對角塊,將所述每一個對角塊與其下方的邊、右方的邊以及這些邊的交叉部分拼合起來,構(gòu)建新子矩陣,將所述新子矩陣作為將要轉(zhuǎn)化成為的對角塊矩陣中的一個對角塊;當(dāng)所述用戶物品評分矩陣中的所述每一個對角塊都構(gòu)建成為一個新子矩陣,并放到目標(biāo)塊對角矩陣的相應(yīng)位置時,完成目標(biāo)對角塊矩陣的構(gòu)建。在上述推薦方法中,所述步驟S4包括:對所述對角塊矩陣的每一個對角塊進(jìn)行分解;根據(jù)分解結(jié)果對所述對角塊矩陣中的零塊進(jìn)行預(yù)測;將所述用戶物品評分矩陣與所述對角塊矩陣中重復(fù)的子矩陣的預(yù)測結(jié)果進(jìn)行平均,作為所述用戶物品評分矩陣中相應(yīng)子矩陣的最終預(yù)測結(jié)果。優(yōu)選地,采用矩陣奇異值分解或非負(fù)矩陣分解來對所述對角塊矩陣的每一個對角塊進(jìn)行分解。優(yōu)選地,對所述對角塊矩陣的每一個對角塊進(jìn)行分解使用并行化方法同時進(jìn)行。根據(jù)本發(fā)明的另一方面,本發(fā)明提出了一種基于塊對角矩陣的推薦裝置,包括:預(yù)處理模塊,對用戶行為日志進(jìn)行預(yù)處理;矩陣轉(zhuǎn)換模塊,將預(yù)處理的結(jié)果轉(zhuǎn)換為迭代雙邊塊對角矩陣;矩陣構(gòu)建模塊,由所述迭代雙邊塊對角矩陣構(gòu)建對角塊矩陣;以及評分預(yù)測模塊,利用所述對角塊矩陣進(jìn)行評分預(yù)測。附圖說明通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點,附圖是示例性的而不應(yīng)理解為對本發(fā)明進(jìn)行任何限制,在附圖中:圖1示出了根據(jù)本發(fā)明實施例的基于塊對角矩陣的推薦方法的流程圖;圖2示出了根據(jù)本發(fā)明實施例的典型的用戶物品打分矩陣示例;圖3示出了圖2中的用戶物品打分矩陣所對應(yīng)的二部圖;圖4示出了根據(jù)本發(fā)明實施例的將預(yù)處理的結(jié)果轉(zhuǎn)換為迭代雙邊塊對角矩陣的方法的流程圖;圖5示出了根據(jù)本發(fā)明實施例在圖3的二部圖中進(jìn)行基于點割集的圖分割的示例;圖6A示出了根據(jù)本發(fā)明實施例構(gòu)建的迭代雙邊塊對角矩陣的示例;圖6B示出了利用圖6A中的結(jié)果拼合構(gòu)建得到的對角塊矩陣;以及圖7示出了根據(jù)本發(fā)明實施例的基于塊對角矩陣的推薦裝置的示意圖。具體實施方式下面將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)描述,應(yīng)當(dāng)注意,實施例是示例性的而非限制性的。圖1示出了根據(jù)本發(fā)明實施例的基于塊對角矩陣的推薦方法的流程圖。如圖1所示,基于塊對角矩陣的推薦方法包括如下步驟:步驟S1:對用戶行為日志進(jìn)行預(yù)處理;步驟S2:將預(yù)處理的結(jié)果轉(zhuǎn)換為迭代雙邊塊對角矩陣;步驟S3:由迭代雙邊塊對角矩陣構(gòu)建對角塊矩陣;以及步驟S4:利用對角塊矩陣進(jìn)行評分預(yù)測。以下分別對圖1中的4個步驟進(jìn)行進(jìn)一步地詳細(xì)描述。(一)步驟S1評分預(yù)測和個性化推薦所依據(jù)的數(shù)據(jù)集合是購物網(wǎng)站、社交網(wǎng)站等網(wǎng)絡(luò)應(yīng)用的用戶行為日志,即用戶在網(wǎng)站中的交互行為。用戶行為日志一般包括顯式用戶反饋和隱式用戶反饋兩種。顯式用戶反饋記錄了用戶在網(wǎng)站中明確可見的評分、評論等數(shù)據(jù),而隱式用戶反饋日志則記錄用戶在瀏覽過程中所產(chǎn)生的其它用戶不可見的信息,如用戶瀏覽、收藏、購買等行為記錄。對于某個網(wǎng)站的用戶行為日志而言,它至少應(yīng)包括如下內(nèi)容才能用于評分預(yù)測和個性化推薦。表1供評分預(yù)測和個性化推薦的用戶行為日志所應(yīng)包含的內(nèi)容一般網(wǎng)絡(luò)購物、搜索引擎、社交網(wǎng)站等網(wǎng)絡(luò)應(yīng)用提供商都可以很容易的通過網(wǎng)絡(luò)服務(wù)器得到以上信息,從而保證了本方法的可行性。步驟S1具體包括:步驟S1.1:進(jìn)行用戶日志編碼轉(zhuǎn)換,將服務(wù)器記錄的編碼格式轉(zhuǎn)換成國家標(biāo)準(zhǔn)漢字編碼的GBK格式,并將用戶名和商品名數(shù)字化,轉(zhuǎn)化為UserID和ItemID;步驟S1.2:利用表1中列出的內(nèi)容項對用戶日志進(jìn)行整理,去除表1內(nèi)容項之外的信息,并將結(jié)果構(gòu)建為用戶物品的評分矩陣X。如圖2所示,該評分矩陣的每一行對應(yīng)一個用戶i,每一列對應(yīng)一個商品j,該評分矩陣中的每一個非零值Xij表示用戶i在商品j上的顯式或隱式評分,而每一個零值則表示對應(yīng)的用戶沒有在對應(yīng)的商品上評分;步驟S1.3:為步驟S1.2中所構(gòu)建的用戶物品評分矩陣X構(gòu)建對應(yīng)的用戶物品評分二部圖G。構(gòu)建方法為將矩陣的每一行i映射為一個用戶節(jié)點Ri,每一列j映射為一個物品節(jié)點Cj,如果矩陣中某用戶i對某物品j評了分,則將對應(yīng)的用戶節(jié)點Ri和物品節(jié)點Cj用一條無向邊相連接,最終構(gòu)建了用戶到物品的二部圖G,如圖3所示。在圖3中,左邊的每一個R節(jié)點對應(yīng)于矩陣中的一行(Row),右邊的每一個C節(jié)點對應(yīng)于矩陣中的一列(Column)。矩陣中每一條由R節(jié)點連向C節(jié)點的邊表示矩陣中所對應(yīng)的非零值。用戶物品評分二部圖是用戶物品評分矩陣的等價表示。經(jīng)過數(shù)據(jù)預(yù)處理過程,可以得到用戶物品評分矩陣X和二部圖G,接下來利用這兩種結(jié)構(gòu)來實現(xiàn)對用戶評分矩陣的預(yù)測。(二)步驟S2用戶評分矩陣X的迭代雙邊塊對角化是利用在其對應(yīng)的二部圖G上進(jìn)行圖分割的結(jié)果實現(xiàn)的,該過程需要以“最小平均塊密度ρ”為參數(shù)進(jìn)行控制,該參數(shù)為算法執(zhí)行前預(yù)先指定的參數(shù),它應(yīng)當(dāng)是小于1而大于用戶評分矩陣X的密度的實數(shù),其中矩陣密度定義為該矩陣所包含的非零值的個數(shù)除以其面積(即矩陣的行數(shù)乘以列數(shù)的值)。圖4中示出了步驟S2的具體流程圖,步驟S2具體包括如下子步驟:步驟S2.1:將用戶評分矩陣X設(shè)為當(dāng)前的迭代雙邊塊對角矩陣,可以將用戶評分矩陣X看做是只包含一個對角塊的對角矩陣。步驟S2.2:對于當(dāng)前的迭代雙邊塊對角矩陣Y(初始即為用戶評分矩陣X),計算其各個對角塊D1、D2、…、Dk的平均密度(亦即它們的非零值個數(shù)之和除以它們的面積之和),如果其平均密度已經(jīng)達(dá)到或超過了“最小平均塊密度ρ”(在這里,最小平均塊密度ρ是小于1且大于用戶評分矩陣X的密度的實數(shù)),則步驟S2結(jié)束并返回當(dāng)前的迭代雙邊塊對角矩陣作為最終結(jié)果;如果尚未達(dá)到該密度,則進(jìn)行到步驟S2.3。步驟S2.3:對于當(dāng)前矩陣中的各個對角塊子矩陣Di,計算每一個對角塊的面積,按照面積由大到小的順序進(jìn)行排序,并設(shè)定所有對角塊的標(biāo)記為0。假設(shè)當(dāng)前矩陣中共有k個對角塊,排序后的對角塊表示為Ds1、Ds2、…、Dsk。步驟S2.4:判斷是否還存在標(biāo)記為0的對角塊,如果不存在,則步驟S2結(jié)束并返回當(dāng)前的迭代雙邊塊對角矩陣作為最終結(jié)果;如果存在,則進(jìn)行到步驟S2.5。步驟S2.5:在標(biāo)記為0的對角塊中選取面積最大的對角塊Dsi,將其標(biāo)記改為1,進(jìn)行分割以構(gòu)建兩個新對角塊。步驟S2.5具體包括如下步驟:步驟S2.5.1:對于所選取的面積最大的對角塊Dsi,構(gòu)建其對應(yīng)的二部圖Gi,進(jìn)而對Gi執(zhí)行基于點割集的圖分割。圖分割的目標(biāo)為在圖中尋找一個包含盡可能少的點的點集合,去掉這些點以及與這些點相關(guān)聯(lián)的邊,使得該圖剩下的部分被分割為兩個獨立的連通分支。如圖5中的示例,去掉一個點集合Vs,可以將整個二分圖分為兩個子圖,分別記為V1和V2。圖分割問題為圖論研究中的經(jīng)典問題,借助一些現(xiàn)有的軟件包(如METIS)可以很容易地完成這一目標(biāo)。步驟S2.5.2:在該圖分割的基礎(chǔ)上,將對角塊子矩陣中相應(yīng)于Vs中的行節(jié)點的那些行移動到矩陣的下部,同時將對角塊子矩陣中相應(yīng)于Vs中的列節(jié)點的那些列移動到矩陣的右部。步驟S2.5.3:將子矩陣中剩下的行和列按照圖分割結(jié)果中的兩個子圖所對應(yīng)的節(jié)點排列為兩個新的對角塊矩陣。步驟S2.6:檢查分割后的新的平均密度與分割前相比是否有所提升,如果沒有提升,則返回執(zhí)行步驟S2.4,;如果有提升,則進(jìn)行到步驟S2.7。步驟S2.7:采納并保留步驟S2.5中的分割,并返回執(zhí)行步驟S2.2。遞歸執(zhí)行步驟S2中的各個子步驟,直到得到最終結(jié)果。(三)步驟S3對于步驟S2中所構(gòu)建的迭代雙邊塊對角矩陣Y,將其轉(zhuǎn)化為一個對角塊矩陣Y’,使得原矩陣中的每一個對角塊對應(yīng)于新矩陣中一個新的對角塊,其構(gòu)建方法如圖6所示:對于原來的迭代雙邊塊對角矩陣中的每一個對角塊Di,將其與其下方的邊、右方的邊以及這些邊的交叉部分拼合起來,構(gòu)建一個新的子矩陣Di’,作為將要轉(zhuǎn)化成為的那個對角塊矩陣中的一個對角塊。當(dāng)原矩陣X中的每一個對角塊Di都構(gòu)建成為一個新的子矩陣Di’,并放到目標(biāo)塊對角矩陣的相應(yīng)位置時,目標(biāo)對角塊矩陣X’構(gòu)建完成。以圖6為例,相應(yīng)的構(gòu)建方法為:對于圖6A的原矩陣中的每一個對角塊(D11、D12和D2),這里以D11為例,提取它下方的矩陣塊(R11和R11)、它右方的矩陣塊(C11和C11)以及這些矩陣塊的交叉子塊(B1、R13、C13和B),拼合成為一個矩陣,成為新矩陣中的一個對角塊(如圖6B的矩陣中的第一個對角塊);同樣,使用相同的方法將D12和D2構(gòu)建成為圖6A的矩陣中的第二個和第三個對角塊。(四)步驟S4當(dāng)新的塊對角矩陣Y’構(gòu)建完成之后,利用這個新矩陣上的矩陣分解結(jié)果來對原矩陣X進(jìn)行評分預(yù)測,具體為如下步驟:步驟S4.1:使用現(xiàn)有的矩陣分解方法(如最常用的矩陣奇異值分解SVD或非負(fù)矩陣分解NMF等方法),對新矩陣Y’的每一個對角塊Di’進(jìn)行分解,假設(shè)分解結(jié)果為UiVi。由于新矩陣Y’中的每一個對角塊矩陣互不相關(guān),該步驟可以使用并行化方法同時進(jìn)行;步驟S4.2:利用如上的分解結(jié)果對Y’中的零塊進(jìn)行預(yù)測,預(yù)測方法為對于Y’中的某一個零塊Yij’,其預(yù)測矩陣為UiVj;步驟S4.3:原矩陣X中的一些子矩陣在新矩陣Y’中被重復(fù)了多次(例如圖6B中的矩陣塊B1被重復(fù)了兩次,而矩陣塊B被重復(fù)了三次),將這些重復(fù)的子矩陣的預(yù)測結(jié)果進(jìn)行平均,作為原矩陣X中相應(yīng)子矩陣的最終預(yù)測結(jié)果。完成以上各步驟后,就得到了對原始矩陣X的最終的評分預(yù)測,該預(yù)測矩陣將被用于協(xié)同過濾式的個性化推薦。一般而言,對于某一個用戶構(gòu)建其個性化推薦列表的方法為,將其之前未打過分的物品(也就是該用戶在矩陣中所對應(yīng)的那一行中值為零的那些物品),按照預(yù)測分值由高到低進(jìn)行排列,并取該列表的前N項(N的經(jīng)典取值為3或5),作為對于該用戶的個性化推薦列表。以圖2中的第一個用戶(矩陣中的第一行)為例,假設(shè)按照如上所述S1-S4這四個步驟順序執(zhí)行最終得到的評分預(yù)測矩陣的第一行是:[2.43.44.22.73.21.32.94.7X2.1X]其中X是用戶打過分的商品,那么對該用戶而言,其得到的推薦列表將會是{商品8,商品3,商品2},因為這是用戶未打過分的商品中預(yù)測打分最高的三個。圖7示出了根據(jù)本發(fā)明實施例的基于塊對角矩陣的推薦裝置的示意圖。如圖7所示,推薦裝置700包括預(yù)處理模塊701、矩陣轉(zhuǎn)換模塊702、矩陣構(gòu)建模塊703和評分預(yù)測模塊704構(gòu)成。預(yù)處理模塊701用于對用戶行為日志進(jìn)行預(yù)處理,矩陣轉(zhuǎn)換模塊702用于將預(yù)處理的結(jié)果轉(zhuǎn)換為迭代雙邊塊對角矩陣,矩陣構(gòu)建模塊703用于由所述迭代雙邊塊對角矩陣構(gòu)建對角塊矩陣,以及評分預(yù)測模塊704用于利用所述對角塊矩陣進(jìn)行評分預(yù)測。推薦裝置700可以由硬件、軟件或固件的形式來實現(xiàn),其中的四個模塊分別用于執(zhí)行上文中所述的基于塊對角矩陣的推薦方法的各個方法步驟。為了驗證本發(fā)明的有效性和可靠性,我們進(jìn)行了評分預(yù)測的相關(guān)實驗。在運行效率方面,我們將該方法應(yīng)用在目前規(guī)模最大的Yahoo!Music數(shù)據(jù)集上進(jìn)行評測,程序運行硬件環(huán)境為8核3.1G主頻CPU、64G內(nèi)存。由于實驗環(huán)境包含8個核,我們通過調(diào)整算法中的“最小平均塊密度ρ”這個指標(biāo),將對應(yīng)的原始評分矩陣調(diào)整為含有8個對角塊的迭代雙邊塊對角結(jié)構(gòu)Y,并從中構(gòu)建出含有8個對角塊的對角陣Y’,進(jìn)而使用8個線程并行地對這8個對角塊進(jìn)行分解,最終使用如上步驟4中的方法實現(xiàn)對整個原始矩陣的評分預(yù)測,當(dāng)使用SVD算法作為具體的矩陣分解算法應(yīng)用于該發(fā)明的框架時,如上過程所消耗的時間為1.21小時,而在原始矩陣上直接運行SVD算法所需要的時間為6.22小時,亦即使用該發(fā)明的方法使算法效率提高了5.14倍;同樣,當(dāng)使用NMF算法作為矩陣分解的基本算法時,在本發(fā)明的框架下,算法運行時間為1.05小時,而直接在原始矩陣上運行NMF算法時間為4.87小時,算法效率提高了4.64倍。在預(yù)測精度方面,我們以“根均方差(RMSE)”這一協(xié)同過濾預(yù)測的常用指標(biāo)來評測基于塊對角陣的協(xié)同過濾的預(yù)測精度,并將其與傳統(tǒng)的、基于整體矩陣的協(xié)同過濾預(yù)測做比較。測試結(jié)果表明,將該發(fā)明應(yīng)用于SVD、NMF、PMF和MMMF這四種常見的矩陣分解算法時,在被測的四個數(shù)據(jù)集上預(yù)測精度都有明顯的提升,在最常用的MovieLens-100K數(shù)據(jù)集上,預(yù)測精度提升可以達(dá)到0.01以上(對應(yīng)的評分?jǐn)?shù)值區(qū)間為1~5);在目前學(xué)術(shù)界和產(chǎn)業(yè)界規(guī)模最大的Yahoo!Music數(shù)據(jù)集上,預(yù)測精度的提升可以達(dá)到0.2以上(對應(yīng)的評分?jǐn)?shù)值區(qū)間為1~100),其提升幅度均高于目前世界領(lǐng)先的方法。具體而言,該發(fā)明應(yīng)用于如上四種矩陣分解方法上時,在四個不同的測試集上的預(yù)測精度如下表所示,其中的SVD、NMF、PMF和MMMF是被選做用于該發(fā)明框架中進(jìn)行測試的算法,而MovieLens-100K、MovieLens-1M、DianPing和Yahoo!Music是被選擇用來測試的標(biāo)準(zhǔn)數(shù)據(jù)集。Baseline表示在不使用我們的發(fā)明的情況下,直接在對應(yīng)的數(shù)據(jù)集下使用對應(yīng)的算法所得到的預(yù)測精度,而LMF表示在我們的發(fā)明的框架下進(jìn)行評分預(yù)測的預(yù)測精度。表2四個不同的測試集上的預(yù)測精度實驗結(jié)果表明,本發(fā)明幾乎在每個數(shù)據(jù)集和算法下,都能使算法的預(yù)測精度得到相應(yīng)的提升;特別地,在DianPing和Yahoo!Music等數(shù)據(jù)集下,預(yù)測精度的提升可以達(dá)到0.01和0.2以上,對協(xié)同過濾式推薦算法的預(yù)測精度有明顯的提升作用。本發(fā)明設(shè)計了基于矩陣的塊對角形式的協(xié)同過濾算法框架,可以很容易地將目前學(xué)術(shù)界和產(chǎn)業(yè)界常用的奇異值分解等矩陣分解算法融入到該框架中,一方面可以利用并行化策略大大提高矩陣分解算法的運行效率,另一方面也可以提高協(xié)同過濾式預(yù)測算法的預(yù)測精度,從而達(dá)到又快又好的效果。在四個基本算法和四個常用測試集上的實驗結(jié)果均表明了該發(fā)明的有效性、穩(wěn)定性和可靠性,具有很好的應(yīng)用前景。雖然結(jié)合附圖描述了本發(fā)明的實施例,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下作出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。