TWI712963B - 推薦系統建構方法及裝置 - Google Patents
推薦系統建構方法及裝置 Download PDFInfo
- Publication number
- TWI712963B TWI712963B TW107140998A TW107140998A TWI712963B TW I712963 B TWI712963 B TW I712963B TW 107140998 A TW107140998 A TW 107140998A TW 107140998 A TW107140998 A TW 107140998A TW I712963 B TWI712963 B TW I712963B
- Authority
- TW
- Taiwan
- Prior art keywords
- item
- user
- neighbor
- gradient value
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
揭示了一種推薦系統建構方法及裝置。應用於包含多個用戶的系統,在任意用戶的用戶端,保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解。
Description
本說明書實施例係有關大數據處理技術領域,尤其有關一種推薦系統建構方法及裝置。
在大數據時代,透過對大量資料進行挖掘,可以形成訓練樣本,並且進一步訓練出各種形式的資料模型。在現有技術中,通常的實現方案是在服務端集中儲存訓練樣本並且在服務端進行模型訓練。而這種集中式訓練的方式至少存在以下弊端:一方面,傳統的資料模型訓練方案已經難以滿足隱私保護的需求:首先,用戶的私人資料需要上傳至服務端進行集中處理,這對於一部分用戶而言已經十分敏感。即便服務端不會主動濫用或洩露用戶隱私,也仍然存在服務端被攻擊從而導致資料批量洩露的隱患。
另一方面,基於大數據的模型訓練,對於儲存及計算資源的需求非常龐大,而且隨著機器學習技術的推廣,訓練所採用的資料量和模型複雜度都是處於持續提升的趨勢,僅依靠提升伺服器的性能或數量,已經越來越難以滿足大數據模型訓練的需求。
針對上述技術問題,本說明書實施例提供一種推薦系統建構方法及裝置,技術方案如下:一種推薦系統建構方法,應用於包含多個用戶的系統,在任意用戶的用戶端,保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解,所述方法包括:在任一用戶端,利用以下步驟進行迭代處理,直到滿足預設的迭代停止條件:根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;接收鄰居用戶端發送的鄰居品目梯度值,所述鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;迭代結束後,輸出最新的用戶偏好向量及品目特徵向量。
一種推薦系統建構裝置,應用於包含多個用戶的系統,所述裝置配置於任意用戶的用戶端,用以保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解:
所述裝置利用以下模組配合實現迭代處理,直到滿足預設的迭代停止條件:
本地梯度值計算模組,用以根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;
第一更新模組,用以利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;
協同資訊發送模組,用以根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;
協同資訊接收模組,用以接收鄰居用戶端發送的鄰居品目梯度值,所述鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;
第二更新模組,用以利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;
輸出模組,用以在迭代結束後,輸出最新的用戶偏好向量及品目特徵向量。
本說明書實施例所提供的技術方案,在推薦系統建構階段和推薦系統使用階段,涉及用戶隱私的資料均可以僅在用戶端本地保存,既不會上傳給服務端,也不會傳播給其他用戶端,有效地提升的用戶數的私密性及安全性。另外,在訓練過程中,每個用戶端作為分散式的計算節點,可以有效解決集中式訓練對於服務端處理性能的依賴問題,並且,由於各個用戶端可以各自並行進行訓練,也能夠改善整體的訓練效率。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本說明書實施例。
此外,本說明書實施例中的任一實施例並不需要達到上述的全部效果。
為了使本領域技術人員更佳地理解本說明書實施例中的技術方案,下面將結合本說明書實施例中的附圖,對本說明書實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本說明書的一部分實施例,而不是全部的實施例。基於本說明書中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬於保護的範圍。
推薦系統(Recommend System,RS)的功能可以描述為:為用戶(User)推薦符合其需求的品目(Item),這裡的“品目”是一個廣義的定義,在不同的應用場景中,可能對應不同的實際含義,例如一個Item可以表示一件商品、一條新聞、一首歌曲、一家餐廳、或者一名其他用戶等。在推薦系統中,最重要的是用戶對品目的打分資料,其資料形式如下表所示:
如表1所示,User1~User5表示的是5個不同的用戶,Item1~ Item4表示的是4個不同的品目,這樣便構成了用戶-品目評分矩陣,定義該矩陣為R,其中,任一元素表示第i個用戶對第j個品目的評分,該評分表示用戶對品目的喜好程度,可以透過用戶對品目的行為歷史(如點擊,購買等)獲得。在表1中,已經對評分做了歸一化處理,映射至[0, 1]區間,其中“-”表示無法獲得該對應的用戶i對品目j的評分,推薦系統中,有一類問題就是對評分矩陣中缺失的進行預測。
矩陣分解是指將一個矩陣分解成兩個或者多個矩陣的乘積,對於上述的評分矩陣,假設用戶總數為I,品目總數為J,則矩陣R可記為RI×J
。根據矩陣乘法定義,可以將RI×J
分解為兩個矩陣的乘積:
上述的數值K可以理解為:利用K個維度來描述一件品目的K方面特性(這K方面特性並不必須對應現實中的含義)。那麼:
對於矩陣UI×K
,其包含了I個K維向量,任一表示用戶i針對這個K方面的偏好向量;
對於矩陣VK×J
,其包含了J個K維向量,任一表示品目j針對這個K方面的特徵向量。
在已知和的情況下,根據下式即可計算得到的值:
可見,如果能夠求解出兩個矩陣UI×K
和VK×J
中的每一個元素,就可以計算出矩陣R中任意的值,相當於建構出了一個可以計算任意“用戶i-品目j”的推薦系統。又由於有一部分的值是已知的,因此該求解問題可以進一步轉化為機器學習問題:初始化兩個矩陣UI×K
和VK×J
,透過迭代訓練對兩個矩陣的元素值進行更新,當更新得到的UI×K
和VK×J
的乘積能夠還原RI×J
(即與RI×J
足夠接近)時,即可認為完成分解任務。
一種可用的方案是利用集中式的訓練實現矩陣分解:服務端首先從各用戶處獲取所有已知的值,形成完整的矩陣RI×J
(這裡的完整是指包含所有的已知元素值,但矩陣本身仍然是稀疏的),然後在服務端進行統一的迭代處理,最終得到的UI×K
和VK×J
也都儲存在服務端,該方案架構示意圖可參見圖1所示。
在上述方案中,每個用戶i的已知以及實際上都屬於用戶i的個人資料,從保護隱私的需求角度,用戶個人自然是不希望將這些資料上傳至服務端的,如果服務端被攻擊導致資料批量洩露,則會造成更嚴重的損失。另外,在實際應用中,無論是用戶總量I還是品目總量J都是十分龐大的,這對服務端的處理能力也提出了很高的要求。
針對上述問題,另一種可用的方案是利用分散式訓練實現矩陣分解:每個用戶i在自己的用戶端中進行訓練,得到屬於自己的和,在整個訓練過程中,包含隱私資訊的和可以始終被儲存在用戶設備本地,不需要向服務端上傳,也不需要發送給其他設備對外發送,從而有效地確保了資料的私密性。另外,由於整個訓練過程是不需要服務端的,因此本質上是一種去中心化式的訓練方案,該方案架構示意圖可參見圖2所示。
在分散式訓練方案中,每個用戶端相當於一個計算節點,對於任意用戶i,其用戶端本地需要儲存的資料包括:
該用戶對品目j的已知評分,其中,j=1,2,…J;
該用戶的用戶偏好向量;
品目特徵向量,其中,j=1,2,…J;
這裡需要說明的是,儘管理論上品目特徵向量是與用戶無關的,但是在分散式的訓練方案中,各用戶端分別使用不同的資料進行訓練,因此各自得到的品目特徵向量是會存在差異的,因此這裡以上標i來區分儲存於不同用戶端的,表示為“”。那麼對於任意用戶i,存在以下關係:
對比式(3)與式(2)可以看出,在分散式訓練方案中,對不同用戶的做了區分處理。對於用戶i而言,並不屬於隱私資料,但是每次更新得到的會包含根據用戶i本地資料所學習到的資訊,因此在訓練過程中,不同的用戶之間可以利用進行資訊交換,從而使得用戶端之間能夠在不傳播隱私資料的前提下實現相互學習。以下將對訓練過程做進一步的詳細說明:
在訓練過程中,需要使用損失函數loss function(也稱成本函數cost function、目標函數objective function)對訓練結果進行評價,成本函數可以用L(,)表示,L(,)是一個關於與的函數,亦即:
總體來說L(,)是一個用來表徵預測值與標籤值之間差異的函數,L(,)的值越小,說明對已知的擬合效果越好(最理想的情況的是損失函數值為0)。因此,可以將訓練的過程理解為一個“尋找一組、,使得損失函數L(,)達到最小”的過程。在實際應用中,損失函數的可用形式有很多,例如均方差函數、交差熵函數、hinge loss函數等等,在本說明書中,並不對損失函數的具體形式進行限定。
為了找到損失函數J(w)的最小值,常用的方法是採用梯度下降法(Gradient Descent),即根據形如:
的更新公式,對進行迭代更新,直到找到一組、使得損失函數L(,)達到最小(或足夠小)為止。其中,為設定的學習率,為損失函數關於用戶的梯度值,損失函數關於品目的梯度值。
在分散式的訓練方案中,為了使用戶端之間相互學習,每個用戶端在得到自己的品目梯度值後,將該品目梯度值傳遞給其他用戶,同時也會接收到其他用戶傳遞來的品目梯度值;進而,每個用戶繼續利用其他用戶傳遞來的品目梯度值更新自己的品目特徵向量。
假設有用戶i1
和用戶i2
,用戶i1
得到自己的後,將傳遞給用戶i2
,用戶i2
收到後,根據繼續使用梯度下降法更新:
由式(5)、(6)、(7)可以看出,每個用戶i的用戶端作為計算節點,在對進行更新時僅利用自己的資料,在對時既使用自己的資料、也使用其他節點傳來的資料。從整體來看,各個用戶端協同完成訓練,在訓練過程中,不同用戶端之間僅傳播品目梯度值,這樣既不會導致隱私洩露,又使得用戶端之間能夠互通學習結果。
在訓練過程中,理論上任意兩個用戶端都可以進行協同,因此協同方案也可以根據需求靈活設計,舉例如下:
全域協同:如果共有I名用戶,那麼對於任意的用戶i,可以把自己的品目梯度值發送給其他(I-1)名用戶,同時也會接收到其他(I-1)名用戶發送的品目梯度值。
分組協同:將I名用戶按照一定的規則劃分為若干用戶組,每個用戶組內分別採用上述的全域協同方式進行訓練。分組的依據可以是例如用戶地理位置、用戶性別、用戶年齡等各種用戶屬性,本說明書對此並不進行限定。
鄰接協同:對於任意的用戶i,僅與鄰近的N名其他用戶進行協同,這裡的“鄰近”是一個廣義的概念,既可以是基於真實的用戶地理位置距離確定,也可以基於某種邏輯上的距離確定,例如用戶設備間的通訊成本、用戶編號關聯性、用戶屬性相似性等等。其中,N既可以是固定數值,例如令N=2;也可以是根據距離閾值要求所動態確定的數值,例如與用戶i的距離在某個閾值之內的所有用戶。
根據大數據的訓練思想,從整體上來看,利用不同資料進行更新的順序並不會對訓練結果造成影響,因此在傳播路徑方面,對於任意的用戶i1
和用戶i2
,既可以互相傳播最新的品目梯度值,也可以將傳播路徑設定為單向。具體的傳播路徑形式可以是網狀、環型、星型等,本說明書對此不做限定。
在資料使用方面,對於任意的用戶i,如果能夠接收到多名其他用戶發送的品目梯度,既可以使用所有的其他用戶的品目梯度參與更新運算,也可以使用其中的部分品目梯度值參與更新運算,例如,一種特殊情況是:在每輪迭代中,隨機選取一個其他用戶的品目梯度值參與更新運算,其思路與隨機梯度下降法(stochastic gradient descent)近似,此外還可以使用其他更新策略,例如:使用前n個(其中,n≤N)最先接收到的品目梯度值參與更新運算、按照預設的輪詢策略每次選擇不同的一個或多個其他用戶發送來的品目梯度值參與更新運算,等等。
下面結合一個具體的實例,對本說明書實施例的方案進行說明:
假設在一個商品推薦系統中,根據用戶的歷史行為,例如點擊、購買等,可以獲得部分用戶對於部分商品的打分,其中,用戶i的對於商品j的評分用表示,分值區間為[0,1],評分矩陣是稀疏的,一般只有一部分是已知的,訓練的目標是建構可以預測其中的未知部分的推薦系統。
在去中心化式的矩陣分解方法中,資料和模型都被儲存在自己的設備上,例如PC、手機等,不向服務端上傳。對於任意用戶i,其用戶端本地需要儲存的資料包括:
該用戶對品目j的已知評分,其中,j=1,2,…J;
該用戶的用戶偏好向量;
商品特徵向量,其中,j=1,2,…J;
其中和均為實數向量,取值範圍為[-1, 1],即,其中,K為矩陣分解的向量維度。
定義損失函數為:
該成本函數可分為兩部分:第一部分是預測值與標籤值的均方差,第二部分是標準化項,λ是約束係數,由損失函數的定義可知:如果要最小化這個函數,需要令標準化項足夠小,而當λ取值較大時,就需要令各個參數值足夠小。事實上,這些參數的值越小,通常對應於越光滑的函數,也就是更加簡單的函數,因此就不易發生過擬合的問題。
根據式(7)對和分別求導,即可得到成本函數對用戶的梯度和對品目的梯度,以下簡稱用戶梯度和品目梯度:
注意由於存在共J種品目,因此對於任意用戶i而言,兩個梯度實際上均可以表示為向量,即j=1,2,…J。
在協同方案上,根據用戶端目前所處的地理位置,定義“距離自身最近的N個用戶端”為鄰居,其中,N為固定值,例如取N=5、N=10等,對於任意用戶端i,在每輪迭代更新中,將利用本地資料計算得到的品目梯度值發送至N個鄰居,並且接收這N個鄰居發送來的品目梯度值。
整個訓練過程演算法描述如下:
輸入:已知評分,學習率,用戶鄰接資訊,標準化項參數λ,迭代次數T(可選);
輸出:和;
對於任意用戶i,執行以下操作:
S101,初始化用戶偏好向量和品目特徵向量;
S102,計算本地用戶梯度值和本地品目梯度值;
根據式(8)、(9)來進行計算。
S103,利用對進行更新、利用對進行更新;
根據式(5)、(6)來進行計算。
S104,將本地品目梯度值發送至鄰居用戶端;
以i 鄰
表示用戶i的鄰居用戶,在本實施例中每個用戶i的鄰居數量固定為N,即i 鄰
∈{1,2…,N}。
需要說明的是,在整個訓練過程中,對於任意用戶i,其鄰居用戶可以是動態變化的,例如根據地理位置距離所確定的鄰居用戶,如果用戶的地理位置發生變化,則用戶間的鄰接關係也會發生變化,但是這對全域的訓練並不會造成影響。
S105,接收鄰居用戶端發送的鄰居品目梯度值;
對應於S104,在本實施例中接收上述N個鄰居發送的最新梯度值。
當然,在實際應用中,S104中接收本地品目梯度值的鄰居用戶端、與S105中發送鄰居品目梯度值的鄰居用戶端,可以是相同或不同的用戶端集合。
S106,利用對進行更新;
根據式(7)來進行計算,在本實施例中,使用一般的梯度下降法,也就是說在每輪迭代中都利用N個鄰居發送來的梯度值,對共更新N次。
S107,判斷是否滿足結束迭代停止條件,如果是則輸出最新的和,否則返回S102;
從圖3提供的流程圖可以看出,S102至S106為迭代處理步驟,這裡的迭代停止條件可以是達到某個預設的迭代次數T,也可以是滿足某種收斂條件,例如損失函數值足夠小、兩次迭代結果足夠接近,等等。不同用戶端的實際迭代次數可以相同也可以不同,本說明書對此不進行限定。
可以理解的是,根據大數據的訓練思想,從整體上來看,利用不同資料進行更新的順序並不會對訓練結果造成影響,而S102至S103、S105至S106分別是利用不同的資料進行更新,因此這兩部分操作的先後順序並不需要進行限定。例如,如圖4所示的流程,在每輪迭代中,也可以先使用鄰居梯度值(可以是上一輪迭代接收到的)進行更新,然後再使用本地梯度值進行更新。
根據以上訓練,得到任意用戶i的和後,相當於完成了針對該用戶i推薦系統的建構,如果想預測未知的“用戶i-商品j”評分,便可根據根據式(3)來進行計算。假設K=3,透過訓練得到學到某用戶的偏好向量為[-0.23, 0.89, 0.22]、學到某商品的特徵向量為[-0.03, 0.56, -0.12],那麼根據式(3),可以得到用戶對該商品的評分為預測值為0.4789。由於和均儲存於用戶端本地,因此該預測計算過程同樣不需要依賴於服務端。
可以看出,應用上述方案,在推薦系統建構和推薦系統使用階段,涉及用戶隱私的資料均可以僅在用戶端本地保存,既不會上傳給服務端,也不會傳播給其他用戶端,有效地提升的用戶數的私密性及安全性。另外,在訓練過程中,每個用戶端作為分散式的計算節點,可以有效解決集中式訓練對於服務端處理性能的依賴問題,並且,由於各個用戶端可以各自並行進行訓練,也能夠改善整體的訓練效率。
相應於上述方法實施例,本說明書實施例還提供一種矩陣分解裝置,該裝置係配置於任意用戶的用戶端,用以保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解。
參見圖5所示,該裝置利用以下模組配合實現迭代處理,直到滿足預設的迭代停止條件:
本地梯度值計算模組110,用以根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;
第一更新模組120,用以利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;
協同資訊發送模組130,用以根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;
協同資訊接收模組140,用以接收鄰居用戶端發送的鄰居品目梯度值,鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;
第二更新模組150,用以利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;
輸出模組160,用以在迭代結束後,輸出最新的用戶偏好向量及品目特徵向量。
根據本說明書提供的一種具體實施方式,預設的鄰接關係,可以包括:根據用戶端的之間的距離所確定的鄰接關係,距離包括地理位置距離或邏輯距離。
根據本說明書提供的一種具體實施方式,鄰居用戶端可以是系統用戶端中的全部或部分用戶端。
根據本說明書提供的一種具體實施方式,在任一輪迭代中,在接收到多個鄰居品目梯度值的情況下,第二更新模組150可以利用多個鄰居品目梯度值中的全部或部分梯度值,對品目特徵向量進行更新。
根據本說明書提供的一種具體實施方式,接收本地品目梯度值的鄰居用戶端、與發送鄰居品目梯度值的鄰居用戶端,為相同或不同的用戶端集合。
本說明書實施例還提供一種由多個配置了上述矩陣分解裝置的用戶端所構成的矩陣分解系統。
本說明書實施例還提供一種電腦設備,其至少包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,處理器執行所述程式時實現前述的矩陣分解方法。該方法至少包括:
一種矩陣分解方法,在任意用戶的用戶端,保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解,所述方法包括:
在任一用戶端,利用以下步驟進行迭代處理,直到滿足預設的迭代停止條件:
根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;
利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;
根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;
接收鄰居用戶端發送的鄰居品目梯度值,所述鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;
利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;
迭代結束後,輸出最新的用戶偏好向量及品目特徵向量。
圖6示出了本說明書實施例所提供的一種更為具體的計算設備硬體結構示意圖,該設備可以包括:處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040和匯流排1050。其中,處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040透過匯流排1050實現彼此之間在設備內部的通訊連接。
處理器1010可以採用通用的CPU(Central Processing Unit,中央處理器)、微處理器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、或者一個或多個積體電路等方式來實現,用來執行相關程式,以實現本說明書實施例所提供的技術方案。
記憶體1020可以採用ROM(Read Only Memory,唯讀記憶體)、RAM(Random Access Memory,隨機存取記憶體)、靜態儲存裝置,動態儲存裝置設備等形式來實現。記憶體1020可以儲存作業系統和其他應用程式,在透過軟體或者韌體來實現本說明書實施例所提供的技術方案時,相關的程式碼被保存在記憶體1020中,並由處理器1010來調用執行。
輸入/輸出介面1030用來連接輸入/輸出模組,以實現資訊輸入及輸出。輸入輸出/模組可以作為元件而被配置在設備中(圖中未示出),也可以外接於設備以提供相應功能。其中,輸入裝置可以包括鍵盤、滑鼠、觸控式螢幕、麥克風、各類感測器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。
通訊介面1040用來連接通訊模組(圖中未示出),以實現本設備與其他設備的通訊互動。其中,通訊模組可以透過有線方式(例如,USB、網線等)來實現通訊,也可以透過無線方式(例如,移動網路、WIFI、藍牙等)來實現通訊。
匯流排1050包括一通路,在設備的各個元件(例如,處理器1010、記憶體1020、輸入/輸出介面1030和通訊介面1040)之間傳輸資訊。
需要說明的是,儘管上述設備僅示出了處理器1010、記憶體1020、輸入/輸出介面1030、通訊介面1040以及匯流排1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他元件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部元件。
本說明書實施例還提供一種電腦可讀儲存媒體,其上儲存有電腦程式,該程式被處理器執行時實現前述的矩陣分解方法。該方法至少包括:
一種矩陣分解方法,在任意用戶的用戶端,保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解,所述方法包括:
在任一用戶端,利用以下步驟進行迭代處理,直到滿足預設的迭代停止條件:
根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;
利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;
根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;
接收鄰居用戶端發送的鄰居品目梯度值,所述鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;
利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;
迭代結束後,輸出最新的用戶偏好向量及品目特徵向量。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性儲存裝置或任何其他非傳輸媒體,可用來儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括暫態性電腦可讀媒體(transitory media),如調變的資料信號和載波。
透過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本說明書實施例可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本說明書實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以被儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本說明書實施例各個實施例或者實施例的某些部分所述的方法。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
本說明書中的各個實施例均採用漸進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置實施例而言,由於其基本上類似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中,所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,在實施本說明書實施例方案時可以把各模組的功能在同一個或多個軟體和/或硬體中實現。也可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅是本說明書實施例的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本說明書實施例原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本說明書實施例的保護範圍。
110‧‧‧本地梯度值計算模組
120‧‧‧第一更新模組
130‧‧‧協同資訊發送模組
140‧‧‧協同資訊接收模組
150‧‧‧第二更新模組
160‧‧‧輸出模組
1010‧‧‧處理器
1020‧‧‧記憶體
1030‧‧‧輸入/輸出介面
1040‧‧‧通訊介面
1050‧‧‧匯流排
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書實施例中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖而獲得其他的附圖。
圖1是集中式矩陣分解系統的架構示意圖;
圖2是分散式矩陣分解系統的架構示意圖;
圖3是本說明書實施例的第一種推薦系統建構方法的流程圖;
圖4是本說明書實施例的第二種推薦系統建構方法的流程圖;
圖5是本說明書實施例的推薦系統建構裝置的結構示意圖;
圖6是用於配置本說明書實施例裝置的一種設備的結構示意圖。
Claims (10)
- 一種推薦系統建構方法,應用於包含多個用戶的系統,在任意用戶的用戶端,保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解,該方法包括:在任一用戶端,利用以下步驟進行迭代處理,直到滿足預設的迭代停止條件:根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;利用本地用戶梯度值對用戶偏好向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;接收鄰居用戶端發送的鄰居品目梯度值,該鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;以及迭代結束後,輸出最新的用戶偏好向量及品目特徵向量,其中,該預設的鄰接關係包括根據用戶端的之間的距離所確定的鄰接關係,該距離包括地理位置距離或邏輯距離。
- 根據請求項1所述的方法,該鄰居用戶端為:系統用戶端中的全部或部分用戶端。
- 根據請求項1所述的方法,在任一輪迭代中,在接收到多個鄰居品目梯度值的情況下,該利用所接收到的鄰居品目梯度值對品目特徵向量進行更新,包括:利用多個鄰居品目梯度值中的全部或部分梯度值,對品目特徵向量進行更新。
- 根據請求項1所述的方法,接收本地品目梯度值的鄰居用戶端、與發送鄰居品目梯度值的鄰居用戶端,為相同或不同的用戶端集合。
- 一種推薦系統建構裝置,應用於包含多個用戶的系統,該裝置係配置於任意用戶的用戶端,用以保存該用戶對品目的評分資訊、該用戶的用戶偏好向量、品目特徵向量,多個用戶端以協同方式訓練實現矩陣分解:該裝置利用以下模組配合實現迭代處理,直到滿足預設的迭代停止條件:本地梯度值計算模組,用以根據目前的用戶偏好向量來計算本地用戶梯度值、根據目前的品目特徵向量來計算本地品目梯度值;第一更新模組,用以利用本地用戶梯度值對用戶偏好 向量進行更新、利用本地品目梯度值對品目特徵向量進行更新;協同資訊發送模組,用以根據預設的鄰接關係,將本地品目梯度值發送至鄰居用戶端;協同資訊接收模組,用以接收鄰居用戶端發送的鄰居品目梯度值,該鄰居品目梯度值為:在鄰居用戶端計算得到的鄰居用戶端本地品目梯度值;第二更新模組,用以利用所接收到的鄰居品目梯度值對品目特徵向量進行更新;以及輸出模組,用以在迭代結束後,輸出最新的用戶偏好向量及品目特徵向量,其中,該預設的鄰接關係包括根據用戶端的之間的距離所確定的鄰接關係,該距離包括地理位置距離或邏輯距離。
- 根據請求項5所述的裝置,該鄰居用戶端為:系統用戶端中的全部或部分用戶端。
- 根據請求項5所述的裝置,在任一輪迭代中,在接收到多個鄰居品目梯度值的情況下,該第二更新模組具體用以:利用多個鄰居品目梯度值中的全部或部分梯度值,對品目特徵向量進行更新。
- 根據請求項5所述的裝置,接收本地品目梯度值的鄰居用戶端、與發送鄰居品目梯度值的鄰居用戶端,為相同或不同的用戶端集合。
- 一種推薦系統建構系統,包括多個配置了如請求項5至8中任一項所述之推薦系統建構裝置的用戶端。
- 一種電腦設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的電腦程式,其中,該處理器執行該程式時實現如請求項1至4中任一項所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810174727.X | 2018-03-02 | ||
CN201810174727.XA CN108520303A (zh) | 2018-03-02 | 2018-03-02 | 一种推荐系统构建方法及装置 |
??201810174727.X | 2018-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201939366A TW201939366A (zh) | 2019-10-01 |
TWI712963B true TWI712963B (zh) | 2020-12-11 |
Family
ID=63433489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107140998A TWI712963B (zh) | 2018-03-02 | 2018-11-19 | 推薦系統建構方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11551110B2 (zh) |
EP (1) | EP3695368A1 (zh) |
CN (1) | CN108520303A (zh) |
SG (1) | SG11202004909YA (zh) |
TW (1) | TWI712963B (zh) |
WO (1) | WO2019169266A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108520303A (zh) | 2018-03-02 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种推荐系统构建方法及装置 |
CN109952582B (zh) * | 2018-09-29 | 2023-07-14 | 区链通网络有限公司 | 一种强化学习模型的训练方法、节点、系统及存储介质 |
CN109690530A (zh) * | 2018-11-29 | 2019-04-26 | 袁振南 | 模型训练方法及其节点、网络及存储装置 |
CN110020883A (zh) * | 2018-12-12 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种对评分矩阵中的未知评分进行预测的方法及装置 |
RU2702980C1 (ru) * | 2018-12-14 | 2019-10-14 | Самсунг Электроникс Ко., Лтд. | Распределённое обучение моделей машинного обучения для персонализации |
CN110046258B (zh) * | 2019-03-08 | 2023-07-11 | 创新先进技术有限公司 | 用于确定针对实体的用户关联度量值的方法及装置 |
CN110196944B (zh) * | 2019-05-07 | 2021-06-01 | 深圳前海微众银行股份有限公司 | 一种序列化信息的推荐方法及装置 |
CN110175283B (zh) * | 2019-05-10 | 2021-04-13 | 深圳前海微众银行股份有限公司 | 一种推荐模型的生成方法及装置 |
CN112183565B (zh) * | 2019-07-04 | 2023-07-14 | 创新先进技术有限公司 | 模型训练方法、装置及系统 |
CN113077058B (zh) * | 2019-10-23 | 2022-07-15 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN110807153A (zh) * | 2019-11-06 | 2020-02-18 | 深圳墨世科技有限公司 | 基于增量更新的推荐方法、装置、计算机设备及存储介质 |
CN110874471B (zh) * | 2019-11-19 | 2021-02-23 | 支付宝(杭州)信息技术有限公司 | 保护隐私安全的神经网络模型的训练方法和装置 |
US12088565B2 (en) * | 2019-12-13 | 2024-09-10 | Triplelind Holdings, Inc. | Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data |
CN111079947B (zh) * | 2019-12-20 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 一种基于可选隐私数据进行模型训练的方法及系统 |
CN113593607B (zh) * | 2020-04-30 | 2024-07-30 | 广州欢城文化传媒有限公司 | 一种音频处理方法、装置及电子设备 |
US11822447B2 (en) | 2020-10-06 | 2023-11-21 | Direct Cursus Technology L.L.C | Methods and servers for storing data associated with users and digital items of a recommendation system |
CN112328646B (zh) * | 2021-01-04 | 2021-04-06 | 平安科技(深圳)有限公司 | 多任务课程推荐方法、装置、计算机设备及存储介质 |
CN113269610A (zh) * | 2021-05-25 | 2021-08-17 | 索信达(北京)数据技术有限公司 | 银行产品的推荐方法、装置及存储介质 |
CN113642740B (zh) * | 2021-08-12 | 2023-08-01 | 百度在线网络技术(北京)有限公司 | 模型训练方法及装置、电子设备和介质 |
US11748431B2 (en) * | 2021-12-23 | 2023-09-05 | Atlassian Pty Ltd. | System and graphical user interface for generating document space recommendations for an event feed of a content collaboration platform |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201248534A (en) * | 2011-05-18 | 2012-12-01 | Alibaba Group Holding Ltd | Method and system of recommending items |
WO2017178870A1 (en) * | 2016-04-15 | 2017-10-19 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for client-side model training in recommender systems |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617164B2 (en) * | 2006-03-17 | 2009-11-10 | Microsoft Corporation | Efficiency of training for ranking systems based on pairwise training with aggregated gradients |
US7685232B2 (en) * | 2008-06-04 | 2010-03-23 | Samsung Electronics Co., Ltd. | Method for anonymous collaborative filtering using matrix factorization |
US8631044B2 (en) | 2008-12-12 | 2014-01-14 | The Trustees Of Columbia University In The City Of New York | Machine optimization devices, methods, and systems |
HUP1000408A2 (en) * | 2010-07-30 | 2012-03-28 | Gravity Res & Dev Kft | Recommender systems and methods |
US9110955B1 (en) | 2012-06-08 | 2015-08-18 | Spotify Ab | Systems and methods of selecting content items using latent vectors |
TW201441961A (zh) | 2013-04-22 | 2014-11-01 | Si-Zhou Peng | 擴增實境技術開發之智慧型綠建築推薦系統及方法 |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US20180089587A1 (en) * | 2016-09-26 | 2018-03-29 | Google Inc. | Systems and Methods for Communication Efficient Distributed Mean Estimation |
CN106846106A (zh) * | 2017-01-16 | 2017-06-13 | 南京师范大学 | 一种图构建框架下的矩阵分解推荐方法 |
US11367150B2 (en) * | 2017-01-23 | 2022-06-21 | Meta Platforms, Inc. | Demographic-based targeting of electronic media content items |
US10338767B2 (en) | 2017-04-18 | 2019-07-02 | Facebook, Inc. | Real-time delivery of interactions in online social networking system |
CN108520303A (zh) | 2018-03-02 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种推荐系统构建方法及装置 |
-
2018
- 2018-03-02 CN CN201810174727.XA patent/CN108520303A/zh active Pending
- 2018-11-19 TW TW107140998A patent/TWI712963B/zh active
-
2019
- 2019-03-01 SG SG11202004909YA patent/SG11202004909YA/en unknown
- 2019-03-01 EP EP19711483.8A patent/EP3695368A1/en not_active Withdrawn
- 2019-03-01 WO PCT/US2019/020288 patent/WO2019169266A1/en active Search and Examination
- 2019-03-01 US US16/290,208 patent/US11551110B2/en active Active
- 2019-12-23 US US16/725,589 patent/US10902332B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201248534A (en) * | 2011-05-18 | 2012-12-01 | Alibaba Group Holding Ltd | Method and system of recommending items |
WO2017178870A1 (en) * | 2016-04-15 | 2017-10-19 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for client-side model training in recommender systems |
Also Published As
Publication number | Publication date |
---|---|
US10902332B2 (en) | 2021-01-26 |
WO2019169266A1 (en) | 2019-09-06 |
SG11202004909YA (en) | 2020-06-29 |
EP3695368A1 (en) | 2020-08-19 |
US20200134490A1 (en) | 2020-04-30 |
CN108520303A (zh) | 2018-09-11 |
US11551110B2 (en) | 2023-01-10 |
US20190272472A1 (en) | 2019-09-05 |
TW201939366A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI712963B (zh) | 推薦系統建構方法及裝置 | |
US10430464B1 (en) | Scalable graph propagation for knowledge expansion | |
US11386212B2 (en) | Secure multi-party computation with no trusted initializer | |
TWI713841B (zh) | 基於共享資料的模型訓練方法及裝置 | |
US9444846B2 (en) | Methods and apparatuses for trust computation | |
CN110335112B (zh) | 一种产品推荐方法、装置及计算机存储介质 | |
US20150324711A1 (en) | Association-based product design | |
Park et al. | A comparative study of matrix factorization and random walk with restart in recommender systems | |
Mashal et al. | Testing and evaluating recommendation algorithms in internet of things | |
Singh et al. | IM‐SSO: Maximizing influence in social networks using social spider optimization | |
CN109376287B (zh) | 房产图谱构建方法、装置、计算机设备及存储介质 | |
Xu et al. | MeURep: A novel user reputation calculation approach in personalized cloud services | |
Groeneboom et al. | Estimation in monotone single‐index models | |
US20220138605A1 (en) | Recommendation system | |
US11979309B2 (en) | System and method for discovering ad-hoc communities over large-scale implicit networks by wave relaxation | |
Li et al. | Algebraic criteria for consensus problems of continuous-time networked systems | |
Fu et al. | Using NearestGraph QoS prediction method for service recommendation in the cloud | |
US20220182857A1 (en) | Global and local measures of centrality for signed and unsigned networks | |
Li et al. | Genetic algorithm and graph theory based matrix factorization method for online friend recommendation | |
Dhanalakshmi et al. | A new method for centrality measurement using generalized fuzzy graphs | |
Pop et al. | Adaptive method to support social‐based mobile networks using a pagerank approach | |
Guo et al. | Blockchain and federated learning based data security sharing mechanism over smart city | |
US11514125B1 (en) | Multi-objective ranking of search results | |
CN109919790A (zh) | 集群类型识别方法、装置、电子设备及存储介质 | |
Banerji et al. | Auction inspired service replication for context‐aware IoT environment |