一种基于受限玻尔兹曼机的文本业务推荐方法转让专利

申请号 : CN201710040092.X

文献号 : CN106777359B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴国栋史明哲

申请人 : 安徽农业大学

摘要 :

本发明公开了一种基于受限玻尔兹曼机的文本业务推荐方法,是通过输入业务需求描述,自动获取其相似信息,利用LDA主题模型提取主题,并结合RBM未知偏好主题预测模型得到用户的偏好主题,通过计算用户偏好主题和相应待推荐业务的主题相似度,进而为用户推荐,省去用户花费大量的时间去寻找需求业务及对各个业务进行决策分析的工作量。本发明能帮助用户过滤掉无效业务信息及对未知潜在偏好主题进行预测,从而能提供优质个性化的潜在业务信息。

权利要求 :

1.一种基于受限玻尔兹曼机的文本业务推荐方法,其特征是应用于由数据库、服务器和客户端所构成的一个推荐环境中,所述推荐方法是按如下步骤进行:步骤1、利用客户端获取用户A的需求信息,并根据所述需求信息从所述数据库中匹配相应的相似信息;

步骤2、利用分词工具对所述用户A的需求信息和相似信息进行分词,得到所述用户A的需求文档D0;

步骤3、利用LDA主题模型对所述需求文档D0进行主题提取,得到所述用户A的n个主题,记为 TiA表示所述用户A的第i个主题;并有表示所述用户A的第i个主题的第j个主题

词, 表示所述用户A的第i个主题的第j个主题词的权重;1≤i≤n;1≤j≤m;

步骤4、对所述用户A的第i个主题的m个主题词 分别设置相应的权值,记为 表示所述用户A的第i个主题的第j个主题词 的

权值;

步骤5、计算主题词集合C出现的次数:

步骤5.1、对所述用户A的n个主题 中所有主题词取并集,得到所述用户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中主题词出现的次数rk;从而得到所述用户A的主题词集合C中每一主题词在所有主题的主题词出现的次数R={r1,r2,...,rk,...,rK};

步骤6、定义更新次数为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)中,表示调节参数;

步骤7.5、利用式(4)更新第s次更新的第k个可见单元和第l个隐层单元之间的权重得到第s+1次更新的第k个可见层和第l个隐藏层之间的权重为 从而得到所有可见层与隐层之间的权重Ws+1:式(4)中,η表示学习速率;

步骤7.6、将s+1赋值给s,并返回步骤7.3顺序执行,直到所有可见层与隐层之间的权重收敛为止;

步骤8、从所述数据库中获取所述用户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的所有近邻用户的数量;

步骤9.6、利用式(6)预测得到所述用户A的第e个待预测主题词ge的加权平均权重从而得到所述用户A的所有待预测主题词的加权平均权重:式(7)中,ξ为另一个调节参数; 表示收敛时第l个隐层单元hl的值步骤10、构建所述用户A的RBM未知偏好主题预测模型;

步骤10.1、去除所述用户A的所有待预测主题词的加权平均权重中若干个较小值,得到所述用户A的未知偏好主题词,记为G'={g1',g2',...,gf',...,gF'};1≤f≤F;

步骤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'作交集,得到交集集合中的主题词个数;从而得到所述M个近邻用户中的任意一个近邻用户的所有主题的主题词与所述主题词G'作交集后的主题词个数;进而得到M个近邻用户所有主题的主题词与所述主题词G'作交集后的主题词个数;

步骤10.6、对M个近邻用户所有主题的主题词与所述主题词G'作交集后的主题词个数进行降序排序,将前N个最大的值所对应的主题,作为所述用户A的预测偏好主题;

步骤11、更新所述用户A的预测偏好主题的主题词的权重;

步骤11.1、判断所述用户A的任一预测偏好主题的主题词是否出现在主题词G'中,若是,则执行步骤11.2,否则表示出现在主题词C中,并执行步骤11.3;

步骤11.2、利用式(1)计算所述用户A的任一预测偏好主题的主题词在所述主题词G'的权重,其中,rk取值为任一预测偏好主题所在近邻用户的所有主题中与所述用户A的第k个主题词ck相同的主题词出现的次数, 取值为第k个主题词ck在任一预测偏好主题所在近邻用户的所有主题中的平均权值;

步骤11.3、利用式(1)计算所述用户A的任一预测偏好主题的主题词在所述主题词C={c1,c2,...,ck,...,cK}中的权重,其中,rk取值为所述用户A的所有主题中第k个主题词ck出现的次数, 取值为第k个主题词ck在所述用户A的所有主题中的平均权值;

