本發(fā)明涉及信息推薦技術領域,尤其是涉及一種社交網絡下基于深度學習的個性化推薦系統(tǒng)。
背景技術:
推薦系統(tǒng)的非形式化概念是resnick和varian在1997年給出的定義:“它是利用電子商務網站向客戶提供商品的信息和建議,并幫助用戶決策應該購買何類產品,模擬銷售人員幫助指導用戶完成網上購買的過程”。
推薦系統(tǒng)能夠挖掘出用戶潛在的喜歡的內容,減少無用信息對用戶的干擾,使得用戶在互聯(lián)網上快速地發(fā)現(xiàn)自己想要購買的商品、感興趣的新聞、可能潛在的好友。并且這些推薦結果是動態(tài)地,因為用戶的興趣隨著時間、場景的變化而發(fā)生變化,最終的推薦結果能夠吻合用戶的即時偏好,給用戶呈現(xiàn)真正感興趣的信息內容。一個好的推薦系統(tǒng)不僅能夠給用戶推薦一些他所喜歡的信息,同時這些內容應該具有新穎性,給用戶推薦的信息不應該出現(xiàn)多次的重復,最后推薦系統(tǒng)應該能夠挖掘長尾信息,一個網站上的大部分商品只被少部分人所接觸,一個好的推薦系統(tǒng)所做出的推薦結果不僅僅只是包含熱門物品,而應該多多挖掘數(shù)量巨大的冷門物品,這樣才能給應用帶來巨大利潤和商業(yè)規(guī)模。
伴隨著社交網絡的蓬勃發(fā)展,人們也很期待互聯(lián)網的信息服務如:社交搜索、社交交易等,如何與社交網絡相結合,為用戶提供更人性化,更有價值的信息服務。以個性化推薦為核心的服務應用延展到了互聯(lián)網用戶日常信息流的方方面面,同時個性化推薦系統(tǒng)也在結合交叉學科和新技術不斷的發(fā)展。從早期的協(xié)同過濾算法、基于模型的推薦算法、混合推薦算法到結合社交信息的社會化推薦算法,無不顯示著推薦系統(tǒng)蓬勃的發(fā)展勢頭。
然而,我們發(fā)現(xiàn)現(xiàn)有的推薦系統(tǒng)已經不能很好的滿足社交網絡新環(huán)境下的個性化服務需求,無法解決已存在的和新出現(xiàn)的問題。由于社交網絡呈現(xiàn)無尺度特性,極少量的社交用戶擁有大量的社交關系鏈接和社交互動行為,而大部分社交用戶僅只有少量的社交關系鏈接和社交互動行為,當將推薦系統(tǒng)應用到社交環(huán)境中時,將面臨著推薦系統(tǒng)的數(shù)據(jù)稀疏性問題。同時,當新用戶注冊登錄到基于社交網絡的電子商務服務平臺,由于缺失與該新用戶相關的背景或者興趣喜好數(shù)據(jù),推薦系統(tǒng)無法給出很好的推薦結果,這就是社交網絡環(huán)境中推薦系統(tǒng)所面臨的冷啟動問題。冷啟動問題導致推薦系統(tǒng)的推薦質量很差,不能滿足新注冊用戶的需求,他們將很可能不想再次登錄該電子商務服務平臺。
技術實現(xiàn)要素:
本發(fā)明的目的就是為了解決上述現(xiàn)有技術存在的缺陷而提供一種準確度高、處理速度快且簡單易實現(xiàn)的社交網絡下基于深度學習的個性化推薦系統(tǒng)。
本發(fā)明技術方案:
主要由離線學習和在線推薦兩個模塊組成。
模塊1(離線學習模塊)包括三個步驟:
步驟1:訓練樣本集合生成。本發(fā)明在推薦系統(tǒng)中選取一定數(shù)量的現(xiàn)有用戶,并針對被選取的每個用戶,獲取該用戶最近購買過的若干物品以及從未購買過的若干物品。對于每個“用戶-物品”對,將它表示成特征的形式,其中用戶特征包括用戶在推薦系統(tǒng)中登記的人口統(tǒng)計學特征、用戶的社交網絡特征以及用戶聯(lián)系最緊密的若干好友的人口統(tǒng)計學特征和社交網絡特征,物品特征包括物品的固有特征、物品類別特征、物品購買行為特征以及物品的社交網絡特征。在此基礎上,產生兩個形式的訓練樣本:
(1)如果用戶購買過該物品,那么生成樣本(用戶特征,物品特征,+1),
(2)如果用戶從未購買過該物品,那么生成樣本(用戶特征,物品特征,-1)。
步驟2:帶注意力機制的深度卷積神經網絡學習模型構造。學習模型從輸入端到輸出端,共由四個部件組成:
(1)特征嵌套層,將輸入的訓練樣本轉換成用戶特征矩陣和物品特征矩陣,
(2)注意力機制層,基于特征嵌套層的用戶特征矩陣和物品特征矩陣,分別產生用戶注意力特征矩陣和物品注意力特征矩陣,
(3)特征融合層,融合特征嵌套層和注意力機制層中的用戶特征矩陣和用戶注意力特征矩陣,以及物品特征矩陣和物品注意力特征矩陣,分別產生用戶融合矩陣和物品融合矩陣,
(4)卷積-池化層,基于特征融合層的用戶融合矩陣和物品融合矩陣,分別產生全局用戶池化向量和全局物品池化向量,
(5)邏輯回歸層,基于卷積-池化層的全局用戶池化向量和全局物品池化向量,輸出一個0-1間的實數(shù)。
步驟3:學習模型參數(shù)迭代優(yōu)化。對步驟2中的學習模型,構造其損失函數(shù),并基于步驟1中的訓練樣本,采用不同的優(yōu)化方法對損失函數(shù)中的參數(shù)進行迭代優(yōu)化,并識別出最優(yōu)的優(yōu)化方法。
模塊2(在線推薦模塊)對于新注冊的用戶,生成該用戶的用戶特征,并對推薦系統(tǒng)中的每個物品,生成其物品特征,然后基于模塊1中獲得的學習模型,產生新注冊用戶購買該物品的概率,并最終將概率值最高的若干物品返回給用戶。
本發(fā)明具有以下優(yōu)點:
1、本發(fā)明把推薦過程中耗時的學習模型通過離線方式來構造,這樣能夠顯著降低向用戶推薦物品的時間開銷。
2、本發(fā)明充分提取社交網絡下的用戶和物品特征,并作為輸入進行深度學習,能夠顯著提高物品的推薦準確度,并有效解決新注冊用戶的冷啟動問題。
3、本發(fā)明主要由兩個模塊組成,每個步驟的實施過程簡單、容易實現(xiàn),同時不受具體開發(fā)工具和編程軟件的限制,并且能夠快速擴展到分布式和并行化的開發(fā)環(huán)境中。
附圖說明
圖1本發(fā)明的技術框架圖。
具體實施方式
基于本發(fā)明技術方案,以下結合附圖給出詳細實施例。
離線學習模塊中步驟1(訓練樣本集合生成)的具體實施方式如下:
本發(fā)明在推薦系統(tǒng)中隨機選取5000個現(xiàn)有用戶,對于其中每個用戶ui(1≤i≤5000),選取ui最近購買過的ai個物品和從未購買過的bi個物品,其中ai的取值為u購買過所有物品數(shù)量的1/2,bi取值為ai的20倍,即bi=20×ai,從而得到
對于每個“用戶-物品”對(u,g),本發(fā)明首先獲取u的用戶特征列表c(u),包括:(1)u在推薦系統(tǒng)中登記的人口統(tǒng)計學特征u.d,包括年齡、地址、性別、職業(yè)、收入、文化程度、婚否、有無小孩,(2)u的社交網絡特征u.s,包括注冊時間、活躍度、信譽度、影響力、好友數(shù)、評論數(shù),(3)u聯(lián)系最緊密的20個好友u1,…,u20的人口統(tǒng)計學特征和社交網絡特征,從而可得u的用戶特征列表c(u)=<u.d,u.s,u1.d,u1.s,u2.d,u2.s,…,u20.d,u20.s>;然后,獲取g的物品特征列表c(g),包括:(1)g的固有特征g.i,包括價格、顏色、保質期、重量、容積、產地、材質、上架時間、適合年齡層,(2)g的類別特征g.r,包括大類名稱、小類名稱,(3)g的購買行為特征g.b,包括最近被購買的時間、最近被購買的數(shù)量、最近被退貨時間、最近被退貨數(shù)量、最近一個月被購買的數(shù)量、最近一個月被退貨的數(shù)量,(4)g的社交網絡特征g.s,包括和g同時被購買最頻繁10個物品g1,g2,…,g10的固有特征、類別特征和購買行為特征、最近一個月購買g數(shù)量最多的10個用戶u1,u2,…,u10的人口統(tǒng)計學特征和社交網絡特征,從而可得g的用物品特征列表c(g)=<g.i,g.r,g.b,g1.i,g1.r,g1.b,…,g10.i,g10.r,g10.b,u1.d,u1.s,…,u10.d,u10.s>。
在此基礎上,本發(fā)明生成包含
離線學習模塊中步驟2(帶注意力機制的深度卷積神經網絡學習模型構造)的具體實施方式如下:
1.特征嵌套層包含兩個獨立的特征嵌套部件,即用戶特征嵌套部件和物品特征嵌套部件。
用戶特征嵌套部件接收每個訓練樣本中的用戶特征列表c(u)作為輸入,它包含42個子特征u.d,u.s,u1.d,u1.s,u2.d,u2.s,…,u20.d,u20.s,并對每個子特征,用戶特征嵌套部件利用word2vec詞嵌套工具將該子特征轉換成長度為200的一維向量。因此,對于每個訓練樣本,用戶特征嵌套部件產生行數(shù)為200且列數(shù)為42的二維用戶特征矩陣mu。
物品特征嵌套部件接收每個訓練樣本中的用戶特征列表c(g)作為輸入,它包含53個子特征g.i,g.r,g.b,g1.i,g1.r,g1.b,…,g10.i,g10.r,g10.b,u1.d,u1.s,…,u10.d,u10.s,并對每個子特征,物品特征嵌套部件同樣利用word2vec詞嵌套工具將該子特征轉換成長度為200的一維向量。因此,對于每個訓練樣本,物品特征嵌套部件產生行數(shù)為200且列數(shù)為53的二維物品特征矩陣mg。
2.注意力機制層以特征嵌套層中的mu和mg兩個矩陣為輸入,首先構造行數(shù)為42且列數(shù)為53的二維注意力矩陣ma,ma第i行第j列單元的取值ma[i,j]的計算公式為:
其中mu[i]為矩陣mu的第i列向量,mg[j]為矩陣mg的第j列向量,
接著,注意力機制層引入兩個權重矩陣wu和wg,其中wu的行數(shù)為200且列數(shù)為53,wg的行數(shù)為200且列數(shù)為42,并基于ma來分別獲取用戶注意力特征矩陣au和物品注意力特征矩陣ag:
au=wu×mat,
ag=wg×ma,
其中mat為矩陣ma的轉置矩陣。
3.特征融合層以特征嵌套層中的mu和mg以及注意力機制層中的au和ag這四個矩陣為輸入,產生兩個矩陣fu和fg,其中fu為用戶融合矩陣,行數(shù)為200且列數(shù)為42,其第i行第j列單元的取值fu[i,j]的計算公式為:
fu[i,j]=mu[i,j]×au[i,j],
而fg為物品融合矩陣,行數(shù)為200且列數(shù)為53,其第i行第j列單元的取值fg[i,j]的計算公式為:
fu[i,j]=mg[i,j]×ag[i,j]。
4.卷積-池化層包含8個部件,分別為短步用戶卷積部件、短步用戶池化部件、長步用戶卷積部件、全局用戶池化部件、短步物品卷積部件、短步物品池化部件、長步物品卷積部件、全局物品池化部件。
(1)短步用戶卷積部件接收特征融合層中的fu矩陣作為輸入,首先將fu轉換成行數(shù)為200且列數(shù)為44的矩陣efu,使得:
然后,引入一個行數(shù)為250且列數(shù)為400的權重矩陣swu,并產生短步用戶卷積矩陣scu,其行數(shù)為250且列數(shù)為43。scu每一列的取值scu[:,j]為:
其中tanh為雙曲正切函數(shù),
(2)短步用戶池化部件接收短步用戶卷積矩陣scu作為輸入,并產生短步用戶池化矩陣spu,其行數(shù)為250且列數(shù)為42,其第i行第j列單元的取值spu[i,j]的計算公式為:
spu[i,j]=(scu[i,j]+scu[i,j+1])/2。
(3)長步用戶卷積部件接收短步用戶池化矩陣spu作為輸入,首先將spu轉換成行數(shù)為250且列數(shù)為48的矩陣epu,使得:
然后,引入一個行數(shù)為300且列數(shù)為1000的權重矩陣lwu,并產生長步用戶卷積矩陣lcu,其行數(shù)為350且列數(shù)為45。lcu每一列的取值lcu[:,j]為:
其中tanh為雙曲正切函數(shù),
(4)全局用戶池化部件接收長步用戶卷積矩陣lcu作為輸入,并產生全局用戶池化向量gpu,其長度為300,其第i個分量的取值gpu[i]的計算公式為:
(5)短步物品卷積部件接收特征融合層中的fg矩陣作為輸入,首先將fg轉換成行數(shù)為200且列數(shù)為55的矩陣efg,使得:
然后,引入一個行數(shù)為250且列數(shù)為400的權重矩陣swg,并產生短步物品卷積矩陣scg,其行數(shù)為250且列數(shù)為54。scg每一列的取值scg[:,j]為:
其中tanh為雙曲正切函數(shù),
(6)短步物品池化部件接收短步物品卷積矩陣scg作為輸入,并產生短步物品池化矩陣spg,其行數(shù)為250且列數(shù)為53,其第i行第j列單元的取值spg[i,j]的計算公式為:
spg[i,j]=(scg[i,j]+scg[i,j+1])/2。
(7)長步物品卷積部件接收短步物品池化矩陣spg作為輸入,首先將spg轉換成行數(shù)為250且列數(shù)為59的矩陣epg,使得:
然后,引入一個行數(shù)為300且列數(shù)為1000的權重矩陣lwg,并產生長步物品卷積矩陣lcg,其行數(shù)為350且列數(shù)為56。lcg每一列的取值lcg[:,j]為:
其中tanh為雙曲正切函數(shù),
(8)全局物品池化部件接收長步物品卷積矩陣lcg作為輸入,并產生全局物品池化向量gpg,其長度為300,其第i個分量的取值gpg[i]的計算公式為:
5.邏輯回歸層接收卷積-池化層中的全局用戶池化向量gpu和全局物品池化向量gpg作為輸入,并引入一個長度為600的向量wl,并產生一個輸出值v:
其中e為自然對數(shù)底數(shù),變量z的計算公式為:
離線學習模塊中步驟3(學習模型參數(shù)迭代優(yōu)化)的具體實施方式如下:
對于步驟2中的學習模型,本發(fā)明首先構造其損失函數(shù)如下:
其中θ={wu,wg,swu,lwu,swg,lwg,wl}為步驟2學習模型中各權重參數(shù)所構成的集合,
接著,本發(fā)明基于訓練樣本集合t,分別利用隨機梯度下降(sgd:stochasticgradientdescent)、自適應矩估計(adam:adaptivemomentestimation)、涅斯捷羅夫動量(nm:nesterovmomentum)以及自適應梯度(ag:adaptivegradient)這四個優(yōu)化方法對最小化損失函數(shù)
模塊2(在線推薦模塊)的具體實施方式如下:
對于新注冊的用戶