專利名稱:基于協(xié)同過濾的處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種基于協(xié)同過濾的處理方法和系統(tǒng)。
背景技術(shù):
互聯(lián)網(wǎng)上的信息資源呈指數(shù)膨脹帶來了所謂的“信息過載”和“信息迷向”問題,即人們很難找到自己感興趣的信息,即使找到了一些,也經(jīng)?;煊泻芏唷霸胍簟?。因此出現(xiàn)了面向互聯(lián)網(wǎng)的信息檢索、信息過濾和協(xié)同過濾等技術(shù)。但信息檢索不具有智能性,不能學(xué)習(xí)用戶的興趣,尤其是對具有特定專業(yè)興趣的用戶,輸入相同的關(guān)鍵詞只能得到相同的檢索結(jié)果。信息過濾不能對同一主題的過濾結(jié)果區(qū)分質(zhì)量好壞,并且隨著信息資源的劇增,更有效的過濾需要結(jié)合人們的質(zhì)量評價信息?;谠摲N需求,出現(xiàn)了推薦系統(tǒng),推薦系統(tǒng)是為解決信息過載問題而提出的一種智能代理系統(tǒng),能從大量信息中向用戶自動推薦出符合其興趣偏好或需求的資源。隨著互聯(lián)網(wǎng)的普及和飛速發(fā)展,推薦系統(tǒng)已經(jīng)被廣泛應(yīng)用于各種領(lǐng)域,尤其在電子商務(wù)領(lǐng)域,推薦系統(tǒng)得到了越來越多的研究和應(yīng)用。目前,幾乎所有的大型電子商務(wù)網(wǎng)站都不同程度的使用了各種形式的推薦系統(tǒng),比如Amazon、CDNOff> eBay和當(dāng)當(dāng)網(wǎng)上書店等。其中,協(xié)同過濾技術(shù)在當(dāng)前推薦系統(tǒng)的應(yīng)用中獲得了較大的成功。協(xié)同過濾是一類推薦算法。協(xié)同過濾考慮了用戶的評價信息。協(xié)同過濾分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統(tǒng)對該指定用戶對此信息的喜好程度的預(yù)測。主要分為基于用戶的協(xié)同過濾(User based)和基于商品的(Item based)兩種。例如基于用戶的協(xié)同過濾算法,它的基本思想是如果要為一個用戶推薦其沒有的商品,首先計算其它用戶和這個用戶的喜好的相似程度,然后從與其喜好最相似的若干用戶中找到這個用戶沒有的商品進(jìn)行推薦。基于項目的協(xié)同過濾原理類似。在互聯(lián)網(wǎng)環(huán)境下,用戶和商品都是海量數(shù)據(jù),同時由于實效性對算法有一定的時間要求,而現(xiàn)有技術(shù)中對于協(xié)同過濾的計算基本上是在一個計算服務(wù)器上進(jìn)行,當(dāng)遭遇超大量的用戶,比如百萬數(shù)量級的時候,其各種矩陣的數(shù)據(jù)也非常龐大,采用單服務(wù)器計算則時效太慢,并且對于硬件的要求比較高。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于協(xié)同過濾的處理系統(tǒng)和相應(yīng)的一種基于協(xié)同過濾的處理方法。依據(jù)本發(fā)明的一個方面,提供了一種基于協(xié)同過濾的處理方法,包括接收針對主體推薦至少一個項目的請求,根據(jù)所述請求啟動至少兩個計算服務(wù)器進(jìn)行推薦計算過程,所述過程包括針對至少兩個計算服務(wù)器,每個參與計算的計算服務(wù)器獲取各種分塊矩陣數(shù)據(jù);所述各分塊矩陣數(shù)據(jù)包括主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù);
每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量;每個參與計算的計算服務(wù)器將所述被依賴的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量;每個參與計算的計算服務(wù)器針對本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)中的每個主體,利用本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、本地的協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù)和接收到的分量之間的對應(yīng)關(guān)系,將至少一個項目推薦給所述主體;其中,所述各計算服務(wù)器之間通過調(diào)用訊息傳遞接口發(fā)送和接收數(shù)據(jù)??蛇x的,所述每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量,包括每個參與計算的計算服務(wù)器獲取其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識;每個參與計算的計算服務(wù)器根據(jù)本地的協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。依據(jù)本發(fā)明的另外一個方面,提供了一種基于協(xié)同過濾的處理系統(tǒng),包括請求接收模塊和至少兩個計算服務(wù)器;所述請求接收模塊,適于接收針對主體推薦至少一個項目的請求,根據(jù)所述請求啟動至少兩個計算服務(wù)器;至少兩個計算服務(wù)器中每個所述計算服務(wù)器包括分塊矩陣數(shù)據(jù)獲取模塊,適于每個參與計算的計算服務(wù)器獲取各種分塊矩陣數(shù)據(jù);所述各分塊矩陣數(shù)據(jù)包括主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù);依賴計算服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量;分量發(fā)送接收模塊,適于每個參與計算的計算服務(wù)器將所述被依賴的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量;推薦項目計算模塊,適于每個參與計算的計算服務(wù)器針對本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)中的每個主體,利用本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、本地的協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù)和接收到的分量之間的對應(yīng)關(guān)系,將至少一個項目推薦給所述主體;所述各計算服務(wù)器之間通過調(diào)用訊息傳遞接口發(fā)送和接收數(shù)據(jù)??蛇x的,所述依賴計算服務(wù)器確認(rèn)模塊包括分量標(biāo)識獲取模塊,適于每個參與計算的計算服務(wù)器獲取其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識;
第一依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),和/或主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識??蛇x的,還包括標(biāo)識發(fā)送模塊,適于每個參與計算的計算服務(wù)器將所依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識,發(fā)送給當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器;進(jìn)一步的,所述分量發(fā)送接收模塊包括第一分量發(fā)送接收模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述被依賴的分量標(biāo)識,將所述相應(yīng)的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量。可選的,所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣;所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的用戶標(biāo)識相似矩陣;進(jìn)一步的,所述分量包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣的分量進(jìn)和用戶標(biāo)識-權(quán)重均值矩陣分量??蛇x的,所述第一依賴服務(wù)器確認(rèn)模塊包括剪枝模塊,適于每個參與計算的計算服務(wù)器針對所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)進(jìn)行剪枝計算;第二依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述剪枝后的所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù),以及所述其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識??蛇x的,所述剪枝模塊包括第一剪枝模塊,適于針對用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)中每行或每列矩陣數(shù)據(jù)的每個維度,將每個維度的值進(jìn)行排序,保留每行或每列中排序靠前的至少一個維度??蛇x的,所述第二依賴服務(wù)器確認(rèn)模塊包括第一行/列分量標(biāo)識轉(zhuǎn)置模塊,適于每個參與計算的計算服務(wù)器將用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置;第一行/列分量標(biāo)識對齊模塊,適于將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識相似矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊;第一保留模塊,適于針對當(dāng)前各行或者各列保留的維度,標(biāo)記對應(yīng)保留維度的行分量標(biāo)識或者列分量標(biāo)識;第一判斷模塊,適于根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較,判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識;
第三依賴服務(wù)器確認(rèn)模塊,適于根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識??蛇x的,所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣;所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的項目-項目相似矩陣;進(jìn)一步的,所述分量包括項目-項目相似矩陣的分量??蛇x的,所述依賴服務(wù)器確認(rèn)模塊包括第一候選推薦集計算模塊,適于每個參與計算的計算服務(wù)器根據(jù)用戶標(biāo)識-項目主體-項目權(quán)重矩陣計算候選推薦集;第四依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述候選推薦集、項目-項目相似矩陣的分塊矩陣數(shù)據(jù)和用戶標(biāo)識-項目主體-項目權(quán)重矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識??蛇x的,所述第四依賴服務(wù)器確認(rèn)模塊包括第二行/列分量標(biāo)識轉(zhuǎn)置模塊,適于每個參與計算的計算服務(wù)器將所述項目-項目相似矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置;第二行/列分量標(biāo)識對齊模塊,適于將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識-項目主體-項目權(quán)重矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊;第二判斷模塊,適于根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較,判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識;第五依賴服務(wù)器確認(rèn)模塊,適于根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識。根據(jù)本發(fā)明的一種基于協(xié)同過濾的處理方法可以利用多個計算節(jié)點并行的進(jìn)行協(xié)同過濾的推薦計算,由此解決了現(xiàn)有技術(shù)針對龐大的矩陣數(shù)據(jù)計算時效慢,并且對于硬件的要求比較高的問題,高取得了針對需要快速計算推薦項目的需求,可快速針對龐大的矩陣數(shù)據(jù)計算推薦項目,并且可降低計算系統(tǒng)對硬件的要求,可從整體上降低硬件成本的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中
圖1不出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理方法實施例一的流程示意圖;圖2不出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理方法實施例二的流程示意圖;圖3示出了根據(jù)本發(fā)明一個實施例的User based計算原理的矩陣對照示意圖;圖4示出了根據(jù)本發(fā)明一個實施例的User based計算原理的兩個計算服務(wù)器矩陣對照示例;圖5不出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理方法實施例三的流程示意圖;圖6示出了根據(jù)本發(fā)明一個實施例的Item based的計算原理示意圖;圖7不出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理系統(tǒng)實施例一的結(jié)構(gòu)示意圖;圖8示出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理系統(tǒng)實施例二的結(jié)構(gòu)示意圖;以及圖9示出了根據(jù)本發(fā)明一個實施例的一種基于協(xié)同過濾的處理系統(tǒng)實施例三的結(jié)構(gòu)示意圖。
具體實施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參照圖1,其示出了本發(fā)明一種基于協(xié)同過濾的處理方法實施例一的流程示意圖,具體可以包括步驟100,接收針對主體推薦至少一個項目的請求,根據(jù)所述請求啟動至少兩個計算服務(wù)器進(jìn)行推薦計算過程;在本發(fā)明實施例中,所述主體可比如網(wǎng)絡(luò)中的用戶標(biāo)識,那么對于用戶標(biāo)識在網(wǎng)絡(luò)中使用過的或者未使用過的各種項目,系統(tǒng)或者用戶則可請求針對各個用戶標(biāo)識推薦某個或者某幾個項目,比如針對在網(wǎng)絡(luò)中購買的產(chǎn)品,向用戶推薦相關(guān)產(chǎn)品。那么所述至少兩個計算服務(wù)器進(jìn)行推薦計算過程包括步驟110,針對至少兩個計算服務(wù)器,每個參與計算的計算服務(wù)器獲取各種分塊矩陣數(shù)據(jù);所述各分塊矩陣數(shù)據(jù)包括主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù);在本發(fā)明中,對于所述主體-項目權(quán)重矩陣,可為用戶標(biāo)識-項目的評分矩陣,比如表一:
權(quán)利要求
1.一種基于協(xié)同過濾的處理方法,包括接收針對主體推薦至少一個項目的請求,根據(jù)所述請求啟動至少兩個計算服務(wù)器進(jìn)行推薦計算過程,所述過程包括針對至少兩個計算服務(wù)器,每個參與計算的計算服務(wù)器獲取各種分塊矩陣數(shù)據(jù);所述各分塊矩陣數(shù)據(jù)包括主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù);每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量;每個參與計算的計算服務(wù)器將所述被依賴的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量;每個參與計算的計算服務(wù)器針對本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)中的每個主體,利用本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、本地的協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù)和接收到的分量之間的對應(yīng)關(guān)系,將至少一個項目推薦給所述主體;其中,所述各計算服務(wù)器之間通過調(diào)用訊息傳遞接口發(fā)送和接收數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,所述每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量,包括每個參與計算的計算服務(wù)器獲取其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識;每個參與計算的計算服務(wù)器根據(jù)本地的協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
3.如權(quán)利要求2所述的方法,還包括每個參與計算的計算服務(wù)器將所依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識,發(fā)送給當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器;進(jìn)一步的,每個參與計算的計算服務(wù)器將所述被依賴的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量包括所述每個計算服務(wù)器根據(jù)所述被依賴的分量標(biāo)識,將所述相應(yīng)的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量。
4.如權(quán)利要求3所述的方法,所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣;所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的用戶標(biāo)識相似矩陣;進(jìn)一步的,所述分量包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣的分量進(jìn)和用戶標(biāo)識-權(quán)重均值矩陣分量。
5.如權(quán)利要求4所述的方法,所述每個參與計算的計算服務(wù)器根據(jù)本地的協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識包括 每個參與計算的計算服務(wù)器針對所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)進(jìn)行剪枝計算; 每個參與計算的計算服務(wù)器根據(jù)所述剪枝后的所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù),以及所述其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
6.如權(quán)利要求5所述的方法,所述每個參與計算的計算服務(wù)器針對所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)進(jìn)行剪枝計算包括 針對用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)中每行或每列矩陣數(shù)據(jù)的每個維度,將每個維度的值進(jìn)行排序,保留每行或每列中排序靠前的至少一個維度。
7.如權(quán)利要求6所述的方法,所述每個參與計算的計算服務(wù)器根據(jù)所述剪枝后的所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù),以及所述其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識包括 每個參與計算的計算服務(wù)器將用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置; 將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識相似矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊; 針對當(dāng)前各行或者各列保留的維度,標(biāo)記對應(yīng)保留維度的行分量標(biāo)識或者列分量標(biāo)識; 根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較,判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識; 根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識。
8.如權(quán)利要求3所述的方法,所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣; 所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的項目-項目相似矩陣; 進(jìn)一步的,所述分量包括項目-項目相似矩陣的分量。
9.如權(quán)利要求8所述的方法,所述每個參與計算的計算服務(wù)器根據(jù)本地的協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識包括 每個參與計算的計算服務(wù)器根據(jù)用戶標(biāo)識-項目主體-項目權(quán)重矩陣計算候選推薦集;每個參與計算的計算服務(wù)器根據(jù)所述候選推薦集、項目-項目相似矩陣的分塊矩陣數(shù)據(jù)和用戶標(biāo)識-項目主體-項目權(quán)重矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
10.如權(quán)利要求9所述的方法,所述每個參與計算的計算服務(wù)器根據(jù)所述候選推薦集、 項目-項目相似矩陣的分塊矩陣數(shù)據(jù)和用戶標(biāo)識-項目主體-項目權(quán)重矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識包括每個參與計算的計算服務(wù)器將所述項目-項目相似矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置;將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識-項目主體-項目權(quán)重矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊;根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較, 判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識;根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識。
11.一種基于協(xié)同過濾的處理系統(tǒng),包括請求接收模塊和至少兩個計算服務(wù)器;所述請求接收模塊,適于接收針對主體推薦至少一個項目的請求,根據(jù)所述請求啟動至少兩個計算服務(wù)器;至少兩個計算服務(wù)器中每個所述計算服務(wù)器包括分塊矩陣數(shù)據(jù)獲取模塊,適于每個參與計算的計算服務(wù)器獲取各種分塊矩陣數(shù)據(jù);所述各分塊矩陣數(shù)據(jù)包括主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù);依賴計算服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述主體-項目權(quán)重矩陣、和協(xié)同過濾矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各個服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量;分量發(fā)送接收模塊,適于每個參與計算的計算服務(wù)器將所述被依賴的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量;推薦項目計算模塊,適于每個參與計算的計算服務(wù)器針對本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)中的每個主體,利用本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、本地的協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù)和接收到的分量之間的對應(yīng)關(guān)系,將至少一個項目推薦給所述主體;所述各計算服務(wù)器之間通過調(diào)用訊息傳遞接口發(fā)送和接收數(shù)據(jù)。
12.如權(quán)利要求11所述的系統(tǒng),所述依賴計算服務(wù)器確認(rèn)模塊包括分量標(biāo)識獲取模塊,適于每個參與計算的計算服務(wù)器獲取其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識;第一依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述協(xié)同過濾距離矩陣中的分塊矩陣數(shù)據(jù),和/或主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù),和其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
13.如權(quán)利要求12所述的系統(tǒng),還包括 標(biāo)識發(fā)送模塊,適于每個參與計算的計算服務(wù)器將所依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識,發(fā)送給當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器; 進(jìn)一步的,所述分量發(fā)送接收模塊包括 第一分量發(fā)送接收模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述被依賴的分量標(biāo)識,將所述相應(yīng)的分量發(fā)送給依賴該分量各計算服務(wù)器;并接收各計算服務(wù)器發(fā)送的分量。
14.如權(quán)利要求13所述的系統(tǒng), 所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣; 所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的用戶標(biāo)識相似矩陣; 進(jìn)一步的,所述分量包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣的分量進(jìn)和用戶標(biāo)識-權(quán)重均值矩陣分量。
15.如權(quán)利要求14所述的系統(tǒng),所述第一依賴服務(wù)器確認(rèn)模塊包括 剪枝模塊,適于每個參與計算的計算服務(wù)器針對所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)進(jìn)行剪枝計算; 第二依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述剪枝后的所述用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù),以及所述其他所有計算服務(wù)器處理的各分塊矩陣數(shù)據(jù)中分量標(biāo)識,確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
16.如權(quán)利要求15所述的裝置,所述剪枝模塊包括 第一剪枝模塊,適于針對用戶標(biāo)識相似矩陣中的分塊矩陣數(shù)據(jù)中每行或每列矩陣數(shù)據(jù)的每個維度,將每個維度的值進(jìn)行排序,保留每行或每列中排序靠前的至少一個維度。
17.如權(quán)利要求16所述的系統(tǒng),所述第二依賴服務(wù)器確認(rèn)模塊包括 第一行/列分量標(biāo)識轉(zhuǎn)置模塊,適于每個參與計算的計算服務(wù)器將用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置; 第一行/列分量標(biāo)識對齊模塊,適于將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識相似矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊; 第一保留模塊,適于針對當(dāng)前各行或者各列保留的維度,標(biāo)記對應(yīng)保留維度的行分量標(biāo)識或者列分量標(biāo)識; 第一判斷模塊,適于根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較,判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識; 第三依賴服務(wù)器確認(rèn)模塊,適于根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識。
18.如權(quán)利要求13所述的系統(tǒng),其特征在于, 所述主體-項目權(quán)重矩陣包括用戶標(biāo)識-項目主體-項目權(quán)重矩陣; 所述協(xié)同過濾矩陣為對應(yīng)用戶標(biāo)識-項目主體-項目權(quán)重矩陣的項目-項目相似矩陣; 進(jìn)一步的,所述分量包括項目-項目相似矩陣的分量。
19.如權(quán)利要求18所述的系統(tǒng),所述依賴服務(wù)器確認(rèn)模塊包括 第一候選推薦集計算模塊,適于每個參與計算的計算服務(wù)器根據(jù)用戶標(biāo)識-項目主體-項目權(quán)重矩陣計算候選推薦集; 第四依賴服務(wù)器確認(rèn)模塊,適于每個參與計算的計算服務(wù)器根據(jù)所述候選推薦集、項目-項目相似矩陣的分塊矩陣數(shù)據(jù)和用戶標(biāo)識-項目主體-項目權(quán)重矩陣確認(rèn)當(dāng)前計算服務(wù)器依賴的各計算服務(wù)器,以及所述依賴的各計算服務(wù)器中的各分塊矩陣數(shù)據(jù)的分量標(biāo)識。
20.如權(quán)利要求19所述的系統(tǒng),所述第四依賴服務(wù)器確認(rèn)模塊包括 第二行/列分量標(biāo)識轉(zhuǎn)置模塊,適于每個參與計算的計算服務(wù)器將所述項目-項目相似矩陣的各分量標(biāo)識進(jìn)行行分量標(biāo)識或列分量標(biāo)識轉(zhuǎn)置; 第二行/列分量標(biāo)識對齊模塊,適于將由行分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述用戶標(biāo)識-項目主體-項目權(quán)重矩陣的列分量標(biāo)識對齊,或者將由列分量標(biāo)識轉(zhuǎn)置后得到的結(jié)果與所述協(xié)用戶標(biāo)識相似矩陣的行分量標(biāo)識對齊; 第二判斷模塊,適于根據(jù)所述標(biāo)記的行分量標(biāo)識或列分量標(biāo)識,與本地獲取的用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分塊矩陣數(shù)據(jù)中的行分量標(biāo)識或列分量標(biāo)識比較,判斷本地不存在的行分量標(biāo)識或列分量標(biāo)識; 第五依賴服務(wù)器確認(rèn)模塊,適于根據(jù)本地不存在的行分量標(biāo)識或列分量標(biāo)識所屬的計算服務(wù)器,確認(rèn)當(dāng)前服務(wù)器依賴的各計算服務(wù)器,以及依賴的各計算服務(wù)器中用戶標(biāo)識-項目主體-項目權(quán)重矩陣和用戶標(biāo)識-權(quán)重均值矩陣的分量標(biāo)識。
全文摘要
本發(fā)明公開了一種基于協(xié)同過濾的處理方法和系統(tǒng),涉及計算機技術(shù)領(lǐng)域。所述系統(tǒng)包括請求接收模塊和至少兩個計算服務(wù)器;所述請求接收模塊;依賴計算服務(wù)器確認(rèn)模塊;分量發(fā)送接收模塊;推薦項目計算模塊,適于每個參與計算的計算服務(wù)器針對本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)中的每個主體,利用本地的主體-項目權(quán)重矩陣的分塊矩陣數(shù)據(jù)、本地的協(xié)同過濾矩陣的分塊矩陣數(shù)據(jù)和接收到的分量之間的對應(yīng)關(guān)系,將至少一個項目推薦給所述主體;所述各計算服務(wù)器之間通過調(diào)用訊息傳遞接口發(fā)送和接收數(shù)據(jù)。本發(fā)明可快速針對龐大的矩陣數(shù)據(jù)計算推薦項目,并且可降低計算系統(tǒng)對硬件的要求,可從整體上降低硬件成本。
文檔編號G06F9/50GK103019860SQ201210518378
公開日2013年4月3日 申請日期2012年12月5日 優(yōu)先權(quán)日2012年12月5日
發(fā)明者齊路, 何銳邦, 唐會軍 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司