步骤11.4、重复步骤11.1,从而计算任一预测偏好主题的所有主题词的权重;进而得到N个预测偏好主题的所有主题词的权重;

步骤12、从所述数据库中取出所有待推荐业务,记为O={O1,O2,...,Ob,...,OB},Ob表示第b个待推荐业务,1≤b≤B;

步骤13、根据所述第b个待推荐业务Ob从所述数据库中匹配相应的相似信息;

步骤14、利用分词工具对所述第b个待推荐业务Ob和相似信息进行分词,得到所述第b个待推荐业务Ob的初始文档D0';

步骤15、利用LDA主题模型对所述初始文档D0'进行主题提取,得到所述第b个待推荐业务Ob的n'个主题,记为 表示所述第b个待推荐业务Ob的第i'个主题;并有 表示所述第b个待

推荐业务Ob的第i'个主题的第j'个主题词, 表示所述第b个待推荐业务Ob的第i'个主题的第j'个主题词的权重;1≤i'≤n';1≤j'≤m';

步骤16、按照步骤15得到所有待推荐业务O的主题

步骤17、计算所述用户A对第b个待推荐业务Ob的偏好度 从而得到所述用户A对所有待推荐业务O=(O1,O2,...,Ob,...,OB)的偏好度步骤17.1、计算所述用户A的第i个主题TiA和第b个待推荐业务Ob的第i'个主题 的余弦相似度A

步骤17.2、利用式(7)计算所述用户A的第i个主题Ti 和第b个待推荐业务Ob的所有主题的平均相似度步骤17.3、按照步骤17.2计算所述用户A的所有主题和第b个待推荐业务Ob所有主题相似度,并取相似度最高的M”个主题及其对应的平均相似度;记为表示所述用户A的所有主题

和第b个待推荐业务Ob的第m”个相似度最高的偏好主题; 表示所述用户A的所有主题和第b个待推荐业务Ob的第m”个相似度最高的偏好主题的平均相似度;

步骤17.4、利用式(8)计算所述用户A对第b个待推荐业务Ob的偏好度为步骤18、对偏好度P进行降序排序,并将前Np个偏好度所对应的业务推荐给用户A。

说明书 :

一种基于受限玻尔兹曼机的文本业务推荐方法

技术领域

[0001] 本发明涉及内容推荐,特别涉及一种基于受限玻尔兹曼机的文本业务推荐方法。

背景技术

[0002] 在推荐系统的研究中,获取用户偏好的方式主要有两种方式,一种是评分,另一种是物品特征或特性的专业描述。协同过滤技术是利用评分数据获取用户偏好的重要技术,除了评分,不需要知道关于要推荐物品的任何信息。它的主要好处是避免了付出很大代价向系统提供详细且实时更新的物品描述信息,但是,如果想根据物品的特性和用户的特殊偏好非常直观地选择可推荐物品,用纯粹的协同过滤方法是不可能实现的。基于内容的推荐是推荐系统根据物品的特征信息,找出物品间的相似关系,然后向用户推荐与他们喜欢的物品相似的其他物品。推荐结果的好坏依赖于物品特征的选取,若是物品特征选取的合适,就会获得较理想推荐结果,反之,推荐结果可能会不如人意。所以,物品的特征的选取十分重要,与推荐系统的性能紧密相关。在实际环境中,物品特征或特性的专业描述更多的是有特定格式的。在品质方面,某人喜欢某个物品并不总是和物品的某个特征相关,可能只是对这个物品外观设计的某种主观印象感兴趣。
[0003] 因此,在研究如何根据用户描述的业务信息,进行业务推荐时,将会涉及到如下问题:
[0004] (1)每一个业务描述信息都是用户的主观想法,没有一个统一的特征标准,对于同一业务可能有不同的描述方式,造成“一词多义”或“多词一义”这就为推荐带来极大的挑战;
[0005] (2)业务推荐不同于物品的推荐,业务具有时效性,及时性。对于过时的无效业务信息,则不能推荐给用户;
[0006] (3)针对传统的业务处理网站,比如招聘网站、猪八戒服务交易平台等业务种类比较复杂,信息比较混乱,且针对不同的用户呈现给用户的信息相同,造成推荐结果不准确,无法实现用户的个性化需求;
[0007] (4)用户的兴趣是动态变化的,仅仅根据用户的历史信息进行推荐,很难提高用户对推荐结果的惊喜度;甚至造成重复推荐用户以前喜欢的物品,但现在用户不喜欢的物品。

发明内容

