本發明涉及系統推薦技術領域,具體涉及一種基于GRU神經網絡的推薦方法及系統。
背景技術:
當前,網絡服務商為用戶提供了諸如新聞、商品、圖片、視頻、音頻、文檔等(以下統一簡稱為物品)的在線服務。為了更好的為用戶提供服務,服務提供商會記錄用戶的歷史行為,例如記錄用戶購買(使用)過哪些物品、對物品的評價、點擊、轉發、評論等。如何有效利用記錄的用戶歷史行為,為用戶提供準確的推薦,是推薦系統面臨的重大挑戰,主要表現在:
第一,雖然用戶歷史行為有助于了解用戶偏好,并為用戶推薦物品提供了重要信息。但是多種多樣的用戶行為具有諸多不同的含義。如何合理利用這些信息是推薦系統面臨的重要問題。
第二,用戶行為發生的時間順序反映了用戶偏好的變化過程,也是推薦系統需要考慮的重要因素,需要加以合理利用。
因此,如何有效的利用記錄的多種用戶行為,為用戶提供準確的推薦,是本領域人員急待解決的問題。
技術實現要素:
有鑒于此,有必要提供一種能夠有效的利用記錄的多種用戶行為從而為用戶提供準確推薦的方法及系統。
一種基于GRU神經網絡的推薦方法,所述基于GRU神經網絡的推薦方法包括以下步驟:
S1、收集用戶對物品的歷史行為,并建立GRU神經網絡;
S2、按照行為發生時間對每一個用戶記錄的歷史行為進行先后排序;并針對每一個用戶生成相應的訓練樣本;
S3、根據訓練樣本對GRU神經網絡進行訓練,確定GRU神經網絡中的權重矩陣;
S4、根據訓練后的GRU神經網絡為每一個用戶生成推薦列表。
一種基于GRU神經網絡的推薦系統,所述基于GRU神經網絡的推薦系統包括以下功能模塊:
用戶行為收集模塊,用于收集用戶對物品的歷史行為,并建立GRU神經網絡;
訓練樣本生成模塊,用于按照行為發生時間對每一個用戶記錄的歷史行為進行先后排序;并針對每一個用戶生成相應的訓練樣本;
權重矩陣確定模塊,用于根據訓練樣本對GRU神經網絡進行訓練,確定GRU神經網絡中的權重矩陣;
推薦列表生成模塊,用于根據訓練后的GRU神經網絡為每一個用戶生成推薦列表。
本發明提供一種基于GRU神經網絡的推薦方法和系統,其采用GRU神經網絡模型對用戶行為建模并用于推薦系統,通過結合BP算法或BPTT算法和本發明的神經網絡結構,構建針對推薦系統的GRU神經網絡模型學習方法,根據推薦系統的特點對GRU神經網絡進行訓練,建立獨有神經網絡結構,從而根據新的神經網絡結構為不同用戶生成與其興趣愛好相對應的推薦列表。所述推薦方法和系統通過采用GRU神經網絡從用戶歷史行為中學習用戶偏好,并據此為用戶提供推薦服務。通過GRU神經網絡特有的遞歸結構,能夠基于時間序列對不同類型的用戶行為進行統一表示;且GRU神經網絡能夠進行多尺度時間序列分析,能夠更精確的表示具有較大隨機性的用戶行為。
附圖說明
圖1是本發明所述基于GRU神經網絡的推薦方法的流程圖;
圖2是本發明所述基于GRU神經網絡的推薦方法的GRU神經網絡推薦模型;
圖3是圖1中步驟S3的子流程圖;
圖4為圖1中步驟S33的子流程圖;
圖5是本發明所述基于GRU神經網絡的推薦系統的結構框圖;
圖6是圖5中權重矩陣確定模塊的子結構框圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明,應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
如圖1所示,本發明實施例提供一種基于GRU神經網絡的推薦方法,所述基于GRU神經網絡的推薦方法包括以下步驟:
S1、收集用戶對物品的歷史行為,并建立GRU神經網絡;
S2、按照行為發生時間對每一個用戶記錄的歷史行為進行先后排序;并針對每一個用戶生成相應的訓練樣本;
S3、根據訓練樣本對GRU神經網絡進行訓練,確定GRU神經網絡中的權重矩陣;
S4、根據訓練后的GRU神經網絡為每一個用戶生成推薦列表。
其中,所述GRU神經網絡包括輸入層、隱藏層以及輸出層,其中,所述輸入層的輸入包括用戶信息u(t)、用戶t時刻的行為信息a(t)以及用戶時刻行為t的目標物品信息v(t),所述隱藏層的輸出包括t時刻隱藏層的輸出s(t)、t-1時刻隱藏層的輸出s(t-1)以及t時刻替代隱藏層g,所述輸出層的輸出包括t時刻輸出層的輸出o(t)。
具體的,如圖2所示,在一個網絡推薦系統中,設u(t)為GRU神經網絡輸入層的一個輸入向量,用于表示用戶信息,對于有m個用戶的推薦系統,設第i個用戶有m個元素,其中第i個元素為1,其它元素為0;
a(t)為輸入層的一個輸入向量,用于表示用戶t時刻的行為,對于能夠處理l種用戶行為的推薦系統,第j種用戶行為表示為一個有l個元素的向量,其中第j個元素為1,其它元素為0;
v(t)是輸入層的一個輸入向量,用于表示用戶t時刻行為的目標物品,對于有n個物品的推薦系統,第k個物品表示為一個有n個元素的向量,其中第k個元素為1,其它元素為0;
s(t-1)是輸入層的一個有h個元素輸入向量,用于表示t-1時刻隱藏層的輸出,h為隱藏層維數;優選的,隱藏層維數h取值為[100,200]中的整數。
s(t)是一個h×1的向量,表示t時刻隱藏層的輸出。
如圖2所示,所述GRU神經網絡還包括重置門r和更新門z,t時刻重置門r的輸出是一個h×1的向量,其計算方法如下:
r=σ(Qru(t)+Wra(t)+Vrv(t)+Xrs(t-1))
其中,Qr,Vr,Wr,Xr分別表示輸入層u(t)、a(t)、v(t)、s(t-1)連接到隱藏層重置門r的權重矩陣;σ是sigmoid函數,σ(x)=1/(1+e-x);
所述更新門z的輸出的計算方法如下:
z=σ(Qzu(t)+Wza(t)+Vzv(t)+Xzs(t-1))
其中,Qz,Vz,Wz,Xz分別表示輸入層u(t)、a(t)、v(t)、s(t-1)連接到隱藏層更新門z的權重矩陣。
圖2中的g是替代隱藏層,替代隱藏層的輸入是當前的輸入層、上一時刻的隱藏層和當前重置門的輸出,t時刻替代隱藏層g的輸出是一個h×1的向量,其計算方法為:
其中,Q,V,W,X分別表示輸入層u(t)、a(t)、v(t)、s(t-1)連接到替代隱藏層g隱藏層的權重矩陣。
s(t)是t時刻隱藏層的輸出,是一個h×1的向量,其值與當前更新門、當前替代隱藏層和上一時刻的隱藏層有關,其計算方法為:
其中,表示按對應元素相乘。
o(t)是一個n×1的向量,表示t時刻輸出層的輸出,o(t)的第k個元素表示用戶喜歡第k個物品的概率,o(t)計算方法為:
o(t)=softmax(Ys(t))
其中,Y是隱藏層連接到輸出層的權重矩陣,softmax函數定義為:
如圖3所示,所述步驟S3包括以下分步驟:
S31、隨機生成權重矩陣;
S32、檢查收斂條件,即檢查迭代次數是否達到上限;或目標函數的值是否不再減小;如果不滿足收斂條件,則進行步驟S33;反之則確定了GRU神經網絡中的權重矩陣,進行步驟S4;
S33、根據每一個用戶的訓練樣本對GRU神經網絡進行訓練,更新GRU神經網絡中的權重矩陣;
具體的,采用交叉熵(Cross entropy)做為待優化的目標函數,即:
其中,ti是第t時刻的訓練樣本中的物品編號,迭代次數上限為K≤100。
如圖4所示,所述步驟S33包括以下分步驟:
S331、計算目標函數相對于權重矩陣的梯度;即 和
S332、更新所有權重矩陣。
以權重矩陣Y為例,更新方法為:其它權重矩陣均按照此方法更新。其中學習率α的取值為0.001;
基于上述一種基于GRU神經網絡的推薦方法,本發明還提供一種基于GRU神經網絡的推薦系統,如圖5所示,所述基于GRU神經網絡的推薦系統包括以下功能模塊:
用戶行為收集模塊,用于收集用戶對物品的歷史行為,并建立GRU神經網絡;
訓練樣本生成模塊,用于按照行為發生時間對每一個用戶記錄的歷史行為進行先后排序;并針對每一個用戶生成相應的訓練樣本;
權重矩陣確定模塊,用于根據訓練樣本對GRU神經網絡進行訓練,確定GRU神經網絡中的權重矩陣;
推薦列表生成模塊,用于根據訓練后的GRU神經網絡為每一個用戶生成推薦列表。
其中,如圖6所示,權重矩陣確定模塊包括以下子模塊:
隨機生成子模塊,用于隨機生成權重矩陣;
收斂檢查子模塊,用于檢查收斂條件,即檢查迭代次數是否達到上限;或目標函數的值是否不再減小;
網絡訓練子模塊,用于根據每一個用戶的訓練樣本對GRU神經網絡進行訓練。
具體如表1所示,本發明的方法與其它方法在MovieLen(1M)數據集上的比較結果見表1。其中Test=10表示每一個用戶選最后10個評分做為測試數據,其它做為訓練數據。Test=20表示每一個用戶選最后20個評分做為測試數據, 其它做為訓練數據。D=16表示隱藏層維數為16。D=32表示隱藏層維數為32。在不同實驗參數配置下重復實驗5次。表中列出了在不同實驗參數配置下的F1@10和F1@20均值和標準差(括號中的數值)。最佳值用黑體標明。可以看到,本方法在不同實驗條件下都取得了最佳結果,而且比次優結果有至少30%的提升。
F1得分度量了推薦結果相對于用戶實際喜歡的物品的準確程度,計算方法如下:
其中,prediciton_set是預測的結果,reference_set用戶實際喜歡的物品集合。|·|表示集合中元素的個數。
F1@10表示推薦結果中前10個物品的F1得分,F1@20表示推薦結果中前20個物品的F1得分。
表1本發明的方法與其它方法在MovieLen(1M)數據集上的比較
本發明所述基于GRU神經網絡的推薦方法和系統,其采用GRU神經網絡 (Gated recurrent units based neural network)從用戶歷史行為中學習用戶偏好,并據此為用戶提供推薦服務。所述GRU神經網絡結構能夠方便的對不同類型的用戶行為進行統一表示,其特有的遞歸結構特別適用于對時間序列編碼。更重要的是,GRU神經網絡能夠自動進行多尺度時間序列分析,這一特點使得GRU神經網絡能夠自適應的在合適的時間尺度上分析用戶的歷史行為,更為合理的表示具有較大隨機性的用戶偏好。
與傳統的遞歸神經網絡相比,GRU神經網絡增加了GRU層,該層包括圖一中的重置門r、更新門z、替代隱藏層g。在遞歸神經網絡中增加GRU層能夠使神經網絡既學習到訓練樣本中短時依賴關系,又能學習到長期依賴關系。推薦系統中,用戶的某些偏好是長期不變的,因此用戶行為隱藏了長期不變的先后依賴關系。而有些用戶偏好是短期的。因此,分析推薦系統中用戶行為需要同時考慮長期和短期依賴關系。GRU神經網絡正是針對此問題而設計的。另外,傳統的遞歸神經網絡在使用基于梯度下降的算法訓練時(例如BPTT算法)容易產生梯度消失問題(gradient vanishing problem).在傳統的遞歸神經網絡中增加GRU層能夠有效的解決此問題。
以上裝置實施例與方法實施例是一一對應的,裝置實施例簡略之處,參見方法實施例即可。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能性一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應超過本發明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機儲存器、內存、只讀存儲器、電可編程ROM、電可檫除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其他形式的存儲介質中。
上面結合附圖對本發明的實施例進行了描述,但是本發明并不局限于上述 的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本發明的啟示下,在不脫離本發明宗旨和權利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發明的保護之內。