1.一種基于受限玻爾茲曼機(jī)的文本業(yè)務(wù)推薦方法,其特征是應(yīng)用于由數(shù)據(jù)庫(kù)、服務(wù)器和客戶端所構(gòu)成的一個(gè)推薦環(huán)境中,所述推薦方法是按如下步驟進(jìn)行:
步驟1、利用客戶端獲取用戶A的需求信息,并根據(jù)所述需求信息從所述數(shù)據(jù)庫(kù)中匹配相應(yīng)的相似信息;
步驟2、利用分詞工具對(duì)所述用戶A的需求信息和相似信息進(jìn)行分詞,得到所述用戶A的需求文檔D0;
步驟3、利用LDA主題模型對(duì)所述需求文檔D0進(jìn)行主題提取,得到所述用戶A的n個(gè)主題,記為TiA表示所述用戶A的第i個(gè)主題;并有表示所述用戶A的第i個(gè)主題的第j個(gè)主題詞,表示所述用戶A的第i個(gè)主題的第j個(gè)主題詞的權(quán)重;1≤i≤n;1≤j≤m;
步驟4、對(duì)所述用戶A的第i個(gè)主題的m個(gè)主題詞分別設(shè)置相應(yīng)的權(quán)值,記為表示所述用戶A的第i個(gè)主題的第j個(gè)主題詞的權(quán)值;
步驟5、計(jì)算主題詞集合C出現(xiàn)的次數(shù):
步驟5.1、對(duì)所述用戶A的n個(gè)主題中所有主題詞取并集,得到所述用戶A的主題詞集合C={c1,c2,...,ck,...,cK},ck表示所述用戶A的第k個(gè)主題詞,1≤k≤K;
步驟5.2、利用所述用戶A的主題詞集合C={c1,c2,...,ck,...,cK}與所述用戶A的第i個(gè)主題計(jì)算主題詞集合C中第k個(gè)主題詞ck在主題TiA中主題詞出現(xiàn)的次數(shù)rk;從而得到所述用戶A的主題詞集合C中每一主題詞在所有主題的主題詞出現(xiàn)的次數(shù)R={r1,r2,...,rk,...,rK};
步驟6、定義更新變次數(shù)為s,并初始化s=0;利用式(1)獲得第s次更新的第k個(gè)主題詞ck的加權(quán)平均權(quán)重從而獲得第s次更新的K個(gè)主題詞的初始加權(quán)平均權(quán)重
式(1)表示在所述用戶A的主題詞集合C中與第k個(gè)主題詞ck相同的所有主題詞的權(quán)重和權(quán)值的乘積之和,式(1)中,表示與第k個(gè)主題詞ck相同的第i個(gè)主題的第j個(gè)主題詞的權(quán)重,表示與第k個(gè)主題詞ck相同的第i個(gè)主題的第j個(gè)主題詞的權(quán)值;
步驟7、構(gòu)建所述用戶A的RBM主題偏好模型;
步驟7.1、所述RBM主題偏好模型的第一層為可見(jiàn)層、第二層為隱藏層;所述可見(jiàn)層包含K個(gè)可見(jiàn)單元,并將所述第s次更新的K個(gè)主題詞的加權(quán)平均權(quán)重作為所述K個(gè)可見(jiàn)單元的輸入值;所述隱藏層包含L個(gè)隱層單元,記為h={h1,h2,...,hl,...,hL},hl表示第l個(gè)隱層單元,1≤l≤L;
步驟7.2、隨機(jī)初始化第s次更新的可見(jiàn)層和隱藏層之間的權(quán)重,記為Ws;其中,記第s次更新的可見(jiàn)層中第k個(gè)可見(jiàn)單元與第l個(gè)隱層單元之間的權(quán)重為
步驟7.3、利用式(2)得到所述用戶A的主題偏好模型的第s次更新的第l個(gè)隱層單元hl的值從而得到所有隱層單元的值
步驟7.4、利用式(3)得到所述用戶A的主題偏好模型的第s+1次更新的第k個(gè)可見(jiàn)單元的值從而得到題偏好模型的第s+1次更新的所有可見(jiàn)單元的值
式(3)中,表示調(diào)節(jié)參數(shù);
步驟7.5、利用式(4)更新第s次更新的第k個(gè)可見(jiàn)單元和第l個(gè)隱層單元之間的權(quán)重得到第s+1次更新的第k個(gè)可見(jiàn)層和第l個(gè)隱藏層之間的權(quán)重為從而得到所有可見(jiàn)層與隱層之間的權(quán)重Ws+1:
式(4)中,η表示學(xué)習(xí)速率;
步驟7.6、將s+1賦值給s,并返回步驟7.3順序執(zhí)行,直到所有可見(jiàn)層與隱層之間的權(quán)重收斂為止;
步驟8、從所述數(shù)據(jù)庫(kù)中獲取所述用戶A的近鄰用戶,記為U={u1,u2,...,uz,...,uZ},uz表示所述用戶A的第z個(gè)近鄰用戶,1≤z≤Z;
步驟9、建立所述用戶A的近鄰用戶U的RBM主題偏好模型及預(yù)測(cè)所有未知主題詞的加權(quán)平均權(quán)重:
步驟9.1、按照步驟1獲取所述用戶A的第z個(gè)近鄰用戶uz的需求信息和相似信息,并分別按照步驟2與步驟3得到第z個(gè)近鄰用戶uz的需求文檔Dz及nz個(gè)主題;
步驟9.2、對(duì)所述第z個(gè)近鄰用戶uz的nz個(gè)主題中所有主題詞分別設(shè)置相應(yīng)的權(quán)值,從而利用式(1)獲得第z個(gè)近鄰用戶uz的nz個(gè)主題的所有主題詞的初始加權(quán)平均權(quán)重;
步驟9.3、按照步驟7構(gòu)建所述用戶A的第z個(gè)近鄰用戶uz的RBM主題偏好模型;從而得到所述用戶A的所有近鄰用戶的RBM主題偏好模型;
步驟9.4、將所述用戶A的所有鄰居用戶的相應(yīng)主題詞做并集后再與所述用戶A的所有主題詞做差集,得到待預(yù)測(cè)主題詞集合,記為G={g1,g2,...,ge,...,gE};ge表示第e個(gè)待預(yù)測(cè)主題詞;1≤e≤E;
步驟9.5、利用式(5)得到第e個(gè)待預(yù)測(cè)主題詞ge所在的RBM主題偏好模型的可視層中,與第e個(gè)待預(yù)測(cè)主題詞ge相對(duì)應(yīng)的可視單元與第l個(gè)隱層單元的平均權(quán)重
式(6)中,表示在所述近鄰用戶U中包含第e個(gè)待預(yù)測(cè)主題詞ge的所有近鄰用戶的第e個(gè)待預(yù)測(cè)主題詞ge相對(duì)應(yīng)的可視單元與第l個(gè)隱層單元的權(quán)重之和;表示所述近鄰用戶U中包含第e個(gè)待預(yù)測(cè)主題詞ge的所有近鄰用戶的數(shù)量;
步驟9.6、利用式(6)預(yù)測(cè)得到所述用戶A的第e個(gè)待預(yù)測(cè)主題詞ge的加權(quán)平均權(quán)重從而得到所述用戶A的所有待預(yù)測(cè)主題詞的加權(quán)平均權(quán)重:
式(7)中,ξ為另一個(gè)調(diào)節(jié)參數(shù);表示收斂時(shí)第l個(gè)隱層單元hl的值
步驟10、構(gòu)建所述用戶A的RBM未知偏好主題預(yù)測(cè)模型;
步驟10.1、去除所述用戶A的所有待預(yù)測(cè)主題詞的加權(quán)平均權(quán)重中若干個(gè)較小值,得到所述用戶A的未知偏好主題詞,記為G'={g1',g2',...,gf',...,gF'};1≤F≤E;
步驟10.2、對(duì)所述用戶A的第z個(gè)近鄰用戶uz的第α個(gè)主題的主題詞與所述未知偏好主題詞G'取交集,得到的集合記為集合的大小,記為從而得到第z個(gè)近鄰用戶uz的所有主題的主題詞與所述主題詞G'的交集的大小,記為集合進(jìn)而得到所有近鄰用戶U={u1,u2,...,uz,...,uZ}的所有主題的主題詞與所述主題詞G'的交集的大小
步驟10.3、對(duì)第z個(gè)近鄰用戶uz的集合中所有元素進(jìn)行求和,得到的值記為從而對(duì)所有近鄰用戶HU中所有元素進(jìn)行求和,得到的值的集合,記為
步驟10.4、對(duì)H中的值進(jìn)行降序排序,將前M個(gè)最大的值所對(duì)應(yīng)的M個(gè)近鄰用戶的主題,作為所述用戶A的預(yù)測(cè)主題的范圍;
步驟10.5、對(duì)所述M個(gè)近鄰用戶中的任意一個(gè)近鄰用戶的任意一個(gè)主題的所有主題詞,與所述主題詞G'作交集,得到交集集合中的主題詞個(gè)數(shù);從而得到所述M個(gè)近鄰用戶中的任意一個(gè)近鄰用戶的所有主題的主題詞與所述主題詞G'作交集后的主題詞個(gè)數(shù);進(jìn)而得到M個(gè)近鄰用戶所有主題的主題詞與所述主題詞G'作交集后的主題詞個(gè)數(shù);
步驟10.6、對(duì)M個(gè)近鄰用戶所有主題的主題詞與所述主題詞G'作交集后的主題詞個(gè)數(shù)進(jìn)行降序排序,將前N個(gè)最大的值所對(duì)應(yīng)的主題,作為所述用戶A的預(yù)測(cè)偏好主題;
步驟11、更新所述用戶A的預(yù)測(cè)偏好主題的主題詞的權(quán)重;
步驟11.1、判斷所述用戶A的任一預(yù)測(cè)偏好主題的主題詞是否出現(xiàn)在主題詞G'中,若是,則執(zhí)行步驟11.2,否則表示出現(xiàn)在主題詞C中,并執(zhí)行步驟11.3;
步驟11.2、利用式(1)計(jì)算所述用戶A的任一預(yù)測(cè)偏好主題的主題詞在所述主題詞G'的權(quán)重,其中,rk取值為任一預(yù)測(cè)偏好主題所在近鄰用戶的所有主題中與所述用戶A的第k個(gè)主題詞ck相同的主題詞出現(xiàn)的次數(shù),取值為第k個(gè)主題詞ck在任一預(yù)測(cè)偏好主題所在近鄰用戶的所有主題中的平均權(quán)值;
步驟11.3、利用式(1)計(jì)算所述用戶A的任一預(yù)測(cè)偏好主題的主題詞在所述主題詞C={c1,c2,...,ck,...,cK}中的權(quán)重,其中,rk取值為所述用戶A的所有主題中第k個(gè)主題詞ck出現(xiàn)的次數(shù),取值為第k個(gè)主題詞ck在所述用戶A的所有主題中的平均權(quán)值;
步驟11.4、重復(fù)步驟11.1,從而計(jì)算任一預(yù)測(cè)偏好主題的所有主題詞的權(quán)重;進(jìn)而得到N個(gè)預(yù)測(cè)偏好主題的所有主題詞的權(quán)重;
步驟12、從所述數(shù)據(jù)庫(kù)中取出所有待推薦業(yè)務(wù),記為O={O1,O2,...,Ob,...,OB},Ob表示第b個(gè)待推薦業(yè),1≤b≤B;
步驟13、根據(jù)所述第b個(gè)待推薦業(yè)務(wù)Ob從所述數(shù)據(jù)庫(kù)中匹配相應(yīng)的相似信息;
步驟14、利用分詞工具對(duì)所述第b個(gè)待推薦業(yè)務(wù)Ob和相似信息進(jìn)行分詞,得到所述第b個(gè)待推薦業(yè)務(wù)Ob的初始文檔D0';
步驟15、利用LDA主題模型對(duì)所述初始文檔D0'進(jìn)行主題提取,得到所述第b個(gè)待推薦業(yè)務(wù)Ob的n'個(gè)主題,記為表示所述第b個(gè)待推薦業(yè)務(wù)Ob的第i'個(gè)主題;并有表示所述第b個(gè)待推薦業(yè)務(wù)Ob的第i'個(gè)主題的第j'個(gè)主題詞,表示所述第b個(gè)待推薦業(yè)務(wù)Ob的第i'個(gè)主題的第j'個(gè)主題詞的權(quán)重;1≤i'≤n';1≤j'≤m';
步驟16、按照步驟15得到所有待推薦業(yè)務(wù)O的主題
步驟17、計(jì)算所述用戶A對(duì)第b個(gè)待推薦業(yè)務(wù)Ob的偏好度從而得到所述用戶A對(duì)所有待推薦業(yè)務(wù)O=(O1,O2,...,Ob,...,OB)的偏好度
步驟17.1、計(jì)算所述用戶A的第i個(gè)主題TiA和第b個(gè)待推薦業(yè)務(wù)Ob的第i'個(gè)主題的余弦相似度
步驟17.2、利用式(7)計(jì)算所述用戶A的第i個(gè)主題TiA和第b個(gè)待推薦業(yè)務(wù)Ob的所有主題的平均相似度
步驟17.3、按照步驟17.2計(jì)算所述用戶A的所有主題和第b個(gè)待推薦業(yè)務(wù)Ob所有主題相似度,并取相似度最高的M”個(gè)主題及其對(duì)應(yīng)的平均相似度;記為表示所述用戶A的所有主題和第b個(gè)待推薦業(yè)務(wù)Ob的第m”個(gè)相似度最高的偏好主題;表示所述用戶A的所有主題和第b個(gè)待推薦業(yè)務(wù)Ob的第m”個(gè)相似度最高的偏好主題的平均相似度;
步驟17.4、利用式(8)計(jì)算所述用戶A對(duì)第b個(gè)待推薦業(yè)務(wù)Ob的偏好度為
步驟18、對(duì)偏好度P進(jìn)行降序排序,并將前Np個(gè)偏好度所對(duì)應(yīng)的業(yè)務(wù)推薦給用戶A。