[0008] 本发明是为了解决上述现有技术存在的不足之处,提出一种基于受限玻尔兹曼机的文本业务推荐方法,以期能帮助用户过滤掉无效业务信息及对未知潜在偏好主题进行预测,从而能提供优质个性化的潜在业务信息。
[0009] 为实现上述发明目的,本发明采用如下技术方案:
[0010] 本发明一种基于受限玻尔兹曼机的文本业务推荐方法的特点是应用于由数据库、服务器和客户端所构成的一个推荐环境中,所述推荐方法是按如下步骤进行:
[0011] 步骤1、利用客户端获取用户A的需求信息,并根据所述需求信息从所述数据库中匹配相应的相似信息;
[0012] 步骤2、利用分词工具对所述用户A的需求信息和相似信息进行分词,得到所述用户A的需求文档D0;
[0013] 步骤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;
[0014] 步骤4、对所述用户A的第i个主题的m个主题词 分别设置相应的权值,记为 表示所述用户A的第i个主题的第j个主题词
的权值;
[0015] 步骤5、计算主题词集合C出现的次数:
[0016] 步骤5.1、对所述用户A的n个主题DA={T1A,T2A,...,TiA,...,TnA}中所有主题词取并集,得到所述用户A的主题词集合C={c1,c2,...,ck,...,cK},ck表示所述用户A的第k个主题词,1≤k≤K;
[0017] 步骤5.2、利用所述用户A的主题词集合C={c1,c2,...,ck,...,cK}与所述用户A的第i个主题 计算主题词集合C中第k个主题词ck在主题TiA中主题词出现的次数rk;从而得到所述用户A的主题词集合C中每一主题词在所有主题的主题词出现的次数R={r1,r2,...,rk,...,rK};
[0018] 步骤6、定义更新变次数为s,并初始化s=0;利用式(1)获得第s次更新的第k个主题词ck的加权平均权重 从而获得第s次更新的K个主题词的初始加权平均权重[0019]
[0020] 式(1)表示在所述用户A的主题词集合C中与第k个主题词ck相同的所有主题词的权重和权值的乘积之和,式(1)中, 表示与第k个主题词ck相同的第i个主题的第j个主题词 的权重, 表示与第k个主题词ck相同的第i个主题的第j个主题词 的权值;
[0021] 步骤7、构建所述用户A的RBM主题偏好模型;
[0022] 步骤7.1、所述RBM主题偏好模型的第一层为可见层、第二层为隐藏层;所述可见层包含K个可见单元,并将所述第s次更新的K个主题词的加权平均权重 作为所述K个可见单元的输入值;所述隐藏层包含L个隐层单元,记为h={h1,h2,...,hl,...,hL},hl表示第l个隐层单元,1≤l≤L;
[0023] 步骤7.2、随机初始化第s次更新的可见层和隐藏层之间的权重,记为Ws;其中,记第s次更新的可见层中第k个可见单元与第l个隐层单元之间的权重为 1≤k≤K;
[0024] 步骤7.3、利用式(2)得到所述用户A的主题偏好模型的第s次更新的第l个隐层单元hl的值 从而得到所有隐层单元的值
[0025]
[0026] 步骤7.4、利用式(3)得到所述用户A的主题偏好模型的第s+1次更新的第k个可见单元的值 从而得到题偏好模型的第s+1次更新的所有可见单元的值
[0027]
[0028] 式(3)中,表示调节参数;
[0029] 步骤7.5、利用式(4)更新第s次更新的第k个可见单元和第l个隐层单元之间的权重 得到第s+1次更新的第k个可见层和第l个隐藏层之间的权重为 从而得到所有可见层与隐层之间的权重Ws+1:
[0030]
[0031] 式(4)中,η表示学习速率;
[0032] 步骤7.6、将s+1赋值给s,并返回步骤7.3顺序执行,直到所有可见层与隐层之间的权重收敛为止;
[0033] 步骤8、从所述数据库中获取所述用户A的近邻用户,记为U={u1,u2,...,uz,...,uZ},uz表示所述用户A的第z个近邻用户,1≤z≤Z;
[0034] 步骤9、建立所述用户A的近邻用户U的RBM主题偏好模型及预测所有未知主题词的加权平均权重:
[0035] 步骤9.1、按照步骤1获取所述用户A的第z个近邻用户uz的需求信息和相似信息,并分别按照步骤2与步骤3得到第z个近邻用户uz的需求文档Dz及nz个主题;
[0036] 步骤9.2、对所述第z个近邻用户uz的nz个主题中所有主题词分别设置相应的权值,从而利用式(1)获得第z个近邻用户uz的nz个主题的所有主题词的初始加权平均权重;
[0037] 步骤9.3、按照步骤7构建所述用户A的第z个近邻用户uz的RBM主题偏好模型;从而得到所述用户A的所有近邻用户的RBM主题偏好模型;
[0038] 步骤9.4、将所述用户A的所有邻居用户的相应主题词做并集后再与所述用户A的所有主题词做差集,得到待预测主题词集合,记为G={g1,g2,...,ge,...,gE};ge表示第e个待预测主题词;1≤e≤E;
[0039] 步骤9.5、利用式(5)得到第e个待预测主题词ge所在的RBM主题偏好模型的可视层中,与第e个待预测主题词ge相对应的可视单元与第l个隐层单元的平均权重[0040]
[0041] 式(6)中, 表示在所述近邻用户U中包含第e个待预测主题词ge的所有近邻用户的第e个待预测主题词ge相对应的可视单元与第l个隐层单元的权重之和; 表示所述近邻用户U中包含第e个待预测主题词ge的所有近邻用户的数量;
[0042] 步骤9.6、利用式(6)预测得到所述用户A的第e个待预测主题词ge的加权平均权重从而得到所述用户A的所有待预测主题词的加权平均权重:
[0043]
[0044] 式(7)中,ξ为另一个调节参数; 表示收敛时第l个隐层单元hl的值[0045] 步骤10、构建所述用户A的RBM未知偏好主题预测模型;
[0046] 步骤10.1、去除所述用户A的所有待预测主题词的加权平均权重中若干个较小值,得到所述用户A的未知偏好主题词,记为G'={g1',g2',...,gf',...,gF'};1≤F≤E;
[0047] 步骤10.2、对所述用户A的第z个近邻用户uz的第α个主题的主题词与所述未知偏好主题词G'取交集,得到的集合记为 集合 的大小,记为 1≤α≤nz;从而得到第z个近邻用户uz的所有主题的主题词与所述主题词G'的交集的大小,记为集合进而得到所有近邻用户U={u1,u2,...,uz,...,uZ}的所有主题的主题词与所述主题词G'的交集的大小
[0048] 步骤10.3、对第z个近邻用户uz的集合 中所有元素进行求和,得到的值记为 从而对所有近邻用户HU中所有元素进行求和,得到的值的集合,记为
[0049] 步骤10.4、对H中的值进行降序排序,将前M个最大的值所对应的M个近邻用户的主题,作为所述用户A的预测主题的范围;
[0050] 步骤10.5、对所述M个近邻用户中的任意一个近邻用户的任意一个主题的所有主题词,与所述主题词G'作交集,得到交集集合中的主题词个数;从而得到所述M个近邻用户中的任意一个近邻用户的所有主题的主题词与所述主题词G'作交集后的主题词个数;进而得到M个近邻用户所有主题的主题词与所述主题词G'作交集后的主题词个数;
[0051] 步骤10.6、对M个近邻用户所有主题的主题词与所述主题词G'作交集后的主题词个数进行降序排序,将前N个最大的值所对应的主题,作为所述用户A的预测偏好主题;
[0052] 步骤11、更新所述用户A的预测偏好主题的主题词的权重;
[0053] 步骤11.1、判断所述用户A的任一预测偏好主题的主题词是否出现在主题词G'中,若是,则执行步骤11.2,否则表示出现在主题词C中,并执行步骤11.3;
[0054] 步骤11.2、利用式(1)计算所述用户A的任一预测偏好主题的主题词在所述主题词G'的权重,其中,rk取值为任一预测偏好主题所在近邻用户的所有主题中与所述用户A的第k个主题词ck相同的主题词出现的次数, 取值为第k个主题词ck在任一预测偏好主题所在近邻用户的所有主题中的平均权值;
[0055] 步骤11.3、利用式(1)计算所述用户A的任一预测偏好主题的主题词在所述主题词C={c1,c2,...,ck,...,cK}中的权重,其中,rk取值为所述用户A的所有主题中第k个主题词ck出现的次数, 取值为第k个主题词ck在所述用户A的所有主题中的平均权值;
[0056] 步骤11.4、重复步骤11.1,从而计算任一预测偏好主题的所有主题词的权重;进而得到N个预测偏好主题的所有主题词的权重;
[0057] 步骤12、从所述数据库中取出所有待推荐业务,记为O={O1,O2,...,Ob,...,OB},Ob表示第b个待推荐业,1≤b≤B;
[0058] 步骤13、根据所述第b个待推荐业务Ob从所述数据库中匹配相应的相似信息;
[0059] 步骤14、利用分词工具对所述第b个待推荐业务Ob和相似信息进行分词,得到所述第b个待推荐业务Ob的初始文档D0';
[0060] 步骤15、利用LDA主题模型对所述初始文档D0'进行主题提取,得到所述第b个待推荐业务Ob的n'个主题,记为 表示所述第b个待推荐业务Ob的第i'个主题;并有 表示所述第b
个待推荐业务Ob的第i'个主题的第j'个主题词, 表示所述第b个待推荐业务Ob的第i'个主题的第j'个主题词的权重;1≤i'≤n';1≤j'≤m';
[0061] 步骤16、按照步骤15得到所有待推荐业务O的主题
[0062] 步骤17、计算所述用户A对第b个待推荐业务Ob的偏好度 从而得到所述用户A对所有待推荐业务O=(O1,O2,...,Ob,...,OB)的偏好度
[0063] 步骤17.1、计算所述用户A的第i个主题TiA和第b个待推荐业务Ob的第i'个主题的余弦相似度
[0064] 步骤17.2、利用式(7)计算所述用户A的第i个主题TiA和第b个待推荐业务Ob的所有主题的平均相似度
[0065]
[0066] 步骤17.3、按照步骤17.2计算所述用户A的所有主题和第b个待推荐业务Ob所有主题相似度,并取相似度最高的M”个主题及其对应的平均相似度;记为表示所
述用户A的所有主题和第b个待推荐业务Ob的第m”个相似度最高的偏好主题; 表示所述用户A的所有主题和第b个待推荐业务Ob的第m”个相似度最高的偏好主题的平均相似度;
[0067] 步骤17.4、利用式(8)计算所述用户A对第b个待推荐业务Ob的偏好度为[0068]
[0069] 步骤18、对偏好度P进行降序排序,并将前Np个偏好度所对应的业务推荐给用户A。
[0070] 与已有技术相比,本发明的有益效果体现在:
[0071] 1、本发明方法具有经济性、智能性和使用方便性。通过简单的输入业务描述信息,系统自动获取其相应的相似信息,利用LDA主题模型对主题进行提取,并结合RBM未知偏好主题预测模型得到用户的偏好主题,通过计算用户偏好主题和相应待推荐业务的主题相似度,进而为用户推荐个性化的优质业务信息,不需要用户花费大量的时间去寻找需要的业务,同时省去了用户对找到的各个业务进行决策分析的工作量;
[0072] 2、本发明针对业务描述的主观性,没有一个统一的特征标准,造成“一词多义”或“多词一义”等问题,结合LDA主题模型进行主题提取,其中,每个主题是由不同的主题词组成,根据主题词所在的主题及主题所包含的主题词,可以明确每个词所表达的含义;从而有效解决了业务描述信息的主观性,很难利用传统基于内容的方法进行推荐的问题;
[0073] 3、本发明通过计算用户偏好主题和业务主题的相似度进行推荐,其中用户的偏好主题在短期时间内基本不会发生变化,对不同业务进行推荐时,而无需重复计算用户的偏好主题,可以及时针对不同业务做出推荐;从而应用更加广泛,适用性更强。
[0074] 4、本发明提出的RBM未知偏好主题预测模型,可以有效对用户未知偏好主题进行预测,以发现用户未来兴趣趋势,从而帮助引导用户发现新的兴趣领域,同时弥补主题模型不能及时发现用户兴趣改变方面的不足;
[0075] 5、本发明针对传统实值受限玻尔兹曼机只利用评分数据,使所有用户对同一项目的预测评分都相同,缺乏可解释性(即模型进行预测时,只要物品相同,预测得到的评分也相同,也就无法解释不同的人对同一物品有不同的偏好)。本发明对其进行了相应的改进,并把改进的模型用在用户偏好的主题预测上;其中,采用每个受限玻尔兹曼机(RBM)对应一个用户,而每个用户都有相同个数的隐层单元,通过计算近邻用户中具有相同主题的平均权重来作为待预测主题的RBM权重,可以针对不同用户的同一主题得到不同的主题词权重。从而不仅解决了业务描述信息的主观性,很难在传统基于内容的方法进行推荐的问题,而且对传统实值受限玻尔兹曼机的预测缺乏可解释性的问题,提供了解决思路,并有效的应用在对用户偏好主题预测上。

