專利名稱:網(wǎng)絡環(huán)境中的用戶信息處理和資源推薦的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡環(huán)境中的用戶信息處理,尤其是網(wǎng)絡環(huán)境中用戶隱私的保護,更具體涉及一種用于網(wǎng)絡網(wǎng)絡中的用戶信息處理的方法和裝置,以及一種用于向用戶推薦網(wǎng)絡資源的方法和系統(tǒng)。
背景技術:
向量內(nèi)積可表示向量之間的相似性和相關性,因此,在機器學習、信息檢索(Information Retrieval)、推薦系統(tǒng)(Recommender System)等中得到了廣泛的使用。例如,網(wǎng)絡環(huán)境中的推薦系統(tǒng),通過計算用戶的偏好向量之間的內(nèi)積來測量它們之間的相似性,從而發(fā)現(xiàn)用戶的鄰居并將用戶聚類為組。余弦相關性和皮爾森相關性(Pearson Correlation)是常見的相似性度量。盡管它們的公式是不同的,但它們的實質(zhì)部分都是向量內(nèi)積。支持向量機(SVM)僅使用向量內(nèi)積來構造決策超平面。向量內(nèi)積的計算公式非常簡單。如果向量A=(a1,a2,...,an),B=(b1,b2,...,bn),則它們的內(nèi)積是 然而,在某些情況下向量內(nèi)積的計算涉及隱私問題。例如,上述推薦系統(tǒng)所用的用戶的偏好向量往往包含了用戶的穩(wěn)私信息,例如個人簡檔、交易記錄、下載列表、瀏覽歷史等等。在集中式系統(tǒng)中,中央服務器保存著所有用戶的隱私信息,在這種情況下,用戶只能寄希望于中央服務器是可信的。而在有的國家,當公司破產(chǎn)時,用戶的信息可以被合法地出售以償還債務。在p2p推薦系統(tǒng)中,用戶必須承擔將其隱私信息與其他信用并不可靠的用戶共享的風險。另一個具體的例子是SmallBlue系統(tǒng),該系統(tǒng)可收集用戶的電子郵件內(nèi)容中的詞。盡管該系統(tǒng)無法得到用戶電子郵件的完整內(nèi)容,但關鍵詞可也以顯示出用戶的興趣。
涉及到網(wǎng)絡環(huán)境中用戶隱私信息保護的另一種場景是推薦系統(tǒng)的推薦過程。在該推薦過程中,推薦系統(tǒng)使用用戶的鄰居的資源偏好向量來形成該用戶的推薦列表,所述資源偏好向量包含了諸如瀏覽歷史、下載日志、交易、個人簡檔等隱私信息。在傳統(tǒng)的推薦系統(tǒng)的推薦過程中,用戶的鄰居的隱私信息將暴露給該用戶或中央服務器。
可見,在本領域中需要一種在網(wǎng)絡環(huán)境中計算用戶偏好向量的內(nèi)積以及推薦系統(tǒng)的推薦過程中等場景中保護用戶隱私的解決方案。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,提供了一種用于網(wǎng)絡環(huán)境中的用戶信息處理的方法,包括在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量;在所述第一用戶設備處將所述第一變換向量劃分為至少兩個部分,其中,當將所述第一變換向量劃分為兩個部分時將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量或其部分;從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的,其中由所述第二變換向量的第一部分或第二部分無法獲得所述第二向量或其部分;在所述第一用戶設備處計算所述第一變換向量的第一部分與所述第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積;從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的;以及在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
根據(jù)本發(fā)明的另一個方面,提供了一種用于網(wǎng)絡環(huán)境中的用戶信息處理的裝置,包括變換模塊,用于在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量;劃分模塊,用于在所述第一用戶設備處將所述第一變換向量劃分為至少兩個部分,其中,當所述第一變換向量被劃分為兩個部分時所述劃分模塊用于將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量或其部分;發(fā)送接收模塊,用于從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的,其中由所述第二變換向量的第一部分或第二部分無法獲得所述第二向量或其部分;計算模塊,用于在所述第一用戶設備處計算所述第一變換向量的第一部分與所述第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積;所述發(fā)送接收模塊還用于從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的;以及相加模塊,用于在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
根據(jù)本發(fā)明的又一個方面,提供了一種用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法,包括以下步驟在該用戶的兩個或更多個鄰居中的每一個鄰居的設備處對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量;在所述每一個鄰居的設備處將所述變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量或其部分;從所述每一個鄰居的設備處將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分;在所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別計算所有變換向量的相應部分的和;從所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備;在所述用戶的設備處將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和;以及在所述用戶的設備處對所有變換向量的和執(zhí)行逆變換,從而生成將向該用戶推薦的資源偏好向量。
根據(jù)本發(fā)明的再一個方面,提供了一種用于在網(wǎng)絡環(huán)境中向用戶推薦資源的系統(tǒng),包括位于該用戶的兩個或更多個鄰居中的每一個鄰居的設備處的變換模塊,用于對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量;位于所述每一個鄰居的設備處的劃分模塊,用于將所述相應的變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量或其部分;位于所述每一個鄰居的設備處的發(fā)送模塊,用于將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分;位于所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的計算模塊,用于分別計算所有變換向量的相應部分的和;位于所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的發(fā)送模塊,用于分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備;位于所述用戶的設備處的集成模塊,用于將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和;以及位于所述用戶的設備處的逆變換模塊,用于對所有變換向量的和執(zhí)行逆變換,從而生成所有鄰居的資源偏好向量的和,作為向該用戶推薦的資源偏好向量。
本發(fā)明的優(yōu)點在于既能夠在網(wǎng)絡環(huán)境中計算表示與用戶有關的信息的向量的內(nèi)積或根據(jù)對用戶的鄰居的資源偏好向量的計算向用戶推薦資源,同時又保護了用戶及其鄰居的隱私。
所附權利要求中闡述了被認為是本發(fā)明的特點的創(chuàng)造性特征。但是,通過參照附圖閱讀下面對說明性實施例的詳細說明可更好地理解發(fā)明本身以及其優(yōu)選使用模式、目標、特征以及優(yōu)點,在附圖中 圖1示出了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法; 圖2示意性地例示了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法的過程; 圖3示出了根據(jù)本發(fā)明的進一步的實施例的方法中用于在計算向量內(nèi)積之前壓縮內(nèi)積長度的附加步驟; 圖4示意性地例示了根據(jù)本發(fā)明的進一步的實施例的方法中用于在計算向量內(nèi)積之前壓縮內(nèi)積長度的過程; 圖5示出了根據(jù)本發(fā)明的進一步的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法; 圖6示出了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的裝置; 圖7示出了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法; 圖8示出了根據(jù)本發(fā)明的進一步的實施例的方法中用于壓縮資源偏好向量的長度以及將資源偏好向量中的元素與相應的資源項目相關聯(lián)的附加步驟; 圖9示出了根據(jù)本發(fā)明的實施例的方法中用于實現(xiàn)關聯(lián)步驟的具體步驟; 圖10示意性地例示了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法的過程; 圖11A和11B示意性地例示了根據(jù)本發(fā)明的實施例的將資源偏好向量中的元素與相應的項目相關聯(lián)的附加步驟的實現(xiàn)過程;以及 圖12示出了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的系統(tǒng)。
具體實施例方式 本發(fā)明的基本思想在于在相關用戶的計算設備處使用特定變換將表示與用戶有關的信息的初始向量變換為新的向量,將該新的向量劃分為不同的部分,所述變換和/或所述劃分具有這樣的性質(zhì),即根據(jù)任何部分無法計算出初始向量;然后將各個部分分布到不同用戶的計算機中進行應用場景所要求的操作;最后,將各個操作結果集中到一個計算設備中進行合并,并在需要時進行逆變換,從而獲得最終的結果,所述最終的結果與當使用用戶的初始向量進行應用場景所要求的操作時的結果是相同的。這樣,既獲得了對用戶向量進行應用場景所要求的操作的結果,同時,在任何用戶的計算設備處都無法獲得其他的用戶向量,從而保護了用戶的隱私。
下面參照附圖來說明本發(fā)明的實施例。在下面的說明中,闡述了許多具體細節(jié)以便更全面地了解本發(fā)明。但是,對于本技術領域內(nèi)的技術人員明顯的是,本發(fā)明的實現(xiàn)可不具有這些具體細節(jié)中的一些。在下面的說明中出現(xiàn)的“第一”、“第二”、“第三”等詞語僅是為敘述方便而使用的,而不代表任何順序。此外,應當理解的是,本發(fā)明并不限于所介紹的特定實施例。相反,可以考慮用下面的特征和要素的任意組合來實施本發(fā)明,而無論它們是否涉及不同的實施例。因此,下面的方面、特征、實施例和優(yōu)點僅作說明之用而不應被看作是所附權利要求的要素或限定,除非權利要求中明確提出。
在本發(fā)明的一個方面,提供了一種用于網(wǎng)絡環(huán)境中的用戶信息處理的方法。圖1示出了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法。如圖所示,該方法包括以下步驟 在步驟101,在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量。所述第一向量可表示諸如用戶的下載列表、瀏覽歷史等等與用戶有關的信息。正交變換可以將向量從一個內(nèi)積空間變換到另一個內(nèi)積空間,而向量的內(nèi)積的值卻不變。優(yōu)選地,可以使用具有良好的分散性(decompaction)的正交變換。分散性可確保變換后的向量的任何部分無法用來重構原始向量,甚至無法用來重構原始向量的一部分或近似的向量。在本發(fā)明的一個實施例中,使用離散余弦變換(Discrete Cosine Transformation)作為所述正交變換。優(yōu)選地,可進一步使用二重離散余弦變換,即在使用離散余弦變換對原向量進行變換后,對變換后的向量再次使用離散余弦變換進行變換,這樣可進一步改進分散性。當然,這并非是對本發(fā)明的限制,本發(fā)明的方法也可以使用任何其他適當?shù)恼蛔儞Q。
在本發(fā)明的另一個實施例中,所述正交變換是使用隨機正交矩陣實現(xiàn)的,即每次正交變換計算是使用不同的正交矩陣實現(xiàn)的。具體地,為了實現(xiàn)每次正交變換計算使用不同的正交變換,可以采用協(xié)商的方式在每次計算前生成一個正交矩陣。以兩個節(jié)點的計算為例,生成正交矩陣的步驟可以如下 在第一步,節(jié)點A和節(jié)點B分別生成一個偽隨機數(shù),互相交換后求和或者進行其他運算,得到一個新的數(shù),作為偽隨機數(shù)生成器的種子。
在第二步,節(jié)點A和節(jié)點B使用相同的偽隨機數(shù)發(fā)生器和協(xié)商好的種子,生成相同的矩陣M。
在第三步,節(jié)點A和節(jié)點B檢查這個矩陣M是不是滿秩的,如果不是,則重復第一、二步,如果是進行下一步操作。
在第四步,節(jié)點A和節(jié)點B分別使用斯密特正交化方法求矩陣M的標準正交基,求得的標準正交基就是一個正交矩陣N,可用以實現(xiàn)所述正交變換。
返回圖1,在步驟102,在所述第一用戶設備處將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量。可以任何方式將第一變換向量劃分為第一部分和第二部分。例如,所述第一部分和第二部分可包含相同數(shù)量的元素或不同數(shù)量的元素。此外,為了確保由第一變換向量的任何部分無法獲得第一向量,除了如上所述采用具有良好分散性的正交變換外,還可進一步地在進行劃分時將第一變換向量的偶數(shù)位置的元素和奇數(shù)位置的元素分別劃分到第一部分和第二部分。
在步驟103,從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的。所述第二向量與所述第一向量具有相同數(shù)量的元素,且第二向量中的每個元素與第一向量中的每個元素具有相同的意義,例如代表同一個資源項目。
在步驟104,在第一用戶設備處計算第一變換向量的第一部分與第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積。
在步驟105,從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的。
在步驟106,在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。所述第一向量和第二向量的內(nèi)積反映了第一向量和第二向量之間的相似性。
根據(jù)本發(fā)明的一實施例,本發(fā)明的該方法還包括附加的步驟107,用于根據(jù)所述第一向量和第二向量的內(nèi)積確定所述第一用戶和第二用戶是否為相鄰用戶。
本發(fā)明的上述方法可用來在推薦系統(tǒng)中通過計算兩個用戶的偏好向量的內(nèi)積來確定兩個用戶是否是為相鄰用戶,也可用來在諸如p2p環(huán)境中的機器學習、數(shù)據(jù)挖掘、信息檢索、應用場景中計算不同用戶的信息之間的相似性或相關性,還可用來在諸如SmallBlue等系統(tǒng)中通過計算與不同用戶的郵件內(nèi)容有關的向量之間的內(nèi)積來確定這些郵件內(nèi)容的相似性和相關性,并進而構建社會網(wǎng)絡(social network)。在所有上述應用場景中,本發(fā)明的方法均能夠確保用戶的隱私信息不被暴露。
圖2示意性地例示了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法的過程。如圖所示,在第1步,網(wǎng)絡中的兩個計算設備PeerA和Peer B分別使用離散余弦變換(DCT)將原始向量Va(5,1,2,0,3,4)和Vb(3,0,4,0,2,1)變換為新的向量Da(6.1237,0.04,3.5,0.4082,0.866,2.0813)和Db(4.0825,0.8966,0,0,1.1547,3.3461)。
在第2步,Peer A將Da劃分為兩個部分Da1(6.1237,0.04)和Da2(3.5,0.4082,0.866,2.0813)。Peer B也以同樣方式將Db劃分為兩個部分Db1(4.0825,0.8966)和Db2(0,0,1.1547,3.3461)。
在第3步,Peer A將Da1發(fā)送給Peer B;Peer B將Db2發(fā)送給PeerA。
在第4步,Peer A計算Da2和Db2的內(nèi)積<Da2,Db2>=25.0359;PeerB計算Da1和Db1的內(nèi)積<Da1,Db1>=7.9641。
在第5步,Peer A和Peer B交換兩個內(nèi)積<Da2,Db2>和<Da1,Db1>。
在第6步,Peer A和PeeB分別將兩個內(nèi)積相加,獲得向量Da和Db的內(nèi)積<Da,Db>=33,該值與原始向量Va和Vb的內(nèi)積<Va,Vb>的值相同。
上述方法包含了本發(fā)明的該技術方案的所有必要技術特征。然而,在實際系統(tǒng)中,該方法可能會產(chǎn)生性能上的問題。例如,假設向量包含用戶的下載列表,由于每個用戶的下載列表通常較小,而可能的下載項目的數(shù)量卻非常巨大,例如可能是數(shù)百萬甚至數(shù)千萬,又由于該方法要求每個用戶的向量的大小相同,因此如果使用相同大小的向量來表示用戶的下載列表,則會得到極其巨大而稀疏的向量,從而給系統(tǒng)帶來很大的計算負荷。為此,在本發(fā)明的進一步的實施例中,該方法還包括在計算向量內(nèi)積之前用于壓縮內(nèi)積長度的附加步驟。圖3示出了根據(jù)本發(fā)明的該進一步的實施例的該方法中的附加步驟。
如圖所示,在步驟301,從所述第一用戶設備將表示與第一用戶有關的信息的第一原始向量的長度或更大的長度發(fā)送給所述第二用戶設備,且從所述第二用戶設備接收表示與第二用戶有關的信息的第二原始向量的長度或更大的長度。
在步驟302,在所述第一用戶設備處創(chuàng)建長度等于或大于所述第一原始向量的長度和第二原始向量的長度之和的第一零元素向量。
在步驟303,在所述第一用戶設備處使用散列函數(shù)根據(jù)所述第一原始向量中各元素所屬的項目編號將各元素映射到所述第一零元素向量的相應位置,從而形成所述第一向量;其中所述第二向量是通過在所述第二用戶設備處創(chuàng)建與所述第一零元素向量相同長度的第二零元素向量,并使用所述散列函數(shù)根據(jù)所述第二原始向量中各元素所屬的項目編號將各元素映射到所述第二零元素向量的相應位置而形成的。任何能夠?qū)㈨椖烤幪栍成涞剿隽阍叵蛄康哪硞€元素位置的散列函數(shù)都是可行的,換言之,任何散列函數(shù),只要其對不同數(shù)值進行散列所得到的不同散列值的數(shù)量等于或小于所述零元素向量的大小,都是可行的。
圖4示意性地例示了根據(jù)本發(fā)明的該進一步實施例的用于在計算向量內(nèi)積之前壓縮內(nèi)積長度的過程。如圖所示,Peer A處的列表為ListA{1:5,4:1,6:2,7:3,9:4},表示編號分別為1、4、6、7、9的5個項目的值分別為5、1、2、3、4;Peer B處的列表為ListB{1:3,6:4,7:2,9:1},表示編號分別為1、6、7、9的4個項目的值分別為3、4、2、1。在第1步,Peer A和Peer B相互交換其各自的列表的長度La=5和Lb=4。實際上,Peer A和Peer B不必將其列表的真實長度告知對方。任何大于其列表的真實長度的數(shù)量都是可行的。在第2步,Peer A和Peer B各創(chuàng)建一個長度相同的零元素向量,且每個零元素向量的長變等于各自列表的長度之和或更大,即Va(0,0,0,0,0,0,0,0,0)和Vb(0,0,0,0,0,0,0,0,0)。然后,Peer A和PeerB分別使用相同的散列函數(shù)根據(jù)其各自列表List A和List B中各項目的編號將其各自列表中的項目映射到各自零元素向量的相應位置,從而形成向量Va(5,0,0,0,2,0,0,3,4)和Vb(3,0,0,0,4,0,0,2,1)。也就是說,所述散列函數(shù)將項目編號1映射為元素位置0,將項目編號4映射為元素位置2,將項目編號6映射為元素位置4,將項目編號7映射為元素位置7,將項目編號9映射為元素位置8。
另外,如何劃分變換向量以及將變換向量的部分分布在何處也不會改變本發(fā)明的方法的本質(zhì)。例如,可以將每個變換向量劃分為三個部分。并將它們分別發(fā)送到三個其他設備中來計算每個部分的內(nèi)積。圖5示出了根據(jù)本發(fā)明的進一步的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法。如圖所示,該方法包括如下步驟。
在步驟501,與上述步驟101相同,在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量。
在步驟502,在第一用戶設備處將第一變換向量劃分為第一變換向量的第一部分、第二部分和一個或多個第三部分,其中由第一變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第一變換向量。
在步驟503,從第一用戶設備將第一變換向量的第二部分發(fā)送給與第一用戶設備通過網(wǎng)絡連接的第二用戶設備,將第一變換向量的一個或多個第三部分分別發(fā)送給一個或多個與第一用戶設備和第二用戶設備通過網(wǎng)絡連接的第三設備,以及從第二用戶設備接收第二交換向量的第一部分,其中所述第二變換向量的第一部分是通過在第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分、第二部分和一個或多個第三部分而得到的。
在步驟504,與步驟104相同,在第一用戶設備處計算第一變換向量的第一部分與第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積。
在步驟505,從第二用戶設備接收第二內(nèi)積,以及從一個或多個第三設備分別接收一個或多個第三內(nèi)積,其中所述第二內(nèi)積是通過在第二用戶設備處計算第一變換向量的第二部分與第二變換向量的第二部分的內(nèi)積而得到的,且所述一個或多個第三內(nèi)積分別是通過在一個或多個第三設備中的每一個處計算第一變換向量的相應的第三部分與第二變換向量的相應的第三部分的內(nèi)積而得到的。以及 在步驟505,在第一用戶設備處將所述第一內(nèi)積、第二內(nèi)積和一個或多個第三內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
以上描述了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法,應指出的是,以上描述僅為示例,而不是對本發(fā)明的限制。在本發(fā)明的其他實施例中,該方法可具有更多、更少或不同的步驟,且各步驟之間的順序可以與所描述的不同,或可以并行執(zhí)行。
下面參照圖6,其示出了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的裝置。該裝置可用來執(zhí)行如上所述的本發(fā)明的方法,為簡明起見,在以上描述中省略了與以上重復的部分細節(jié)。因此,可參照以上描述獲得對本發(fā)明的裝置的更詳細的了解。如圖所示,該裝置包括如下模塊 變換模塊601,用于在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量; 劃分模塊602,用于在所述第一用戶設備處將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量; 發(fā)送接收模塊603,用于從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的; 計算模塊604,用于在所述第一用戶設備處計算所述第一變換向量的第一部分與所述第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積; 所述發(fā)送接收模塊603還用于從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的;以及 相加模塊605,用于在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
為了提高本發(fā)明的裝置涉及巨大而稀疏的向量的情況的性能,根據(jù)本發(fā)明的進一步實施例,本發(fā)明的該裝置還包括以下可選模塊或特征 所述發(fā)送接收模塊603還用于從所述第一用戶設備將表示與第一用戶有關的信息的第一原始向量的長度或更大的長度發(fā)送給所述第二用戶設備,且從所述第二用戶設備接收表示與第二用戶有關的信息的第二原始向量的長度或更大的長度; 創(chuàng)建模塊606,用于在所述第一用戶設備處創(chuàng)建長度等于或大于所述第一原始向量的長度和第二原始向量的長度之和的第一零元素向量;以及 散列模塊607,用于在所述第一用戶設備處使用散列函數(shù)根據(jù)所述第一原始向量中各元素所屬的項目編號將各元素映射到所述第一零元素向量的相應位置,從而形成所述第一向量; 其中所述第二向量是通過在所述第二用戶設備處創(chuàng)建與所述第一零元素向量相同長度的第二零元素向量,并使用所述散列函數(shù)根據(jù)所述第二原始向量中各元素所屬的項目編號將各元素映射到所述第二零元素向量的相應位置而形成的。
根據(jù)本發(fā)明的實施例,所述正交變換為離散余弦變換,進一步優(yōu)選地,所述正交變換為二重離散余弦變換。
為簡明起見,在圖6中僅詳細示出了第一用戶設備的結構,然而可理解的是,第二用戶設備具有相同的結構。此外,盡管在圖6的圖示以及以上描述中僅包括兩個用戶設備,并且在每個用戶設備處,變換向量被劃分為兩個部分,并且其中的一部分被發(fā)送給另一個用戶設備,然而如何劃分變換向量以及將變換向量的部分分布在何處以及在兩個用戶設備之外是否還存在其他設備也不會改變本發(fā)明的方法的本質(zhì)。例如,可以將每個變換向量劃分為三個部分。并將它們分別發(fā)送到三個其他設備中來計算每個部分的內(nèi)積。
因此,根據(jù)本發(fā)明的另一實施例,所述劃分模塊602用于在所述第一用戶設備處將所述第一變換向量劃分為第一變換向量的第一部分、第二部分和一個或多個第三部分,其中由所述第一變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第一變換向量; 所述發(fā)送接收模塊603用于從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給所述第二用戶設備,將所述第一變換向量的一個或多個第三部分分別發(fā)送給一個或多個與所述第一用戶設備和第二用戶設備通過網(wǎng)絡連接的第三設備,以及從所述第二用戶設備接收所述第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分、第二部分和一個或多個第三部分而得到的; 所述發(fā)送接收模塊603還用于從所述第二用戶設備接收第二內(nèi)積,以及從所述一個或多個第三設備分別接收一個或多個第三內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的,并且所述一個或多個第三內(nèi)積分別是通過在所述一個或多個第三設備中的第一個處計算所述第一變換向量的相應的第三部分與所述第二變換向量的相應的第三部分的內(nèi)積而得到的;以及 所述相加模塊605用于在所述第一用戶設備處將所述第一內(nèi)積、第二內(nèi)積和一個或多個第三內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
根據(jù)本發(fā)明的實施例,本發(fā)明的該裝置還包括可選的確定模塊608,用于根據(jù)所述第一向量和第二向量的內(nèi)積確定所述第一用戶和第二用戶是否為相鄰用戶。
以上描述了根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中的用戶信息處理的裝置。應指出的是,以上描述僅為示例,而不是對本發(fā)明的限制。在本發(fā)明的其他實施例中,該裝置可具有更多、更少或不同的模塊,且各模塊之間的連接、包含和功能關系可以與所描述和圖示的不同。
在本發(fā)明的另一個方面,還提供了一種用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法。該方法能夠基于一個用戶的鄰居、伙伴或朋友的信息向該用戶推薦資源,而不暴露他們的隱私信息?,F(xiàn)參照圖7描述根據(jù)本發(fā)明的實施例的用于網(wǎng)絡環(huán)境中向用戶推薦資源的方法。
如圖所示,在步驟701,在該用戶的兩個或更多個鄰居中的每一個鄰居的設備處對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量。該用戶的鄰居是指與該用戶具有相近的資源偏好的用戶。可以使用本領域中已知的多種方法來發(fā)現(xiàn)該用戶的鄰居,例如可以通過使用以上描述的本發(fā)明的用于網(wǎng)絡環(huán)境中的用戶信息處理的方法或者現(xiàn)有技術的方法計算該用戶與其他用戶的資源偏好向量之前的相似性來發(fā)現(xiàn)該用戶的鄰居,或通過由該用戶構建朋友列表的方法來確定該用戶的鄰居,等等。資源偏好向量可以來自于用戶的各種資源訪問和使用信息,例如用戶的瀏覽歷史、下載日志、交易記錄、個人簡檔等。每個鄰居的資源偏好向量應當具有相同的大小,即包含相同數(shù)量的元素。如本領域中所知的,自同構的變換滿足如下公式 a+b=T-1(T(a)+T(b)), 其中,a和b是兩個大小相同的向量,T是自同構的變換,T-1是其逆變換。優(yōu)選地,所述變換還應當滿足如下要求,即變換后向量的任何部分無法用來重構原向量。在本發(fā)明的一實施例中,使用了二重離散余弦變換;當然,這并非是對本領域的限制。
在步驟702,在所述每一個鄰居的設備處將所述變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量。也就是說,將每個鄰居的變換向量劃分為相同數(shù)量和大小的部分,且劃分的方式和/或變換本身的性質(zhì)使得無法從任何部分得出原資源偏好向量。
在步驟703,從所述每一個鄰居的設備處將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分。
在步驟704,在所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別計算所有變換向量的相應部分的和。
在步驟705,從所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備。
在步驟706,在所述用戶的設備處將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和。
在步驟707,在所述用戶的設備處對所有變換向量的和執(zhí)行逆變換,從而生成將向該用戶推薦的資源偏好向量。
根據(jù)本發(fā)明的實施例,該方法還包括可選步驟708,其中,在所述用戶的設備處根據(jù)所生成的資源偏好向量中元素的值對該資源偏好向量中的元素進行排序,以便向該用戶推薦。例如,可將排序后的資源偏好向量中的前若干個元素即資源項目推薦給用戶。
根據(jù)本發(fā)明的實施例,該方法還包括可選步驟709,其中,在每一個鄰居的設備處對該鄰居的資源偏好向量執(zhí)行自同構的變換之前,將該鄰居的資源偏好向量乘以該鄰居與所述用戶之間的相似性權重。這樣,該用戶的不同鄰居將根據(jù)其與該用戶的相似程度而不同程度地影響到對該用戶的推薦。
為了提高本發(fā)明的方法在涉及巨大而稀疏的用戶偏好向量的情況下的性能,根據(jù)本發(fā)明的進一步的實施例,該方法還包括在每個鄰居的設備處對資源偏好向量執(zhí)行變換之前用于壓縮資源偏好向量的長度以及將在所述用戶的設備處所生成的資源偏好向量中的元素與相應的資源項目相關聯(lián)的附加步驟。圖8示出了根據(jù)本發(fā)明的該進一步的實施例的該方法中的這些附加步驟。
如圖所示,在步驟801,該用戶的兩個或更多個鄰居的設備相互之間交換各自的原始資源偏好向量的長度或更大的長度。
在步驟802,在每個鄰居的設備處創(chuàng)建長度相同且等于或大于每個鄰居的原始資源偏好向量的長度之和的零元素向量。
在步驟803,在每個鄰居的設備處使用相同的散列函數(shù)根據(jù)該鄰居的原始資源偏好向量中各元素所屬的項目編號將各元素映射到所述零元素向量的相應位置,從而形成該鄰居的所述資源偏好向量以便進行所述自同構變換。也就是說,在步驟803之后,將針對所形成的資源偏好向量執(zhí)行圖7所示的步驟701-707。
在步驟804,將在所述用戶的設備處所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián),以便向該用戶推薦。也就是說,步驟804將在圖7所示的步驟707之后執(zhí)行。
存在著多種實現(xiàn)所述關聯(lián)步驟804方法。圖9示出了根據(jù)本發(fā)明的實施例的用于實現(xiàn)所述關聯(lián)步驟的具體步驟。
如圖所示,在可選步驟901,在每個鄰居的設備處使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射為所述零元素向量中相應位置的“1”元素,從而生成項目編號出現(xiàn)向量。也就是說,對原始資源偏好向量中各元素所屬的項目編號執(zhí)行所述散列函數(shù),所生成的散列值作為所述零元素向量中的相應位置,并將該位置處的零元素置1。當然,如果所述原始資源向量的元素的值為“0”或“1”,例如用以表示用戶是否瀏覽、下載或付費了某個項目,則所述項目編號出現(xiàn)向量與在上述步驟803中形成的資源偏好向量是一致的,從而可以沒有該步驟901,而使用在上述步驟803中形成的所述資源偏好向量作為所述項目編號出現(xiàn)向量。
在步驟902,在每個鄰居的設備處使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射到所述零元素向量中相應的位置,從而生成項目編號向量。也就是說,對原始資源偏好向量中各元素所屬的項目編號執(zhí)行所述散列函數(shù),所生成的散列值作為所述零元素向量中的相應位置,并在該位置處放置所述項目編號。
在步驟903,針對所述項目編號出現(xiàn)向量和項目編號向量分別執(zhí)行如以上所述針對所述資源偏好向量執(zhí)行的步驟701-707,從而在所述用戶的設備處生成合成項目編號出現(xiàn)向量和合成項目編號向量。
在步驟904,使用所述合成項目編號出現(xiàn)向量中的每一個非零元素除所述合成項目編號向量中的相應元素,從而生成反映了所述資源偏好向量中的各元素位置與項目編號之間的對應關系的最終項目編號向量。
在步驟905,通過所述最終項目編號向量將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián)。也就是說,由于所述最終項目編號向量中的每個元素的值是某個項目編號,而該元素所在的位置是與在步驟707中生成的資源偏好向量中的相應元素所在的位置一致的,因此就可以通過所述最終項目編號向量獲知所述在步驟707中生成的資源編好向量中每個元素所對應的項目編號。
通過以上步驟,實現(xiàn)了資源偏好向量中的元素與相應的項目編號之間的關聯(lián),而又沒有暴露鄰居的隱私信息。
圖10示意性地例示了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法的過程。如圖所示,該用戶具有兩個鄰居,A和B,鄰居A的資源偏好向量為Na(1,0,0,1,0,1),鄰居B的資源偏好向量為Nb(1,1,0,1,0,1),其中每個資源偏好向量中的元素值“1”可表示用戶瀏覽、下載或付費了某個項目,而“0”可表示沒有;當然,資源偏好向量中的元素也可以是“0”和“1”之外的具有其他含義的數(shù)值。
在第一步,鄰居A和B分別將其資源偏好向量Na(1,0,0,1,0,1)和Nb(1,1,0,1,0,1)執(zhí)行相同的離散余弦變換,從而得到變換向量TNa(1.2247,-0.1494,0.5,0.4082,0.8660,-0.5577)和TNb(1.633,0.2588,0.5,0,0.2887,-0.9659)。
在第二步,鄰居A和B分別對變換向量TNa和TNb進行相同的劃分,從而分別得到TNa1(1.2247,-0.1494,0.5)、TNa2(0.4082,0.8660,-0.5577)以及TNb1(1.633,0.2588,0.5)、TNb2(0,0.2887,-0.9659)。
在第三步,鄰居A將TNa1發(fā)送給用戶,鄰居B將TNb1也發(fā)送給用戶,并將TNb2發(fā)送給鄰居A。
在第四步,用戶將TNa1和TNb1相加,從而得到TR1(2.8577,0.1094,1),而鄰居A將TNa2和TNb2相加,從而得到TR2(0.4082,1.1547,-1.5236)。
在第五步,鄰居A將TR2發(fā)送給用戶。
在第六步,用戶將TR1和TR2合并,從而得到TR(2.8577,0.1094,1,0.4082,1.1547,-1.5236)。
在第七步,對TR執(zhí)行逆離散余弦變換,從而得到將向用戶推薦的資源偏好向量R(2,1,0,2,0,2)。該向量R(2,1,0,2,0,2)正是鄰居A和B的資源偏好向量Na(1,0,0,1,0,1)和Nb(1,1,0,1,0,1)的和。當在用戶的設備處得到該向量R后,可進一步根據(jù)用戶自己的資源偏好向量U(1,0,0,0,1,1)從R中過濾掉用戶已經(jīng)瀏覽、下載或付費的項目,并將R中剩余的元素進行排序,從而生成將提供給用戶的推薦列表,例如生成由R中的前若干個元素組成的推薦列表。
通過使用以上過程,用戶、鄰居A和鄰居B都無法得到其他用戶的偏好向量;用戶和鄰居A得到了鄰居B的部分變換向量,但他們無法由所述部分變換向量重構B的資源偏好向量或其一部分;但最終用戶獲得了鄰居A和B的變換向量的和,并對其執(zhí)行逆變換,而得到了向量R,該向量R正是A和B的資源偏好向量的和。事實上,以上過程使用了公式a+b=T-1(T(a)+T(b))。
如本領域技術人員可理解的,以上過程僅為示例,而不是對本發(fā)明的限制。本發(fā)明的方法的過程可具有許多變形。事實上,只要能確保在每一個設備處除該設備中原來的資源偏好向量和變換向量外,不存在來自其他設備的完整的變換變量,從而任何設備無法重構其他設備中的資源偏好向量;同時,所有鄰居的資源變換向量的相應部分都存在于某一個設備上,以便由該設備對所有鄰居的資源變換向量的相應部分求和,然后將所求得的和發(fā)送到用戶設備,以便由用戶設備將各部分的和集成為所有變換向量的和,并進行逆變換,則都能實現(xiàn)本發(fā)明的目的。例如,在以上第三步中,也可以不是由鄰居A和鄰居B分別將TNa1和TNb1發(fā)送到用戶設備處,并第四步中在用戶設備處對TNa1和TNb1進行求和,而是由鄰居A將TNa1發(fā)送給鄰居B,由鄰居B在第四步中對TNa1和TNb1,從而獲得TR1,并在第五步中與鄰居A將TR2發(fā)送到用戶設備處同時地將TR1發(fā)送到用戶設備處?;蛘撸诘谌街?,由鄰居A和B分別將TNa1和TNb1發(fā)送到除用戶、鄰居A和鄰居B之外的其他設備處,在該設備處求和,并將所求得的和發(fā)送給用戶設備。當然,也可以存在兩個其他設備,這樣,鄰居A和B可以分別將TNa1和TNb1發(fā)送給第一其他設備,而將TNa2和TNb2分別發(fā)送給第二其他設備,且第一其他設備和第二其他設備分別對TNa1和TNb1以及TNa2和TNb2求和,并分別將所求得的和發(fā)送給用戶設備。此外,還可以分別將鄰居A和B的變換向量TNa和TNb同樣地劃分為三個或以上部分,并將這些部分分別發(fā)送給用戶、鄰居A、鄰居B以及其他設備中的不同設備進行求和,然后各設備將所求得的和發(fā)送到用戶設備,以便將其集成為變換向量TNa和TNb的和。再者,本發(fā)明的方法也適用于兩個以上鄰居的情況,在這種情況下,僅作為示例,各鄰居可將其變換向量劃分為兩部分,并將第一部分都發(fā)送到用戶設備,而將第二部分都發(fā)送到鄰居A,等等。所有這些變化都處于本發(fā)明的精神和范圍之內(nèi)。
圖11A和11B示意性地例示了根據(jù)本發(fā)明的實施例的包含了壓縮資源偏好向量的長度的方法中將在所述用戶的設備處生成的資源偏好向量中的元素與相應的項目相關聯(lián)的附加步驟的實現(xiàn)過程。
如圖11A所示,鄰居A的資源偏好向量中各元素的項目編號列表為{9,23,99},其資源偏好向量的長度為La=3。鄰居B的資源偏好向量中各元素的項目編號列表為{9,12,23,99},其資源偏好向量的長度為Lb=4。鄰居A和B的資源偏好向量中各元素的值未示出,其可以為“0”或“1”,也可以是其他值。
鄰居A和B已通過交換資源偏好向量的長度獲得了零元素向量的長度La+Lb=7,并分別生成了零元素向量。鄰居A使用散列函數(shù)將其項目編號列表中的各編號映射為零元素向量中的相應位置,并將該位置處的元素的值置為1。這就是說,鄰居A對9執(zhí)行散列函數(shù),得到值4,因此,將零元素向量中的第4個元素置1;對23執(zhí)行散列函數(shù),得到值0,因此,將零元素向量中的第0個元素置1;對99執(zhí)行散列函數(shù),得到值6,因此,將零元素向量中的第6個元素置1,而其他元素保持為0,這樣就得到了項目編號出現(xiàn)向量A(1,0,0,0,1,0,1)。同理,鄰居B根據(jù)其項目編號列表生成了項目編號出現(xiàn)向量B(1,0,1,0,1,0,1)。然后,針對鄰居A和B處的項目編號出現(xiàn)向量A(1,0,0,0,1,0,1)和B(1,0,1,0,1,0,1),鄰居A和B以及用戶的設備通過前文中所述、圖7中所示并在圖10中例示的方法,在用戶的設備處生成合并項目編號出現(xiàn)向量TR(2,0,1,0,2,0,2)。
應指出的是,在鄰居A和B的資源偏好向量中的元素的值僅由0或1表示的情況下,鄰居A和B的資源偏好向量與其項目編號出現(xiàn)向量是一致的,所生成的用戶A的資源偏好向量與合并項目編號出現(xiàn)向量也是一致的,因此,用于生成用戶A的資源偏好向量的過程與用于生成用戶A的設備處的合并項目編號出現(xiàn)向量的過程可以是同一個過程。在鄰居A和B的資源偏好向量中的元素的值不是僅由0或1表示的情況下,鄰居A和B的資源偏好向量與其項目編號出現(xiàn)向量是不一致的,因此,必須在用于生成用戶A的資源偏好向量的過程之外,存在一個單獨的用于生成用戶A的設備處的合并項目編號出現(xiàn)向量的過程。
進一步參照圖11B,當鄰居A和B已通過交換其資源偏好向量的長度生成長度為7的零元素向量后,鄰居A使用所述散列函數(shù)將其項目編號列表中的各元素分別映射到該零元素向量中的相應位置。也就是說,鄰居A對9執(zhí)行散列函數(shù),得到值4,因此,將項目編號9放置到零元素向量中的第4個元素位置;對23執(zhí)行散列函數(shù),得到值0,因此,將項目編號23放置到零元素向量中的第0個元素位置;對99執(zhí)行散列函數(shù),得到值6,因此,將項目編號99放置到零元素向量中的第6個元素位置,而其他元素保持為0,這樣就得到了項目編號向量A(23,0,0,0,9,0,99)。同理,鄰居B根據(jù)其項目編號列表生成了項目編號向量B(23,0,12,0,9,0,99)。然后,針對鄰居A和B處的項目編號向量A(23,0,0,0,9,0,99)和B(23,0,12,0,9,0,99),鄰居A和B以及用戶的設備通過前文中所述、圖7中所示并在圖10中例示的方法,在用戶的設備處生成合并項目編號向量N(46,0,12,0,18,0,198)。接著,使用所述合并項目編號出現(xiàn)向量TR(2,0,1,0,2,0,2)中的各元素除所述合并項目編號向量N(46,0,12,0,18,0,198)中的相應元素,得到最終的項目編號向量O(23,0,12,0,9,0,99)。該最終的項目編號向量中的各元素的值為項目編號,而各元素的位置與在用戶的設備處生成的資源偏好向量中的相應項目所在的位置是一致的,這樣就可以通過該最終的項目編號向量得到在用戶的設備處所生成的資源偏好向量中各元素所對應的資源項目。例如,假設在用戶的設備處所生成的資源偏好向量為TR(2,0,1,0,2,0,2),則通過最終的項目編號向量O(23,0,12,0,9,0,99)可以得知,資源偏好向量TR中的第0個元素2對應于資源項目編號23,第2個元素對應于資源項目編號12,第4個元素對應于資源項目編號9,第6個元素對應于資源項目編號99,這樣,就可以向用戶提供有意義的資源推薦列表。
以上描述了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法,應指出的是,以上描述僅為示例,而不是對本發(fā)明的限制。在本發(fā)明的其他實施例中,該方法可具有更多、更少或不同的步驟,且各步驟之間的順序可以與所描述的不同,或者可并行執(zhí)行。
圖12示出了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的系統(tǒng)。如圖所示,該系統(tǒng)包括如下模塊 位于該用戶的兩個或更多個鄰居中的每一個鄰居的設備處的變換模塊1201,用于對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量; 位于所述每一個鄰居的設備處的劃分模塊1202,用于將所述相應的變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量或其部分; 位于所述每一個鄰居的設備處的發(fā)送模塊1203,用于將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分; 位于所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的計算模塊1204,用于分別計算所有變換向量的相應部分的和; 位于所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的發(fā)送模塊1203,用于分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備; 位于所述用戶的設備處的集成模塊1205,用于將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和;以及 位于所述用戶的設備處的逆變換模塊1206,用于對所有變換向量的和執(zhí)行逆變換,從而生成所有鄰居的資源偏好向量的和,作為向該用戶推薦的資源偏好向量。
在本發(fā)明的一實施例中,該系統(tǒng)還包括位于所述用戶的設備處的排序模塊(未示出),用于根據(jù)所生成的資源偏好向量中元素的值對該資源偏好向量中的元素進行排序,以便向該用戶推薦。
在本發(fā)明的一實施例中,該系統(tǒng)還包括位于每一個鄰居的設備處的加權模塊(未示出),用于在對該鄰居的資源偏好向量執(zhí)行自同構的變換之前,將該鄰居的資源偏好向量乘以該鄰居與所述用戶之間的相似性權重。
在本發(fā)明的一實施例中,所述變換為二重離散余弦變換。
在本發(fā)明的一實施例中,該系統(tǒng)還包括圖中未示出的如下模塊 位于每個鄰居的設備中的長度交換模塊,用于在該用戶的兩個或更多個鄰居的設備相互之間交換相應鄰居的原始資源偏好向量的長度或更大的長度; 位于每個鄰居的設備中的零元素向量創(chuàng)建模塊,用于創(chuàng)建長度相同且等于或大于每個鄰居的原始資源偏好向量的長度之和的零元素向量; 位于每個鄰居的設備中的散列模塊,用于使用相同的散列函數(shù)根據(jù)該鄰居的原始資源偏好向量中各元素所屬的項目編號將各元素映射到所述零元素向量的相應位置,從而形成該鄰居的所述資源偏好向量以便進行所述自同構變換;以及 位于所述用戶設備處的關聯(lián)模塊,用于對所有變換向量的和執(zhí)行逆變換之后,將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián),以便向該用戶推薦。
在本發(fā)明的實施例中,該系統(tǒng)還包括如下技術特征 位于每個鄰居的設備處的所述散列模塊還用于使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射為所述零元素向量中相應位置的“1”元素,從而生成項目編號出現(xiàn)向量; 位于每個鄰居的設備處的所述散列模塊還用于使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射到所述零元素向量中相應的位置,從而生成項目編號向量; 位于每一個鄰居的設備處的所述變換模塊1201、劃分模塊1202、發(fā)送模塊1203,位于所述用戶的設備、每一個鄰居的設備或所述一個或多個其他設備中的每一個處的計算模塊1204,位于每一個鄰居的設備或所述一個或多個其他設備中的每一個處的發(fā)送模塊1203,位于所述用戶的設備處的集成模塊1205、逆變換模塊1206,還用于針對所述項目編號出現(xiàn)向量和項目編號向量分別執(zhí)行相應操作,從而在所述用戶的設備處生成合成項目編號出現(xiàn)向量和合成項目編號向量; 且該系統(tǒng)還包括位于所述用戶的設備處的除法模塊,用于使用所述合成項目編號出現(xiàn)向量中的每一個非零元素除所述合成項目編號向量中的相應元素,從而生成反映了所述資源偏好向量中的各元素位置與項目編號之間的對應關系的最終項目編號向量, 且其中,所述關聯(lián)模塊通過所述最終項目編號向量將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián)。
以上描述了根據(jù)本發(fā)明的實施例的用于在網(wǎng)絡環(huán)境中向用戶推薦資源的系統(tǒng),需要指出的是,以上描述以及圖示僅為示例,而不是對本發(fā)明的限制。本發(fā)明的系統(tǒng)可具有更多、更少或不同的模塊,且各模塊之間的關系可以與所描述和圖示的不同。此外,在本發(fā)明的不同實施例中,該系統(tǒng)可涉及兩個鄰居設備或更多個鄰居設備,可涉及其他設備或不涉及其他設備,并且該系統(tǒng)的一個或多個模塊可以位于用戶的設備、鄰居設備以及其他設備中的不同設備中。所有這些變換都處于本發(fā)明的精神和范圍之內(nèi)。
本發(fā)明可以硬件、軟件、或硬件與軟件的結合的方式實現(xiàn)。本發(fā)明可以集中的方式在一個計算機系統(tǒng)中實現(xiàn),或以分布方式實現(xiàn),在這種分布方式中,不同的部件分布在若干互連的計算機系統(tǒng)中。適于執(zhí)行本文中描述的方法的任何計算機系統(tǒng)或其它裝置都是合適的。一種典型的硬件和軟件的組合可以是帶有計算機程序的通用計算機系統(tǒng),當該計算機程序被加載和執(zhí)行時,控制該計算機系統(tǒng)而使其執(zhí)行本發(fā)明的方法,并構成本發(fā)明的裝置。
本發(fā)明也可體現(xiàn)在計算機程序產(chǎn)品中,該程序產(chǎn)品包含使能實現(xiàn)本文中描述的方法的所有特征,并且當其被加載到計算機系統(tǒng)中時,能夠執(zhí)行所述方法。
盡管已參照優(yōu)選實施例具體示出和說明了本發(fā)明,但是本領域內(nèi)的那些技術人員應理解,可在形式和細節(jié)上對其進行各種改變而不會背離本發(fā)明的精神和范圍。
權利要求
1.一種用于網(wǎng)絡環(huán)境中的用戶信息處理的方法,包括
在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量;
在所述第一用戶設備處將所述第一變換向量劃分為至少兩個部分,其中,當所述第一變換向量被劃分為兩個部分時
將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量或其部分;
從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的,其中由所述第二變換向量的第一部分或第二部分無法獲得所述第二向量或其部分;
在所述第一用戶設備處計算所述第一變換向量的第一部分與所述第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積;
從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的;以及
在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
2.根據(jù)權利要求1的方法,還包括
從所述第一用戶設備將表示與第一用戶有關的信息的第一原始向量的長度或更大的長度發(fā)送給所述第二用戶設備,且從所述第二用戶設備接收表示與第二用戶有關的信息的第二原始向量的長度或更大的長度;
在所述第一用戶設備處創(chuàng)建長度等于或大于所述第一原始向量的長度和第二原始向量的長度之和的第一零元素向量;以及
在所述第一用戶設備處使用散列函數(shù)根據(jù)所述第一原始向量中各元素所屬的項目編號將各元素映射到所述第一零元素向量的相應位置,從而形成所述第一向量;
其中所述第二向量是通過在所述第二用戶設備處創(chuàng)建與所述第一零元素向量相同長度的第二零元素向量,并使用所述散列函數(shù)根據(jù)所述第二原始向量中各元素所屬的項目編號將各元素映射到所述第二零元素向量的相應位置而形成的。
3.根據(jù)權利要求1的方法,其中所述正交變換為二重離散余弦變換。
4.根據(jù)權利要求1的方法,其中所述正交變換是使用隨機正交矩陣實現(xiàn)的。
5.根據(jù)權利要求1方法,其中,當所述第一變換向量被劃分為兩個以上的部分時
在所述第一用戶設備處將所述第一變換向量劃分為第一變換向量的第一部分、第二部分和一個或多個第三部分,其中由所述第一變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第一變換向量或其部分;
從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,將所述第一變換向量的一個或多個第三部分分別發(fā)送給一個或多個與所述第一用戶設備和第二用戶設備通過網(wǎng)絡連接的第三設備,以及從所述第二用戶設備接收第二交換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分、第二部分和一個或多個第三部分而得到的,其中由所述第二變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第二變換向量或其部分;
從所述第二用戶設備接收第二內(nèi)積,以及從所述一個或多個第三設備分別接收一個或多個第三內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的,且所述一個或多個第三內(nèi)積分別是通過在所述一個或多個第三設備中的每一個處計算所述第一變換向量的相應的第三部分與所述第二變換向量的相應的第三部分的內(nèi)積而得到的;以及
在所述第一用戶設備處將所述第一內(nèi)積、第二內(nèi)積和一個或多個第三內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
6.根據(jù)權利要求1的方法,還包括根據(jù)所述第一向量和第二向量的內(nèi)積確定所述第一用戶和第二用戶是否為相鄰用戶。
7.一種用于網(wǎng)絡環(huán)境中的用戶信息處理的裝置,包括
變換模塊,用于在第一用戶設備處對表示與第一用戶有關的信息的第一向量進行正交變換,從而得到第一變換向量;
劃分模塊,用于在所述第一用戶設備處將所述第一變換向量劃分為至少兩個部分,其中,當所述第一變換向量被劃分為兩個部分時
所述劃分模塊用于將所述第一變換向量劃分為第一變換向量的第一部分和第二部分,其中由所述第一變換向量的第一部分或第二部分無法獲得所述第一向量或其部分;
發(fā)送接收模塊,用于從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給與所述第一用戶設備通過網(wǎng)絡連接的第二用戶設備,以及從所述第二用戶設備接收第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分和第二部分而得到的,其中由所述第二變換向量的第一部分或第二部分無法獲得所述第二向量或其部分;
計算模塊,用于在所述第一用戶設備處計算所述第一變換向量的第一部分與所述第二變換向量的第一部分的內(nèi)積,從而獲得第一內(nèi)積;
所述發(fā)送接收模塊還用于從所述第二用戶設備接收第二內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的;以及
相加模塊,用于在所述第一用戶設備處將所述第一內(nèi)積和第二內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
8.根據(jù)權利要求7的裝置,還包括
所述發(fā)送接收模塊還用于從所述第一用戶設備將表示與第一用戶有關的信息的第一原始向量的長度或更大的長度發(fā)送給所述第二用戶設備,且從所述第二用戶設備接收表示與第二用戶有關的信息的第二原始向量的長度或更大的長度;
創(chuàng)建模塊,用于在所述第一用戶設備處創(chuàng)建長度等于或大于所述第一原始向量的長度和第二原始向量的長度之和的第一零元素向量;以及
散列模塊,用于在所述第一用戶設備處使用散列函數(shù)根據(jù)所述第一原始向量中各元素所屬的項目編號將各元素映射到所述第一零元素向量的相應位置,從而形成所述第一向量;
其中所述第二向量是通過在所述第二用戶設備處創(chuàng)建與所述第一零元素向量相同長度的第二零元素向量,并使用所述散列函數(shù)根據(jù)所述第二原始向量中各元素所屬的項目編號將各元素映射到所述第二零元素向量的相應位置而形成的。
9.根據(jù)權利要求7的裝置,其中所述正交變換為二重離散余弦變換。
10.根據(jù)權利要求7的裝置,其中所述正交變換是使用隨機正交矩陣實現(xiàn)的。
11.根據(jù)權利要求7的裝置,其中,當所述第一變換向量被劃分為兩個以上的部分時
所述劃分模塊用于在所述第一用戶設備處將所述第一變換向量劃分為第一變換向量的第一部分、第二部分和一個或多個第三部分,其中由所述第一變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第一變換向量或其部分;
所述發(fā)送接收模塊用于從所述第一用戶設備將所述第一變換向量的第二部分發(fā)送給所述第二用戶設備,將所述第一變換向量的一個或多個第三部分分別發(fā)送給一個或多個與所述第一用戶設備和第二用戶設備通過網(wǎng)絡連接的第三設備,以及從所述第二用戶設備接收所述第二變換向量的第一部分,其中所述第二變換向量的第一部分是通過在所述第二用戶設備處對表示與第二用戶有關的信息的第二向量進行所述正交變換從而得到第二變換向量,并將所述第二變換向量相應地劃分為第二變換向量的第一部分、第二部分和一個或多個第三部分而得到的,其中由所述第二變換向量的第一部分、第二部分和一個或多個第三部分中的任何一個無法獲得所述第二變換向量或其部分;
所述發(fā)送接收模塊還用于從所述第二用戶設備接收第二內(nèi)積,以及從所述一個或多個第三設備分別接收一個或多個第三內(nèi)積,其中所述第二內(nèi)積是通過在所述第二用戶設備處計算所述第一變換向量的第二部分與所述第二變換向量的第二部分的內(nèi)積而得到的,并且所述一個或多個第三內(nèi)積分別是通過在所述一個或多個第三設備中的第一個處計算所述第一變換向量的相應的第三部分與所述第二變換向量的相應的第三部分的內(nèi)積而得到的;以及
所述相加模塊用于在所述第一用戶設備處將所述第一內(nèi)積、第二內(nèi)積和一個或多個第三內(nèi)積相加,作為所述第一向量和第二向量的內(nèi)積。
12.根據(jù)權利要求7的裝置,還包括確定模塊,用于根據(jù)所述第一向量和第二向量的內(nèi)積確定所述第一用戶和第二用戶是否為相鄰用戶。
13.一種用于在網(wǎng)絡環(huán)境中向用戶推薦網(wǎng)絡資源的方法,包括以下步驟
在該用戶的兩個或更多個鄰居中的每一個鄰居的設備處對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量;
在所述每一個鄰居的設備處將所述變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量或其部分;
從所述每一個鄰居的設備處將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分;
在所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別計算所有變換向量的相應部分的和;
從所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備;
在所述用戶的設備處將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和;以及
在所述用戶的設備處對所有變換向量的和執(zhí)行逆變換,從而生成將向該用戶推薦的資源偏好向量。
14.根據(jù)權利要求13的方法,還包括
在所述用戶的設備處根據(jù)所生成的資源偏好向量中元素的值對該資源偏好向量中的元素進行排序,以便向該用戶推薦。
15.根據(jù)權利要求13的方法,還包括
在每一個鄰居的設備處對該鄰居的資源偏好向量執(zhí)行自同構的變換之前,將該鄰居的資源偏好向量乘以該鄰居與所述用戶之間的相似性權重。
16.根據(jù)權利要求13的方法,其中所述變換為二重離散余弦變換。
17.根據(jù)權利要求13的方法,還包括
該用戶的兩個或更多個鄰居的設備相互之間交換各自的原始資源偏好向量的長度或更大的長度;
在每個鄰居的設備處創(chuàng)建長度相同且等于或大于每個鄰居的原始資源偏好向量的長度之和的零元素向量;
在每個鄰居的設備處使用相同的散列函數(shù)根據(jù)該鄰居的原始資源偏好向量中各元素所屬的項目編號將各元素映射到所述零元素向量的相應位置,從而形成該鄰居的所述資源偏好向量以便進行所述自同構變換;以及
在所述用戶的設備處對所有變換向量的和執(zhí)行逆變換之后,將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián),以便向該用戶推薦。
18.根據(jù)權利要求17的方法,其中所述將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián)的步驟包括
在每個鄰居的設備處使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射為所述零元素向量中相應位置的“1”元素,從而生成項目編號出現(xiàn)向量;
在每個鄰居的設備處使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射到所述零元素向量中相應的位置,從而生成項目編號向量;
重復執(zhí)行權利要求13所述的各個步驟,其中以所述項目編號出現(xiàn)向量代替資源偏好向量,從而在所述用戶的設備處生成合成項目編號出現(xiàn)向量;
重復執(zhí)行權利要求13所述的各個步驟,其中以所述項目編號向量代替資源偏好向量,從而在所述用戶的設備處生成合成項目編號向量;
使用所述合成項目編號出現(xiàn)向量中的每一個非零元素除所述合成項目編號向量中的相應元素,從而生成反映了所述資源偏好向量中的各元素位置與項目編號之間的對應關系的最終項目編號向量;以及
通過所述最終項目編號向量將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián)。
19.一種用于在網(wǎng)絡環(huán)境中向用戶推薦網(wǎng)絡資源的系統(tǒng),包括
位于該用戶的兩個或更多個鄰居中的每一個鄰居的設備處的變換模塊,用于對該鄰居的資源偏好向量執(zhí)行自同構的變換,從而生成該鄰居的變換向量;
位于所述每一個鄰居的設備處的劃分模塊,用于將所述相應的變換向量以同樣方式劃分為兩個或更多個部分,其中由任何一個部分無法得出所述資源偏好向量或其部分;
位于所述每一個鄰居的設備處的發(fā)送模塊,用于將所述兩個或更多個部分中的每一個分別發(fā)送到所述用戶的設備、其他鄰居的設備或一個或多個其他設備處,或保留在該鄰居的設備處,從而使得所有鄰居的變換向量的相應的部分都存在于所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的相應的同一個設備處,并且除了在每一個鄰居的設備處所存在的該鄰居的變換向量外,在所述用戶的設備、所述兩個或更多個鄰居的設備以及所述一個或多個其他設備中的每一個處都不存在任何其他的變換向量的所有部分;
位于所述用戶的設備、所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的計算模塊,用于分別計算所有變換向量的相應部分的和;
位于所述每一個鄰居的設備或所述一個或多個其他設備中的每一個處的發(fā)送模塊,用于分別將所計算的所有變換向量的相應部分的和發(fā)送到所述用戶的設備;
位于所述用戶的設備處的集成模塊,用于將所計算的所有變換向量的所有相應部分的和集成為所有變換向量的和;以及
位于所述用戶的設備處的逆變換模塊,用于對所有變換向量的和執(zhí)行逆變換,從而生成所有鄰居的資源偏好向量的和,作為向該用戶推薦的資源偏好向量。
20.根據(jù)權利要求19的系統(tǒng),還包括
位于所述用戶的設備處的排序模塊,用于根據(jù)所生成的資源偏好向量中元素的值對該資源偏好向量中的元素進行排序,以便向該用戶推薦。
21.根據(jù)權利要求19的系統(tǒng),還包括
位于每一個鄰居的設備處的加權模塊,用于在對該鄰居的資源偏好向量執(zhí)行自同構的變換之前,將該鄰居的資源偏好向量乘以該鄰居與所述用戶之間的相似性權重。
22.根據(jù)權利要求19的系統(tǒng),其中所述變換為二重離散余弦變換。
23.根據(jù)權利要求19的系統(tǒng),還包括
位于每個鄰居的設備中的長度交換模塊,用于在該用戶的兩個或更多個鄰居的設備相互之間交換各自的原始資源偏好向量的長度或更大的長度;
位于每個鄰居的設備中的零元素向量創(chuàng)建模塊,用于創(chuàng)建長度相同且等于或大于每個鄰居的原始資源偏好向量的長度之和的零元素向量;
位于每個鄰居的設備中的散列模塊,用于使用相同的散列函數(shù)根據(jù)該鄰居的原始資源偏好向量中各元素所屬的項目編號將各元素映射到所述零元素向量的相應位置,從而形成該鄰居的所述資源偏好向量以便進行所述自同構變換;以及
位于所述用戶設備處的關聯(lián)模塊,用于對所有變換向量的和執(zhí)行逆變換之后,將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián),以便向該用戶推薦。
24.根據(jù)權利要求19的系統(tǒng),其中,
位于每個鄰居的設備處的所述散列模塊還用于使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射為所述零元素向量中相應位置的“1”元素,從而生成項目編號出現(xiàn)向量;
位于每個鄰居的設備處的所述散列模塊還用于使用所述散列函數(shù)將該鄰居的原始資源偏好向量中各元素所屬的項目編號映射到所述零元素向量中相應的位置,從而生成項目編號向量;
位于每一個鄰居的設備處的所述變換模塊、劃分模塊、發(fā)送模塊,位于所述用戶的設備、每一個鄰居的設備或所述一個或多個其他設備中的每一個處的計算模塊,位于每一個鄰居的設備或所述一個或多個其他設備中的每一個處的發(fā)送模塊,位于所述用戶的設備處的集成模塊、逆變換模塊,還用于以所述項目編號出現(xiàn)向量代替資源偏好向量執(zhí)行相應的功能,從而在所述用戶的設備處生成合成項目編號出現(xiàn)向量,以及以所述項目編號向量代替資源偏好向量執(zhí)行相應的功能,從而在所述用戶的設備處生成合成項目編號向量;
且該系統(tǒng)還包括位于所述用戶的設備處的除法模塊,用于使用所述合成項目編號出現(xiàn)向量中的每一個非零元素除所述合成項目編號向量中的相應元素,從而生成反映了所述資源偏好向量中的各元素位置與項目編號之間的對應關系的最終項目編號向量,且其中,所述關聯(lián)模塊通過所述最終項目編號向量將所生成的資源偏好向量中的元素與相應的項目編號相關聯(lián)。
全文摘要
公開了一種網(wǎng)絡環(huán)境的用戶信息處理的方法和裝置,該方法包括在第一和第二用戶設備處分別對表示與第一和第二用戶有關的信息的第一和第二向量進行正交變換,從而得到第一和第二變換向量;分別將其劃分為第一和第二部分,其中由第一或部分無法獲得第一或第二向量或其部分;第一用戶設備與第二用戶設備交換第一變換向量的第一部分與第二變換向量的第二部分;第一用戶設備和第二用戶設備分別計算兩個變換向量的第一部分的內(nèi)積與第二部分的內(nèi)積,并在相互交換后,分別將兩個內(nèi)積相加,作為第一向量和第二向量的內(nèi)積。還公開了一種用于在網(wǎng)絡環(huán)境中向用戶推薦資源的方法和系統(tǒng)。
文檔編號G06Q30/00GK101819570SQ200910118068
公開日2010年9月1日 申請日期2009年2月27日 優(yōu)先權日2009年2月27日
發(fā)明者張夏天, 趙石頑, 王濤, 袁泉, 傅榮耀, 高偉 申請人:國際商業(yè)機器公司