本發(fā)明涉及內容推薦,特別涉及一種基于受限玻爾茲曼機的文本業(yè)務推薦方法。
背景技術:
在推薦系統(tǒng)的研究中,獲取用戶偏好的方式主要有兩種方式,一種是評分,另一種是物品特征或特性的專業(yè)描述。協(xié)同過濾技術是利用評分數(shù)據(jù)獲取用戶偏好的重要技術,除了評分,不需要知道關于要推薦物品的任何信息。它的主要好處是避免了付出很大代價向系統(tǒng)提供詳細且實時更新的物品描述信息,但是,如果想根據(jù)物品的特性和用戶的特殊偏好非常直觀地選擇可推薦物品,用純粹的協(xié)同過濾方法是不可能實現(xiàn)的?;趦热莸耐扑]是推薦系統(tǒng)根據(jù)物品的特征信息,找出物品間的相似關系,然后向用戶推薦與他們喜歡的物品相似的其他物品。推薦結果的好壞依賴于物品特征的選取,若是物品特征選取的合適,就會獲得較理想推薦結果,反之,推薦結果可能會不如人意。所以,物品的特征的選取十分重要,與推薦系統(tǒng)的性能緊密相關。在實際環(huán)境中,物品特征或特性的專業(yè)描述更多的是有特定格式的。在品質方面,某人喜歡某個物品并不總是和物品的某個特征相關,可能只是對這個物品外觀設計的某種主觀印象感興趣。
因此,在研究如何根據(jù)用戶描述的業(yè)務信息,進行業(yè)務推薦時,將會涉及到如下問題:
(1)每一個業(yè)務描述信息都是用戶的主觀想法,沒有一個統(tǒng)一的特征標準,對于同一業(yè)務可能有不同的描述方式,造成“一詞多義”或“多詞一義”這就為推薦帶來極大的挑戰(zhàn);
(2)業(yè)務推薦不同于物品的推薦,業(yè)務具有時效性,及時性。對于過時的無效業(yè)務信息,則不能推薦給用戶;
(3)針對傳統(tǒng)的業(yè)務處理網(wǎng)站,比如招聘網(wǎng)站、豬八戒服務交易平臺等業(yè)務種類比較復雜,信息比較混亂,且針對不同的用戶呈現(xiàn)給用戶的信息相同,造成推薦結果不準確,無法實現(xiàn)用戶的個性化需求;
(4)用戶的興趣是動態(tài)變化的,僅僅根據(jù)用戶的歷史信息進行推薦,很難提高用戶對推薦結果的驚喜度;甚至造成重復推薦用戶以前喜歡的物品,但現(xiàn)在用戶不喜歡的物品。
技術實現(xiàn)要素:
本發(fā)明是為了解決上述現(xiàn)有技術存在的不足之處,提出一種基于受限玻爾茲曼機的文本業(yè)務推薦方法,以期能幫助用戶過濾掉無效業(yè)務信息及對未知潛在偏好主題進行預測,從而能提供優(yōu)質個性化的潛在業(yè)務信息。
為實現(xiàn)上述發(fā)明目的,本發(fā)明采用如下技術方案:
本發(fā)明一種基于受限玻爾茲曼機的文本業(yè)務推薦方法的特點是應用于由數(shù)據(jù)庫、服務器和客戶端所構成的一個推薦環(huán)境中,所述推薦方法是按如下步驟進行:
步驟1、利用客戶端獲取用戶A的需求信息,并根據(jù)所述需求信息從所述數(shù)據(jù)庫中匹配相應的相似信息;
步驟2、利用分詞工具對所述用戶A的需求信息和相似信息進行分詞,得到所述用戶A的需求文檔D0;
步驟3、利用LDA主題模型對所述需求文檔D0進行主題提取,得到所述用戶A的n個主題,記為DA={T1A,T2A,...,TiA,...,TnA},TiA表示所述用戶A的第i個主題;并有表示所述用戶A的第i個主題的第j個主題詞,表示所述用戶A的第i個主題的第j個主題詞的權重;1≤i≤n;1≤j≤m;
步驟4、對所述用戶A的第i個主題的m個主題詞分別設置相應的權值,記為表示所述用戶A的第i個主題的第j個主題詞的權值;
步驟5、計算主題詞集合C出現(xiàn)的次數(shù):
步驟5.1、對所述用戶A的n個主題DA={T1A,T2A,...,TiA,...,TnA}中所有主題詞取并集,得到所述用戶A的主題詞集合C={c1,c2,...,ck,...,cK},ck表示所述用戶A的第k個主題詞,1≤k≤K;
步驟5.2、利用所述用戶A的主題詞集合C={c1,c2,...,ck,...,cK}與所述用戶A的第i個主題計算主題詞集合C中第k個主題詞ck在主題TiA中主題詞出現(xiàn)的次數(shù)rk;從而得到所述用戶A的主題詞集合C中每一主題詞在所有主題的主題詞出現(xiàn)的次數(shù)R={r1,r2,...,rk,...,rK};
步驟6、定義更新變次數(shù)為s,并初始化s=0;利用式(1)獲得第s次更新的第k個主題詞ck的加權平均權重從而獲得第s次更新的K個主題詞的初始加權平均權重
式(1)表示在所述用戶A的主題詞集合C中與第k個主題詞ck相同的所有主題詞的權重和權值的乘積之和,式(1)中,表示與第k個主題詞ck相同的第i個主題的第j個主題詞的權重,表示與第k個主題詞ck相同的第i個主題的第j個主題詞的權值;
步驟7、構建所述用戶A的RBM主題偏好模型;
步驟7.1、所述RBM主題偏好模型的第一層為可見層、第二層為隱藏層;所述可見層包含K個可見單元,并將所述第s次更新的K個主題詞的加權平均權重作為所述K個可見單元的輸入值;所述隱藏層包含L個隱層單元,記為h={h1,h2,...,hl,...,hL},hl表示第l個隱層單元,1≤l≤L;
步驟7.2、隨機初始化第s次更新的可見層和隱藏層之間的權重,記為Ws;其中,記第s次更新的可見層中第k個可見單元與第l個隱層單元之間的權重為1≤k≤K;
步驟7.3、利用式(2)得到所述用戶A的主題偏好模型的第s次更新的第l個隱層單元hl的值從而得到所有隱層單元的值
步驟7.4、利用式(3)得到所述用戶A的主題偏好模型的第s+1次更新的第k個可見單元的值從而得到題偏好模型的第s+1次更新的所有可見單元的值
式(3)中,表示調節(jié)參數(shù);
步驟7.5、利用式(4)更新第s次更新的第k個可見單元和第l個隱層單元之間的權重得到第s+1次更新的第k個可見層和第l個隱藏層之間的權重為從而得到所有可見層與隱層之間的權重Ws+1:
式(4)中,η表示學習速率;
步驟7.6、將s+1賦值給s,并返回步驟7.3順序執(zhí)行,直到所有可見層與隱層之間的權重收斂為止;
步驟8、從所述數(shù)據(jù)庫中獲取所述用戶A的近鄰用戶,記為U={u1,u2,...,uz,...,uZ},uz表示所述用戶A的第z個近鄰用戶,1≤z≤Z;
步驟9、建立所述用戶A的近鄰用戶U的RBM主題偏好模型及預測所有未知主題詞的加權平均權重:
步驟9.1、按照步驟1獲取所述用戶A的第z個近鄰用戶uz的需求信息和相似信息,并分別按照步驟2與步驟3得到第z個近鄰用戶uz的需求文檔Dz及nz個主題;
步驟9.2、對所述第z個近鄰用戶uz的nz個主題中所有主題詞分別設置相應的權值,從而利用式(1)獲得第z個近鄰用戶uz的nz個主題的所有主題詞的初始加權平均權重;
步驟9.3、按照步驟7構建所述用戶A的第z個近鄰用戶uz的RBM主題偏好模型;從而得到所述用戶A的所有近鄰用戶的RBM主題偏好模型;
步驟9.4、將所述用戶A的所有鄰居用戶的相應主題詞做并集后再與所述用戶A的所有主題詞做差集,得到待預測主題詞集合,記為G={g1,g2,...,ge,...,gE};ge表示第e個待預測主題詞;1≤e≤E;
步驟9.5、利用式(5)得到第e個待預測主題詞ge所在的RBM主題偏好模型的可視層中,與第e個待預測主題詞ge相對應的可視單元與第l個隱層單元的平均權重
式(6)中,表示在所述近鄰用戶U中包含第e個待預測主題詞ge的所有近鄰用戶的第e個待預測主題詞ge相對應的可視單元與第l個隱層單元的權重之和;表示所述近鄰用戶U中包含第e個待預測主題詞ge的所有近鄰用戶的數(shù)量;
步驟9.6、利用式(6)預測得到所述用戶A的第e個待預測主題詞ge的加權平均權重從而得到所述用戶A的所有待預測主題詞的加權平均權重:
式(7)中,ξ為另一個調節(jié)參數(shù);表示收斂時第l個隱層單元hl的值
步驟10、構建所述用戶A的RBM未知偏好主題預測模型;
步驟10.1、去除所述用戶A的所有待預測主題詞的加權平均權重中若干個較小值,得到所述用戶A的未知偏好主題詞,記為G'={g1',g2',...,gf',...,gF'};1≤F≤E;
步驟10.2、對所述用戶A的第z個近鄰用戶uz的第α個主題的主題詞與所述未知偏好主題詞G'取交集,得到的集合記為集合的大小,記為1≤α≤nz;從而得到第z個近鄰用戶uz的所有主題的主題詞與所述主題詞G'的交集的大小,記為集合進而得到所有近鄰用戶U={u1,u2,...,uz,...,uZ}的所有主題的主題詞與所述主題詞G'的交集的大小
步驟10.3、對第z個近鄰用戶uz的集合中所有元素進行求和,得到的值記為從而對所有近鄰用戶HU中所有元素進行求和,得到的值的集合,記為
步驟10.4、對H中的值進行降序排序,將前M個最大的值所對應的M個近鄰用戶的主題,作為所述用戶A的預測主題的范圍;
步驟10.5、對所述M個近鄰用戶中的任意一個近鄰用戶的任意一個主題的所有主題詞,與所述主題詞G'作交集,得到交集集合中的主題詞個數(shù);從而得到所述M個近鄰用戶中的任意一個近鄰用戶的所有主題的主題詞與所述主題詞G'作交集后的主題詞個數(shù);進而得到M個近鄰用戶所有主題的主題詞與所述主題詞G'作交集后的主題詞個數(shù);
步驟10.6、對M個近鄰用戶所有主題的主題詞與所述主題詞G'作交集后的主題詞個數(shù)進行降序排序,將前N個最大的值所對應的主題,作為所述用戶A的預測偏好主題;
步驟11、更新所述用戶A的預測偏好主題的主題詞的權重;
步驟11.1、判斷所述用戶A的任一預測偏好主題的主題詞是否出現(xiàn)在主題詞G'中,若是,則執(zhí)行步驟11.2,否則表示出現(xiàn)在主題詞C中,并執(zhí)行步驟11.3;
步驟11.2、利用式(1)計算所述用戶A的任一預測偏好主題的主題詞在所述主題詞G'的權重,其中,rk取值為任一預測偏好主題所在近鄰用戶的所有主題中與所述用戶A的第k個主題詞ck相同的主題詞出現(xiàn)的次數(shù),取值為第k個主題詞ck在任一預測偏好主題所在近鄰用戶的所有主題中的平均權值;
步驟11.3、利用式(1)計算所述用戶A的任一預測偏好主題的主題詞在所述主題詞C={c1,c2,...,ck,...,cK}中的權重,其中,rk取值為所述用戶A的所有主題中第k個主題詞ck出現(xiàn)的次數(shù),取值為第k個主題詞ck在所述用戶A的所有主題中的平均權值;
步驟11.4、重復步驟11.1,從而計算任一預測偏好主題的所有主題詞的權重;進而得到N個預測偏好主題的所有主題詞的權重;
步驟12、從所述數(shù)據(jù)庫中取出所有待推薦業(yè)務,記為O={O1,O2,...,Ob,...,OB},Ob表示第b個待推薦業(yè),1≤b≤B;
步驟13、根據(jù)所述第b個待推薦業(yè)務Ob從所述數(shù)據(jù)庫中匹配相應的相似信息;
步驟14、利用分詞工具對所述第b個待推薦業(yè)務Ob和相似信息進行分詞,得到所述第b個待推薦業(yè)務Ob的初始文檔D0';
步驟15、利用LDA主題模型對所述初始文檔D0'進行主題提取,得到所述第b個待推薦業(yè)務Ob的n'個主題,記為表示所述第b個待推薦業(yè)務Ob的第i'個主題;并有表示所述第b個待推薦業(yè)務Ob的第i'個主題的第j'個主題詞,表示所述第b個待推薦業(yè)務Ob的第i'個主題的第j'個主題詞的權重;1≤i'≤n';1≤j'≤m';
步驟16、按照步驟15得到所有待推薦業(yè)務O的主題
步驟17、計算所述用戶A對第b個待推薦業(yè)務Ob的偏好度從而得到所述用戶A對所有待推薦業(yè)務O=(O1,O2,...,Ob,...,OB)的偏好度
步驟17.1、計算所述用戶A的第i個主題TiA和第b個待推薦業(yè)務Ob的第i'個主題的余弦相似度
步驟17.2、利用式(7)計算所述用戶A的第i個主題TiA和第b個待推薦業(yè)務Ob的所有主題的平均相似度
步驟17.3、按照步驟17.2計算所述用戶A的所有主題和第b個待推薦業(yè)務Ob所有主題相似度,并取相似度最高的M”個主題及其對應的平均相似度;記為表示所述用戶A的所有主題和第b個待推薦業(yè)務Ob的第m”個相似度最高的偏好主題;表示所述用戶A的所有主題和第b個待推薦業(yè)務Ob的第m”個相似度最高的偏好主題的平均相似度;
步驟17.4、利用式(8)計算所述用戶A對第b個待推薦業(yè)務Ob的偏好度為
步驟18、對偏好度P進行降序排序,并將前Np個偏好度所對應的業(yè)務推薦給用戶A。
與已有技術相比,本發(fā)明的有益效果體現(xiàn)在:
1、本發(fā)明方法具有經濟性、智能性和使用方便性。通過簡單的輸入業(yè)務描述信息,系統(tǒng)自動獲取其相應的相似信息,利用LDA主題模型對主題進行提取,并結合RBM未知偏好主題預測模型得到用戶的偏好主題,通過計算用戶偏好主題和相應待推薦業(yè)務的主題相似度,進而為用戶推薦個性化的優(yōu)質業(yè)務信息,不需要用戶花費大量的時間去尋找需要的業(yè)務,同時省去了用戶對找到的各個業(yè)務進行決策分析的工作量;
2、本發(fā)明針對業(yè)務描述的主觀性,沒有一個統(tǒng)一的特征標準,造成“一詞多義”或“多詞一義”等問題,結合LDA主題模型進行主題提取,其中,每個主題是由不同的主題詞組成,根據(jù)主題詞所在的主題及主題所包含的主題詞,可以明確每個詞所表達的含義;從而有效解決了業(yè)務描述信息的主觀性,很難利用傳統(tǒng)基于內容的方法進行推薦的問題;
3、本發(fā)明通過計算用戶偏好主題和業(yè)務主題的相似度進行推薦,其中用戶的偏好主題在短期時間內基本不會發(fā)生變化,對不同業(yè)務進行推薦時,而無需重復計算用戶的偏好主題,可以及時針對不同業(yè)務做出推薦;從而應用更加廣泛,適用性更強。
4、本發(fā)明提出的RBM未知偏好主題預測模型,可以有效對用戶未知偏好主題進行預測,以發(fā)現(xiàn)用戶未來興趣趨勢,從而幫助引導用戶發(fā)現(xiàn)新的興趣領域,同時彌補主題模型不能及時發(fā)現(xiàn)用戶興趣改變方面的不足;
5、本發(fā)明針對傳統(tǒng)實值受限玻爾茲曼機只利用評分數(shù)據(jù),使所有用戶對同一項目的預測評分都相同,缺乏可解釋性(即模型進行預測時,只要物品相同,預測得到的評分也相同,也就無法解釋不同的人對同一物品有不同的偏好)。本發(fā)明對其進行了相應的改進,并把改進的模型用在用戶偏好的主題預測上;其中,采用每個受限玻爾茲曼機(RBM)對應一個用戶,而每個用戶都有相同個數(shù)的隱層單元,通過計算近鄰用戶中具有相同主題的平均權重來作為待預測主題的RBM權重,可以針對不同用戶的同一主題得到不同的主題詞權重。從而不僅解決了業(yè)務描述信息的主觀性,很難在傳統(tǒng)基于內容的方法進行推薦的問題,而且對傳統(tǒng)實值受限玻爾茲曼機的預測缺乏可解釋性的問題,提供了解決思路,并有效的應用在對用戶偏好主題預測上。
附圖說明
圖1為本發(fā)明文本業(yè)務推薦方法的應用環(huán)境圖;
圖2為本發(fā)明文本業(yè)務推薦的流程示意圖;
圖3為本發(fā)明RBM未知偏好主題預測模型圖。
具體實施方式
本實施例中,一種基于受限玻爾茲曼機的文本業(yè)務推薦方法,是應用于由數(shù)據(jù)庫、服務器和客戶端所構成的一個推薦環(huán)境中。如圖1所示,安裝有瀏覽器客戶端的終端設備與服務器通過網(wǎng)絡連接,服務器連接數(shù)據(jù)庫,該數(shù)據(jù)庫用于存儲各種數(shù)據(jù),如本發(fā)明中的用戶偏好信息,該數(shù)據(jù)庫可以獨立于該服務器,也可以設置在該服務器之內。終端設備可以是各種電子裝置,如個人電腦、筆記本電腦、平板電腦、手機等。網(wǎng)絡可為但不限于互聯(lián)網(wǎng)、企業(yè)內部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。
如圖2所示,一種基于受限玻爾茲曼機的文本業(yè)務推薦方法是按如下步驟進行:
步驟1、利用客戶端獲取用戶A的需求信息,并根據(jù)需求信息從數(shù)據(jù)庫中匹配相應的相似信息。如獲取匹配的相似信息,可以根據(jù)數(shù)據(jù)庫中數(shù)據(jù)的存儲結構是一個樹形結構,利用需求信息的父節(jié)點獲取其父節(jié)點的所有子節(jié)點文檔或根據(jù)需求信息直接獲取其所有子節(jié)點文檔,或利用計算文本相似度的算法來獲取相似信息;
步驟2、利用分詞工具對用戶A的需求信息和相似信息進行分詞,分詞的開源代碼有ICTCLAS,然后按照停用表中的詞語將語料庫中對于文本內容識別意義不大但出現(xiàn)頻率很高的詞、符號、標點及亂碼等去掉。如“這,的,和,會,為”等詞幾乎出現(xiàn)在任何一個文檔中,但是它們對于這個文本所表達的意思幾乎沒有任何貢獻。經過分詞后得到用戶A的需求文檔D0;
步驟3、利用LDA主題模型對需求文檔D0進行主題提取。如表1所示為經過LDA主題模型提取得到用戶A的n個主題的形式,記為DA={T1A,T2A,...,TiA,...,TnA},TiA表示用戶A的第i個主題;并有表示用戶A的第i個主題的第j個主題詞,表示用戶A的第i個主題的第j個主題詞的權重;1≤i≤n;1≤j≤m;
步驟4、如表1對用戶A的第i個主題的m個主題詞分別設置相應的權值,記為表示用戶A的第i個主題的第j個主題詞的權值。為更加詳盡的描述本發(fā)明的具體實施,把表1中的數(shù)據(jù)關系對應到如表2所示為MovieLens數(shù)據(jù)集中,利用LDA主題模型提取的主題,并在配置文件中設置提取主題數(shù)為3,每類主題取經過排序后的前5個主題詞,得到的用戶所喜歡的主題及相應主題對應的主題詞和主題詞權重。如表2對應設置相應的權值T1A=T2A=T3A={5,4,3,2,1},其中,在用戶偏好主題中主題詞權重越大,則越能代表用戶的偏好。設置權值的目的是使主題詞權重較大的主題詞有更大的權值,而主題詞權重較小的主題詞有更小的權值,從而有利用保留主題詞權重較大的而去除權重較小的干擾主題詞;
表1主題詞及權重值(概率)
表2主題詞及權重值(概率)
步驟5、計算主題詞集合C出現(xiàn)的次數(shù):
步驟5.1、如表1對用戶A的n個主題DA={T1A,T2A,...,TiA,...,TnA}中所有主題詞取并集,得到用戶A的主題詞集合C={c1,c2,...,ck,...,cK},ck表示用戶A的第k個主題詞,1≤k≤K,對應表2中用戶A的3個主題DA={T1A,T2A,T3A}相應的所有主題詞取并集,得到用戶A的主題詞集合:
C={Comedy,Drama,Sci-Fi,Animation,Children's,Adventure,Action,Thriller,Horror,Romance,Western}
步驟5.2、利用用戶A的主題詞集合C={c1,c2,...,ck,...,cK}與用戶A的第i個主題計算主題詞集合C中第k個主題詞ck在主題TiA中主題詞出現(xiàn)的次數(shù)rk;從而得到用戶A的主題詞集合C中每一主題詞在所有主題的主題詞出現(xiàn)的次數(shù)R={r1,r2,...,rk,...,rK}。如表2得到用戶A的主題詞集合C中每一主題詞在所有主題中相應的主題詞出現(xiàn)的次數(shù)R={2,1,1,1,1,2,2,1,1,2,1},其中主題詞集合C中的主題和R中主題詞出現(xiàn)的次數(shù)按順序是一一對應的;
步驟6、定義更新變次數(shù)為s,并初始化s=0;利用式(1)獲得第s次更新的第k個主題詞ck的加權平均權重從而獲得第s次更新的K個主題詞的初始加權平均權重
式(1)表示在用戶A的主題詞集合C中與第k個主題詞ck相同的所有主題詞的權重和權值的乘積之和,式(1)中,表示與第k個主題詞ck相同的第i個主題的第j個主題詞的權重,表示與第k個主題詞ck相同的第i個主題的第j個主題詞的權值;如表2獲得主題詞“Comedy”的加權平均權重為:
從而獲得11個主題詞的初始加權平均權重:
步驟7、構建用戶A的RBM主題偏好模型;
步驟7.1、如圖3所示,RBM主題偏好模型的第一層為可見層、第二層為隱藏層;可見層包含K個可見單元,并將第s次更新的K個主題詞的加權平均權重作為K個可見單元的輸入值;隱藏層包含L個隱層單元,記為h={h1,h2,...,hl,...,hL},hl表示第l個隱層單元,1≤l≤L;
步驟7.2、隨機初始化第s次更新的可見層和隱藏層之間的權重,記為Ws;其中,記第s次更新的可見層中第k個可見單元與第l個隱層單元之間的權重為1≤k≤K;
步驟7.3、利用式(2)得到用戶A的主題偏好模型的第s次更新的第l個隱層單元hl的值從而得到所有隱層單元的值
步驟7.4、利用式(3)得到用戶A的主題偏好模型的第s+1次更新的第k個可見單元的值從而得到題偏好模型的第s+1次更新的所有可見單元的值
式(3)中,表示調節(jié)參數(shù);
步驟7.5、利用式(4)更新第s次更新的第k個可見單元和第l個隱層單元之間的權重得到第s+1次更新的第k個可見層和第l個隱藏層之間的權重為從而得到所有可見層與隱層之間的權重Ws+1:
式(4)中,η表示學習速率,一般取η=0.01;
步驟7.6、將s+1賦值給s,并返回步驟7.3順序執(zhí)行,直到所有可見層與隱層之間的權重收斂為止;步驟7的主要目的是根據(jù)用戶A的歷史偏好主題,利用RBM提取出用戶的抽象偏好特征即隱層單元的值,作為下一步利用RBM未知偏好主題預測模型的輸入值;
步驟8、從數(shù)據(jù)庫中獲取用戶A的近鄰用戶,記為U={u1,u2,...,uz,...,uZ},uz表示用戶A的第z個近鄰用戶,1≤z≤Z;對應近鄰用戶的獲取可以通過聚類算法,也可以通過余弦相似度計算用戶的興趣相似度等;
步驟9、建立用戶A的近鄰用戶U的RBM主題偏好模型及預測所有未知主題詞的加權平均權重:
步驟9.1、按照步驟1獲取用戶A的第z個近鄰用戶uz的需求信息和相似信息,并分別按照步驟2與步驟3得到第z個近鄰用戶uz的需求文檔Dz及nz個主題;
步驟9.2、對第z個近鄰用戶uz的nz個主題中所有主題詞分別設置相應的權值,從而利用式(1)獲得第z個近鄰用戶uz的nz個主題的所有主題詞的初始加權平均權重;
步驟9.3、按照步驟7構建用戶A的第z個近鄰用戶uz的RBM主題偏好模型;從而得到用戶A的所有近鄰用戶的RBM主題偏好模型;
步驟9.4、將用戶A的所有鄰居用戶的相應主題詞做并集后再與用戶A的所有主題詞做差集,得到待預測主題詞集合,記為G={g1,g2,...,ge,...,gE};ge表示第e個待預測主題詞;1≤e≤E;
步驟9.5、利用式(5)得到第e個待預測主題詞ge所在的RBM主題偏好模型的可視層中,與第e個待預測主題詞ge相對應的可視單元與第l個隱層單元的平均權重
式(6)中,表示在近鄰用戶U中包含第e個待預測主題詞ge的所有近鄰用戶的第e個待預測主題詞ge相對應的可視單元與第l個隱層單元的權重之和;表示近鄰用戶U中包含第e個待預測主題詞ge的所有近鄰用戶的數(shù)量;
步驟9.6、利用式(6)預測得到用戶A的第e個待預測主題詞ge的加權平均權重從而得到用戶A的所有待預測主題詞的加權平均權重:
式(7)中,ξ為另一個調節(jié)參數(shù);表示收斂時第l個隱層單元hl的值
在步驟9中,主要利用“協(xié)同思想”,通過用戶A的近鄰用戶,則能更好的了解用戶A。其中,用戶A的偏好和其近鄰用戶的偏好更為相似,這也使在預測用戶A的未知主題詞中能得到更加準確的主題詞及排除干擾的主題詞;
步驟10、構建用戶A的RBM未知偏好主題預測模型;在本步驟中,根據(jù)步驟9得到的主題詞來獲取用戶A的未知偏好主題,步驟10與步驟9的區(qū)別是步驟9僅僅得到的是未知主題詞的加權平均權重,但在真正做推薦時,需要的是具體的主題詞在哪個主題中,及其相應的主題詞權重;知道主題詞在哪個主題中才不會造成主題詞的“一詞多義”和“多詞一義”,通過知道主題詞的權重,才能計算下一步用戶偏好主題和業(yè)務主題的相似度,進而為用戶A做出推薦;
步驟10.1、去除用戶A的所有待預測主題詞的加權平均權重中若干個較小值,得到用戶A的未知偏好主題詞,記為G'={g1',g2',...,gf',...,gF'};1≤F≤E;
步驟10.2、對用戶A的第z個近鄰用戶uz的第α個主題的主題詞與未知偏好主題詞G'取交集,得到的集合記為集合的大小,記為1≤α≤nz;從而得到第z個近鄰用戶uz的所有主題的主題詞與主題詞G'的交集的大小,記為集合進而得到所有近鄰用戶U={u1,u2,...,uz,...,uZ}的所有主題的主題詞與主題詞G'的交集的大小
步驟10.3、對第z個近鄰用戶uz的集合中所有元素進行求和,得到的值記為從而對所有近鄰用戶HU中所有元素進行求和,得到的值的集合,記為
步驟10.4、對H中的值進行降序排序,將前M個最大的值所對應的M個近鄰用戶的主題,作為用戶A的預測主題的范圍;
步驟10.5、對M個近鄰用戶中的任意一個近鄰用戶的任意一個主題的所有主題詞,與主題詞G'作交集,得到交集集合中的主題詞個數(shù);從而得到M個近鄰用戶中的任意一個近鄰用戶的所有主題的主題詞與主題詞G'作交集后的主題詞個數(shù);進而得到M個近鄰用戶所有主題的主題詞與主題詞G'作交集后的主題詞個數(shù);
步驟10.6、對M個近鄰用戶所有主題的主題詞與主題詞G'作交集后的主題詞個數(shù)進行降序排序,將前N個最大的值所對應的主題,作為用戶A的預測偏好主題;
步驟11、更新用戶A的預測偏好主題的主題詞的權重;用戶A的未知偏好主題的主題詞的原始權重,反應的是用戶A的近鄰用戶對其相應主題的偏好,而經過預測該未知偏好主題將作為用戶A的主題。因此,相應的主題詞權重需要做進一步的更新;
步驟11.1、判斷用戶A的任一預測偏好主題的主題詞是否出現(xiàn)在主題詞G'中,若是,則執(zhí)行步驟11.2,否則表示出現(xiàn)在主題詞C中,并執(zhí)行步驟11.3;
步驟11.2、利用式(1)計算用戶A的任一預測偏好主題的主題詞在主題詞G'的權重,其中,rk取值為任一預測偏好主題所在近鄰用戶的所有主題中與用戶A的第k個主題詞ck相同的主題詞出現(xiàn)的次數(shù),取值為第k個主題詞ck在任一預測偏好主題所在近鄰用戶的所有主題中的平均權值;
步驟11.3、利用式(1)計算用戶A的任一預測偏好主題的主題詞在主題詞C={c1,c2,...,ck,...,cK}中的權重,其中,rk取值為用戶A的所有主題中第k個主題詞ck出現(xiàn)的次數(shù),取值為第k個主題詞ck在用戶A的所有主題中的平均權值;
步驟11.4、重復步驟11.1,從而計算任一預測偏好主題的所有主題詞的權重;進而得到N個預測偏好主題的所有主題詞的權重;
步驟12、從數(shù)據(jù)庫中取出所有待推薦業(yè)務,記為O={O1,O2,...,Ob,...,OB},Ob表示第b個待推薦業(yè),1≤b≤B;
步驟13、根據(jù)第b個待推薦業(yè)務Ob從數(shù)據(jù)庫中匹配相應的相似信息;
步驟14、利用分詞工具對第b個待推薦業(yè)務Ob和相似信息進行分詞,得到第b個待推薦業(yè)務Ob的初始文檔D0';
步驟15、利用LDA主題模型對初始文檔D0'進行主題提取,得到第b個待推薦業(yè)務Ob的n'個主題,記為表示第b個待推薦業(yè)務Ob的第i'個主題;并有表示第b個待推薦業(yè)務Ob的第i'個主題的第j'個主題詞,表示第b個待推薦業(yè)務Ob的第i'個主題的第j'個主題詞的權重;1≤i'≤n';1≤j'≤m';
步驟16、按照步驟15得到所有待推薦業(yè)務O的主題
步驟17、計算用戶A對第b個待推薦業(yè)務Ob的偏好度從而得到用戶A對所有待推薦業(yè)務O=(O1,O2,...,Ob,...,OB)的偏好度
步驟17.1、利用式(7)計算用戶A的第i個主題TiA和第b個待推薦業(yè)務Ob的第i'個主題的余弦相似度
步驟17.2、利用式(8)計算用戶A的第i個主題TiA和第b個待推薦業(yè)務Ob的所有主題的平均相似度
步驟17.3、按照步驟17.2計算用戶A的所有主題和第b個待推薦業(yè)務Ob所有主題相似度,并取相似度最高的M”個主題及其對應的平均相似度;記為表示用戶A的所有主題和第b個待推薦業(yè)務Ob的第m”個相似度最高的偏好主題;表示用戶A的所有主題和第b個待推薦業(yè)務Ob的第m”個相似度最高的偏好主題的平均相似度;
步驟17.4、利用式(9)計算用戶A對第b個待推薦業(yè)務Ob的偏好度為
步驟18、對偏好度P進行降序排序,并將前Np個偏好度所對應的業(yè)務推薦給用戶A。