附图说明

[0076] 图1为本发明文本业务推荐方法的应用环境图;
[0077] 图2为本发明文本业务推荐的流程示意图;
[0078] 图3为本发明RBM未知偏好主题预测模型图。

具体实施方式

[0079] 本实施例中,一种基于受限玻尔兹曼机的文本业务推荐方法,是应用于由数据库、服务器和客户端所构成的一个推荐环境中。如图1所示,安装有浏览器客户端的终端设备与服务器通过网络连接,服务器连接数据库,该数据库用于存储各种数据,如本发明中的用户偏好信息,该数据库可以独立于该服务器,也可以设置在该服务器之内。终端设备可以是各种电子装置,如个人电脑、笔记本电脑、平板电脑、手机等。网络可为但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0080] 如图2所示,一种基于受限玻尔兹曼机的文本业务推荐方法是按如下步骤进行:
[0081] 步骤1、利用客户端获取用户A的需求信息,并根据需求信息从数据库中匹配相应的相似信息。如获取匹配的相似信息,可以根据数据库中数据的存储结构是一个树形结构,利用需求信息的父节点获取其父节点的所有子节点文档或根据需求信息直接获取其所有子节点文档,或利用计算文本相似度的算法来获取相似信息;
[0082] 步骤2、利用分词工具对用户A的需求信息和相似信息进行分词,分词的开源代码有ICTCLAS,然后按照停用表中的词语将语料库中对于文本内容识别意义不大但出现频率很高的词、符号、标点及乱码等去掉。如“这,的,和,会,为”等词几乎出现在任何一个文档中,但是它们对于这个文本所表达的意思几乎没有任何贡献。经过分词后得到用户A的需求文档D0;
[0083] 步骤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;
[0084] 步骤4、如表1对用户A的第i个主题的m个主题词 分别设置相应的权值,记为 表示用户A的第i个主题的第j个主题词 的
权值。为更加详尽的描述本发明的具体实施,把表1中的数据关系对应到如表2所示为MovieLens数据集中,利用LDA主题模型提取的主题,并在配置文件中设置提取主题数为3,每类主题取经过排序后的前5个主题词,得到的用户所喜欢的主题及相应主题对应的主题A A A
词和主题词权重。如表2对应设置相应的权值T1 =T2 =T3={5,4,3,2,1},其中,在用户偏好主题中主题词权重越大,则越能代表用户的偏好。设置权值的目的是使主题词权重较大的主题词有更大的权值,而主题词权重较小的主题词有更小的权值,从而有利用保留主题词权重较大的而去除权重较小的干扰主题词;
[0085] 表1主题词及权重值(概率)
[0086]
[0087] 表2主题词及权重值(概率)
[0088]
[0089]
[0090] 步骤5、计算主题词集合C出现的次数:
[0091] 步骤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的主题词集合:
[0092] C={Comedy,Drama,Sci-Fi,Animation,Children's,Adventure,Action,Thriller,Horror,Romance,Western}
[0093] 步骤5.2、利用用户A的主题词集合C={c1,c2,...,ck,...,cK}与用户A的第i个主题 计算主题词集合C中第k个主题词ck在主题A
Ti中主题词出现的次数rk;从而得到用户A的主题词集合C中每一主题词在所有主题的主题词出现的次数R={r1,r2,...,rk,...,rK}。如表2得到用户A的主题词集合C中每一主题词在所有主题中相应的主题词出现的次数R={2,1,1,1,1,2,2,1,1,2,1},其中主题词集合C中的主题和R中主题词出现的次数按顺序是一一对应的;
[0094] 步骤6、定义更新变次数为s,并初始化s=0;利用式(1)获得第s次更新的第k个主题词ck的加权平均权重 从而获得第s次更新的K个主题词的初始加权平均权重[0095]
[0096] 式(1)表示在用户A的主题词集合C中与第k个主题词ck相同的所有主题词的权重和权值的乘积之和,式(1)中, 表示与第k个主题词ck相同的第i个主题的第j个主题词的权重, 表示与第k个主题词ck相同的第i个主题的第j个主题词 的权值;如表2获得主题词“Comedy”的加权平均权重为:
[0097]
[0098] 从而获得11个主题词的初始加权平均权重:
[0099]
[0100] 步骤7、构建用户A的RBM主题偏好模型;
[0101] 步骤7.1、如图3所示,RBM主题偏好模型的第一层为可见层、第二层为隐藏层;可见层包含K个可见单元,并将第s次更新的K个主题词的加权平均权重 作为K个可见单元的输入值;隐藏层包含L个隐层单元,记为h={h1,h2,...,hl,...,hL},hl表示第l个隐层单元,1≤l≤L;
[0102] 步骤7.2、随机初始化第s次更新的可见层和隐藏层之间的权重,记为Ws;其中,记第s次更新的可见层中第k个可见单元与第l个隐层单元之间的权重为 1≤k≤K;
[0103]
[0104] 步骤7.3、利用式(2)得到用户A的主题偏好模型的第s次更新的第l个隐层单元hl的值 从而得到所有隐层单元的值
[0105]
[0106] 步骤7.4、利用式(3)得到用户A的主题偏好模型的第s+1次更新的第k个可见单元的 值 从而得到题偏好模型的 第s+1次更新的所 有可见单元的 值
[0107]
[0108] 式(3)中,表示调节参数;
[0109] 步骤7.5、利用式(4)更新第s次更新的第k个可见单元和第l个隐层单元之间的权重 得到第s+1次更新的第k个可见层和第l个隐藏层之间的权重为 从而得到所有可见层与隐层之间的权重Ws+1:
[0110]
[0111] 式(4)中,η表示学习速率,一般取η=0.01;
[0112] 步骤7.6、将s+1赋值给s,并返回步骤7.3顺序执行,直到所有可见层与隐层之间的权重收敛为止;步骤7的主要目的是根据用户A的历史偏好主题,利用RBM提取出用户的抽象偏好特征即隐层单元的值,作为下一步利用RBM未知偏好主题预测模型的输入值;
[0113] 步骤8、从数据库中获取用户A的近邻用户,记为U={u1,u2,...,uz,...,uZ},uz表示用户A的第z个近邻用户,1≤z≤Z;对应近邻用户的获取可以通过聚类算法,也可以通过余弦相似度计算用户的兴趣相似度等;
[0114] 步骤9、建立用户A的近邻用户U的RBM主题偏好模型及预测所有未知主题词的加权平均权重:
[0115] 步骤9.1、按照步骤1获取用户A的第z个近邻用户uz的需求信息和相似信息,并分别按照步骤2与步骤3得到第z个近邻用户uz的需求文档Dz及nz个主题;
[0116] 步骤9.2、对第z个近邻用户uz的nz个主题中所有主题词分别设置相应的权值,从而利用式(1)获得第z个近邻用户uz的nz个主题的所有主题词的初始加权平均权重;
[0117] 步骤9.3、按照步骤7构建用户A的第z个近邻用户uz的RBM主题偏好模型;从而得到用户A的所有近邻用户的RBM主题偏好模型;
[0118] 步骤9.4、将用户A的所有邻居用户的相应主题词做并集后再与用户A的所有主题词做差集,得到待预测主题词集合,记为G={g1,g2,...,ge,...,gE};ge表示第e个待预测主题词;1≤e≤E;
[0119] 步骤9.5、利用式(5)得到第e个待预测主题词ge所在的RBM主题偏好模型的可视层中,与第e个待预测主题词ge相对应的可视单元与第l个隐层单元的平均权重[0120]
[0121] 式(6)中, 表示在近邻用户U中包含第e个待预测主题词ge的所有近邻用户的第e个待预测主题词ge相对应的可视单元与第l个隐层单元的权重之和; 表示近邻用户U中包含第e个待预测主题词ge的所有近邻用户的数量;
[0122] 步骤9.6、利用式(6)预测得到用户A的第e个待预测主题词ge的加权平均权重从而得到用户A的所有待预测主题词的加权平均权重:
[0123]
[0124] 式(7)中,ξ为另一个调节参数; 表示收敛时第l个隐层单元hl的值[0125] 在步骤9中,主要利用“协同思想”,通过用户A的近邻用户,则能更好的了解用户A。其中,用户A的偏好和其近邻用户的偏好更为相似,这也使在预测用户A的未知主题词中能得到更加准确的主题词及排除干扰的主题词;
[0126] 步骤10、构建用户A的RBM未知偏好主题预测模型;在本步骤中,根据步骤9得到的主题词来获取用户A的未知偏好主题,步骤10与步骤9的区别是步骤9仅仅得到的是未知主题词的加权平均权重,但在真正做推荐时,需要的是具体的主题词在哪个主题中,及其相应的主题词权重;知道主题词在哪个主题中才不会造成主题词的“一词多义”和“多词一义”,通过知道主题词的权重,才能计算下一步用户偏好主题和业务主题的相似度,进而为用户A做出推荐;
[0127] 步骤10.1、去除用户A的所有待预测主题词的加权平均权重中若干个较小值,得到用户A的未知偏好主题词,记为G'={g1',g2',...,gf',...,gF'};1≤F≤E;
[0128] 步骤10.2、对用户A的第z个近邻用户uz的第α个主题的主题词与未知偏好主题词G'取交集,得到的集合记为 集合 的大小,记为 1≤α≤nz;从而得到第z个近邻用 户u z的 所 有 主 题的 主 题 词与 主 题词 G '的 交 集的 大 小 ,记 为 集 合进而得到所有近邻用户U={u1,u2,...,uz,...,uZ}的所有主题的主题词与主题词G'的交集的大小
[0129] 步骤10.3、对第z个近邻用户uz的集合 中所有元素进行求和,得到的值记为 从而对所有近邻用户HU中所有元素进行求和,得到的值的集合,记为
[0130] 步骤10.4、对H中的值进行降序排序,将前M个最大的值所对应的M个近邻用户的主题,作为用户A的预测主题的范围;
[0131] 步骤10.5、对M个近邻用户中的任意一个近邻用户的任意一个主题的所有主题词,与主题词G'作交集,得到交集集合中的主题词个数;从而得到M个近邻用户中的任意一个近邻用户的所有主题的主题词与主题词G'作交集后的主题词个数;进而得到M个近邻用户所有主题的主题词与主题词G'作交集后的主题词个数;
[0132] 步骤10.6、对M个近邻用户所有主题的主题词与主题词G'作交集后的主题词个数进行降序排序,将前N个最大的值所对应的主题,作为用户A的预测偏好主题;
[0133] 步骤11、更新用户A的预测偏好主题的主题词的权重;用户A的未知偏好主题的主题词的原始权重,反应的是用户A的近邻用户对其相应主题的偏好,而经过预测该未知偏好主题将作为用户A的主题。因此,相应的主题词权重需要做进一步的更新;
[0134] 步骤11.1、判断用户A的任一预测偏好主题的主题词是否出现在主题词G'中,若是,则执行步骤11.2,否则表示出现在主题词C中,并执行步骤11.3;
[0135] 步骤11.2、利用式(1)计算用户A的任一预测偏好主题的主题词在主题词G'的权重,其中,rk取值为任一预测偏好主题所在近邻用户的所有主题中与用户A的第k个主题词ck相同的主题词出现的次数, 取值为第k个主题词ck在任一预测偏好主题所在近邻用户的所有主题中的平均权值;
[0136] 步骤11.3、利用式(1)计算用户A的任一预测偏好主题的主题词在主题词C={c1,c2,...,ck,...,cK}中的权重,其中,rk取值为用户A的所有主题中第k个主题词ck出现的次数, 取值为第k个主题词ck在用户A的所有主题中的平均权值;
[0137] 步骤11.4、重复步骤11.1,从而计算任一预测偏好主题的所有主题词的权重;进而得到N个预测偏好主题的所有主题词的权重;
[0138] 步骤12、从数据库中取出所有待推荐业务,记为O={O1,O2,...,Ob,...,OB},Ob表示第b个待推荐业,1≤b≤B;
[0139] 步骤13、根据第b个待推荐业务Ob从数据库中匹配相应的相似信息;
[0140] 步骤14、利用分词工具对第b个待推荐业务Ob和相似信息进行分词,得到第b个待推荐业务Ob的初始文档D0';
[0141] 步骤15、利用LDA主题模型对初始文档D0'进行主题提取,得到第b个待推荐业务Ob的n'个主题,记为 表示第b个待推荐业务Ob的第i'个主题;并有 表示第b个待推荐业务Ob
的第i'个主题的第j'个主题词, 表示第b个待推荐业务Ob的第i'个主题的第j'个主题词的权重;1≤i'≤n';1≤j'≤m';
[0142] 步骤16、按照步骤15得到所有待推荐业务O的主题
[0143] 步骤17、计算用户A对第b个待推荐业务Ob的偏好度 从而得到用户A对所有待推荐业务O=(O1,O2,...,Ob,...,OB)的偏好度
[0144] 步骤17.1、利用式(7)计算用户A的第i个主题TiA和第b个待推荐业务Ob的第i'个主题 的余弦相似度
[0145]
[0146] 步骤17.2、利用式(8)计算用户A的第i个主题TiA和第b个待推荐业务Ob的所有主题的平均相似度
[0147]
[0148] 步骤17.3、按照步骤17.2计算用户A的所有主题和第b个待推荐业务Ob所有主题相似度,并取相似度最高的M”个主题及其对应的平均相似度;记为表示用
户A的所有主题和第b个待推荐业务Ob的第m”个相似度最高的偏好主题; 表示用户A的所有主题和第b个待推荐业务Ob的第m”个相似度最高的偏好主题的平均相似度;
[0149] 步骤17.4、利用式(9)计算用户A对第b个待推荐业务Ob的偏好度为
[0150]
[0151] 步骤18、对偏好度P进行降序排序,并将前Np个偏好度所对应的业务推荐给用户A。