首页 / 专利库 / 人工智能 / 机器学习 / 集成学习 / 随机森林 / 基于深度森林的文本对象推荐方法

基于深度森林的文本对象推荐方法

阅读:660发布:2020-05-11

专利汇可以提供基于深度森林的文本对象推荐方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于深度森林的文本对象推荐方法,属于推荐技术领域。本发明针对现有的基于 深度学习 的推荐方法的推荐方案的不足,通过将梯度提升与深度森林结合,提出一种结合了梯度提升和深度森林的推荐模型,并将其用于推荐文本对象。即本发明将用户和文本对象的特征信息输入到所设置的推荐模型中,则会输出一个0-1的值,其代表了预测该用户会与该文本对象发生交互的可能性,即用户与文本对象的交互概率预测值。对每个用户,为其将未 接触 过的文本对象进行以交互概率预测值从大到小的排序,其中排名前K的文本对象将作为推荐列表推荐给该用户。,下面是基于深度森林的文本对象推荐方法专利的具体信息内容。

1.基于深度森林的文本对象推荐方法,其特征在于,包括下列步骤:
步骤1:对文本对象进行预处理:
从用户与文本交互的平台的后台数据库中提取所有文本对象;
去除文本对象中的停用词,并统计在所有文本对象当中出现次数最多的D个词;其中D为预设值;
并基于所述D个词构造词典,基于所构造的词典为每个文本对象构建TF-IDF向量,作为文本对象的特征向量
步骤2:构建用户和文本对象的交互矩阵Y:
所述交互矩阵Y的每一行表示一个用户,每一列表示一个文本对象,交互矩阵的元素的值为0或1,其中1表示当前用户与文本对象之间有交互历史;0表示当前用户与文本对象之间无交互历史;
步骤3:对已有数据进行负采样,并构建训练集:
将用户-文本对象对作为一个样本,并将用于与文本对象之间有交互历史的用户-文本对象对作为正样本并加入训练集中;
对于每一个正样本中的用户,随机从该用户未接触过的文本对象当中抽取num_negtive个文本对象,构成num_negtive个负样本并加入训练集中;
其中,正样本的真实标签为1,负样本的真实标签为0;
提取训练集中每个样本的特征向量,记为xi,其中,下标i表示训练集的样本区分符;
其中,样本的特征向量的提取方式为:
将样本对应的用户记为u,文本对象记为t;
从交互矩阵中提取用户u所在的行,记为Yu.,提取文本对象t所在的列,记为Y.t;
将Yu.、Y.t、文本对象t的TF-IDF向量Tt、用户u的辅助信息Su和文本对象t的辅助信息St进行拼接得到样本的特征向量xi;
步骤4:构建并训练梯度提升深度森林:
设置梯度提升深度森林的深度上限M;
初始化梯度提升深度森林的深度 为2,即梯度提升深度森林包括 层随机森林
所述梯度提升深度森林的每一层包括一定数量的决策树,所述决策树为分类与回归树;
对梯度提升深度森林的训练处理为:
每一层随机森林输入的样本的特征向量相同,输入的样本标签不同;
其中,第1层随机森林的输入的样本标签为真实样本标签yi;
第 层的样本标签为:当前已有的弱学习器的预测结果fm-1(xi)与真实标签yi的伪残差rmi,其中rmi=yi-fm-1(xi),fm-1(xi)=fm-2(xi)+αhm-1(xi),
α表示预置的学习率,取值范围为0-1,hm-1(xi)表示特征向量xi在第m-1层的随机森林的输出结果,f0(xi)的取值为常数c;
其中,常数c的取值为: N表示训练集的样本数;
当第 层的损失函数满足预置的收敛条件或者梯度提升深度森林的深度达到预设上限M时,训练停止,并将训练好的梯度提升深度森林作为文本对象推荐模型;否则将梯度提升深度森林的深度 加1,继续训练;
步骤5:文本对象的推荐:
对每个用户,将未与当前用户存在交互历史的文本对象作为推荐备选对象;
基于交互矩阵Y,获取当前用户所在的行,以及每个推荐备选对象所在的列,基于当前用户的辅助信息,每个推荐备选对象的辅助信息及TF-IDF向量,得到当前用户与每个推荐备选对象的用户-文本对象对的特征向量;并输入到步骤4得到的文本对象推荐模型中,基于输出得到当前用户与每个推荐备选对象的交互概率预测值;
并对同一用户的所有交互概率预测值排序,选出交互概率预测值最大的K条文本对象构成推荐给当前用户的推荐列表。
2.如权利要求1所述的方法,采用的损失函数为误差平方和。
3.如权利要求1所述的方法,其特征在于,num_negtive的取值为2或4。
4.如权利要求1所述的方法,其特征在于,学习率α的取值范围设置为:0.1-0.5。

说明书全文

基于深度森林的文本对象推荐方法

技术领域

[0001] 本发明属于推荐技术领域,具体涉及一种基于深度森林的文本对象推荐方法。

背景技术

[0002] 在现有的推荐方法当中,基于协同过滤的推荐模型一直是推荐技术领域的研究热点之一,而矩阵分解则一直是协同过滤推荐方法之中的一种经典的推荐模型,在推荐精度上也一直有很好的表现。
[0003] 矩阵分解的思路,是从用户对物品的评分矩阵之中,学习到两个规模较小的矩阵,这两个矩阵分别代表用户和物品。对每个用户而言,他们在用户矩阵之中都有一个向量对其建模,物品在物品矩阵之中也是一样。用户向量和物品向量都可以在一定程度上被解释为一些语义,比如用户向量上某个对应位置的值代表其对某些因素的喜爱程度,而物品向量在该位置上的值就可以代表其与该因素的匹配程度,则该因素上两者的乘积就可以代表用户和物品在该因素上对最后评分的影响。
[0004] 矩阵分解在处理物品和用户的信息交互的时候,采取的措施是对物品隐向量和用户隐向量进行内积操作。内积是一种较为简单的线性交互,而且没能考虑到不同的隐因子之间的交互,只有用户和物品的相同的隐因子之间的乘积作为交互。因而出现了基于深度学习的推荐方法,如在NCF(Neural Collaborative Filtering)方法中,其将深度学习的整体框架带到协同过滤当中,并且实现了较好的性能。在NCF中,采用神经网络来代替内积对用户和物品之间的交互进行建模,用用户和物品的one-hot编码向量作为输入,嵌入向量经过一个专为推荐问题设置的神经网络得到预测值,通过反向传播进行优化。虽然,NCF中也用到了矩阵分解,用一定长度的向量来代表用户和物品的特征。与矩阵分解不同的是,NCF不是用内积,而是利用多层感知机这一典型的深度学习结构,对用户特征和物品特征之间的深层关系进行建模,可以学习到更复杂的用户和物品之间的关系,也取得了更好的推荐效果。
[0005] 虽然基于深度学习的推荐方法是推荐精度最高的。但是深度学习技术本身存在着需要大量参数来进行训练、超参数过多等缺点,从而会导致基于深度神经网络的推荐方法也会出现类似的问题。
[0006] 深度森林是近年来提出的一种新的深度模型,不同于以往的深度学习以人工神经网络作为基础结构,深度森林以决策树作为基本组成部分。深度森林相比深度神经网络有着训练时间较短、能适应不同规模数据、超参数较少且稳定的特点。梯度提升是集成学习中的一种思路,可以按照一定的策略训练出一些弱学习器并最后获得一个强学习器。
[0007] 因此,有必要设置一种结合梯度提升和深度森立的推荐技术,从而解决基于深度学习的推荐技术导致的训练过程复杂且超参数过多的问题。

发明内容

[0008] 本发明的发明目的在于:针对上述存在的问题,提供一种采用梯度提升深度森林进行文本对象推荐的方案,从而在保证与基于深度学习的推荐方案相当的推荐精度的同时,有效降低训练过程的复杂度,以及减少超参数数量。
[0009] 步骤1:对文本对象进行预处理:
[0010] 从用户与文本交互的平台的后台数据库中提取所有文本对象;
[0011] 去除文本对象中的停用词,并统计在所有文本对象当中出现次数最多的D个词;其中D为预设值;
[0012] 并基于所述D个词构造词典,基于所构造的词典为每个文本对象构建TF-IDF向量,作为文本对象的特征向量
[0013] 步骤2:构建用户和文本对象的交互矩阵Y:
[0014] 所述交互矩阵Y的每一行表示一个用户,每一列表示一个文本对象,交互矩阵的元素的值为0或1,其中1表示当前用户与文本对象之间有交互历史;0表示当前用户与文本对象之间无交互历史;
[0015] 步骤3:对已有数据进行负采样,并构建训练集:
[0016] 将用户-文本对象对作为一个样本,并将用于与文本对象之间有交互历史的用户-文本对象对作为正样本并加入训练集中;
[0017] 对于每一个正样本中的用户,随机从该用户未接触过的文本对象当中抽取num_negtive个文本对象,构成num_negtive个负样本并加入训练集中;
[0018] 其中,正样本的真实标签为1,负样本的真实标签为0;
[0019] 提取训练集中每个样本的特征向量,记为xi,其中,下标i表示训练集的样本区分符;
[0020] 其中,样本的特征向量的提取方式为:
[0021] 将样本对应的用户记为u,文本对象记为t;
[0022] 从交互矩阵中提取用户u所在的行,记为Yu·,提取文本对象t所在的列,记为Y·t;
[0023] 将Yu·、Y·t、文本对象t的TF-IDF向量Tt、用户u的辅助信息Su和文本对象t的辅助信息St进行拼接得到样本的特征向量xi;
[0024] 步骤4:构建并训练梯度提升深度森林:
[0025] 设置梯度提升深度森林的深度上限M;
[0026] 初始化梯度提升深度森林的深度 为2,即梯度提升深度森林包括 层随机森林
[0027] 所述梯度提升深度森林的每一层包括一定数量的决策树,所述决策树为分类与回归树;
[0028] 对梯度提升深度森林的训练处理为:
[0029] 每一层随机森林输入的样本的特征向量相同,输入的样本标签不同;
[0030] 其中,第1层随机森林的输入的样本标签为真实样本标签yi;
[0031] 第 层的样本标签为:当前已有的弱学习器的预测结果fm-1(xi)与真实标签yi的伪残差rmi,其中rmi=yi-fm-1(xi),fm-1(xi)=fm-2(xi)+αhm-1(xi),[0032] α表示预置的学习率,hm-1(xi)表示特征向量xi在第m-1层的随机森林的输出结果(随机森林学习器);f0(xi)的取值为常数c;
[0033] 其中,常数c的取值为: N表示训练集的样本数;
[0034] 当第 层的损失函数满足预置的收敛条件或者梯度提升深度森林的深度达到预设上限M时,训练停止,并将训练好的梯度提升深度森林作为文本对象推荐模型;否则将梯度提升深度森林的深度 加1,继续训练;
[0035] 优选的,损失函数设置为误差平方和,即第 层的随机森林的输出与真实标签的误差平方和。
[0036] 步骤5:文本对象的推荐:
[0037] 对每个用户,将未与当前用户存在交互历史的文本对象作为推荐备选对象;
[0038] 基于交互矩阵Y,获取当前用户所在的行,以及每个推荐备选对象所在的列,基于当前用户的辅助信息,每个推荐备选对象的辅助信息及TF-IDF向量,得到当前用户与每个推荐备选对象的用户-文本对象对的特征向量;并输入到步骤4得到的文本对象推荐模型中,基于输出得到当前用户与每个推荐备选对象的交互概率预测值;
[0039] 并对同一用户的所有交互概率预测值排序,选出交互概率预测值最大的K条文本对象构成推荐给当前用户的推荐列表。
[0040] 综上所述,由于采用了上述技术方案,本发明的有益效果是:在与现有的深度学习推荐方法达到相当的推荐精度的同时,能够有效的降低模型超参数的数量,使得模型更加容易训练。另外,通过采用基于深度森林的推荐方法,本发明可以解决推荐方法的冷启动问题,在平台前期数据量不够充足的情况下也能取得不错的推荐效果。附图说明
[0041] 图1为本发明的梯度提升深度森林的处理过程示意图。

具体实施方式

[0042] 为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
[0043] 本发明针对现有的基于深度学习的推荐方法的推荐方案的不足,通过将梯度提升与深度森林结合,提出一种结合了梯度提升和深度森林的推荐模型,并将其用于推荐文本对象。即本发明将用户和文本对象的特征输入到所设置的推荐模型中,则会输出一个0-1的值,其代表了预测该用户会与该文本对象发生交互的可能性,即用户与文本对象的交互概率预测值。对每个用户,为其将未接触过的文本对象进行以交互概率预测值值从大到小的排序,其中排名前K的文本对象将作为推荐列表推荐给该用户。其具体实现步骤如下:
[0044] 步骤1:对文本对象进行预处理。
[0045] 去除文本对象中不包含有用信息的停用词,然后统计在所有文本当中出现次数最多的D个词,并将这N个词构造词典,基于所构造的词典为每个文本对象构建TF-IDF(Term Frequency-Inverse Document Frequency)向量,作为文本对象的表示,即文本对象的特征向量。
[0046] TF-IDF向量是一种在文本挖掘中广泛使用的特征向量化方法,它可以体现一个文档中词语在语料库(词典)中的重要程度。
[0047] 步骤2:构建用户和文本对象的交互矩阵。
[0048] 假设推荐系统中一共有U个用户和T个文本对象,则交互矩阵是一个U*T的矩阵矩阵中元素yut的值为0或1。1代表该对用户和文本对象发生过交互,0代表用户和文本对象未发生过交互。
[0049]
[0050] 步骤3:对已有数据进行负采样,并构建训练集。
[0051] 对于每个已在推荐系统中存在的用户和文本对象的交互记录,都作为正例加入训练集,即标签为1。对于训练集中的每个用户-文本对象对,都随机从该用户未接触过的文本对象当中抽取num_negtive(超参数)个加入训练集作为负例,即标签为0。本具体实施方式中,可以将训练集中的负采样比例设置为1:4或1:2,即num_negtive的取值为2或4。
[0052] 对于训练集中的每个样本(用户-文本对象对),其标签为0或1。若一个样本中,用户为u,文本对象为t,则样本特征xut为用户交互行Yu·,文本对象交互列Y·t,文本对象的TF-IDF向量Tt,用户辅助信息(如年龄、地区、职业等)Su与文本对象辅助信息St(如所属类型、发文单位等)拼接而成。可以表示为:
[0053] xut=concat(Yu·,Y·t,Tt,Su,St)
[0054] 步骤4:构建并训练梯度提升深度森林。
[0055] 本发明中用到的随机森林中的决策树均为CART(Classification And Regression Trees)回归树,即分类与回归树。采用的损失函数为误差平方和,若将预测函数表示为f(x),则误差平方和的公式可以表示为:
[0056]
[0057] 其中,y表示真实标签向量,x表示样本的特征向量,yi表示第i个训练样本的真实标签,f(xi)表示第i个训练样本的特征信息xi的预测结果。
[0058] 在模型的开始,使用一个常数函数f0(x)=c来初始化模型,常数c的选择如下所示:
[0059]
[0060] 定义 表示模型的当前深度,即梯度提升深度森林包括 层随机森林,并定义第m层的随机森林为hm(x),也称为随机森林学习器,即第m层的随机森林的输出结果。
[0061] 在训练第m层时,对该层的随机森林进行训练时,训练集中样本的特征保持不变,样本i的标签rmi变为已经有的弱学习器的预测结果与真实标签的伪残差,计算方式如下:
[0062] rmi=yi-fm-1(xi)
[0063] 在第m层,以rm为标签进行训练,得到第m层训练出的随机森林学习器hm(x)。则由第1到第m-1层森林得到的函数fm-1(x)和第m层得到的随机森林学习器hm(x)组合可以得到一个强学习器fm(x),其公式如下:
[0064] fm(x)=fm-1(x)+αhm(x)
[0065] 其中,α表示学习率,是一个超参数,可以控制每一层森林对最后的影响。α的取值范围0-1,优选的取值范围0.1-0.5。一直训练到第 层就得到最后的强学习器F(x),即[0066] 训练时,初始化梯度提升深度森林的深度 为2;
[0067] 且第1层随机森林的输入的样本标签为真实样本标签yi;
[0068] 第 层的样本标签为:当前已有的弱学习器的预测结果fm-1(xi)与真实标签yi的伪残差rmi,
[0069] 然后判断当前深度数是否达到预设的上限M或者第 层的损失函数是否满足预置的收敛条件;若是,则训练结束,得到训练好的梯度提升深度森林,对应的深度数为 否则增加梯度提升深度森林的深度数 即继续增加一层随机森林,并继续训练。
[0070] 参见图1,经过训练后得到的梯度提升深度森林的深度为M,共包括M层随机森林,每一层包括一定数量的决策树(CART回归树),第1层随机森林的输入为样本的真实标签向量Y和特征向量X,在训练时,第2~M层的样本标签都在变化,即将已经有的弱学习器的预测结果与真实标签的伪残差作为下一层的样本标签;结合所有层的预测结果,得到最终的预测结果。对于文本对象推荐而言,其最后输出的结果是一个0~1的值,代表了用户与当前文本对象的交互概率预测值。
[0071] 步骤5:文本对象的推荐。
[0072] 基于训练好的梯度提升深度森林,对每个用户,预测其与未接触过的文本对象的交互概率。即将未与当前用户接触过的文本对象对应的特征信息(与样本特征相同)输入训练好的梯度提升深度森林,基于输出得到当前用户与当前文本对象的交互概率预测值,然后对所有未接触过的文本对象的交互概率预测值排序,选出交互概率预测值最大的K条文本对象构成推荐给该用户的推荐列表。
[0073] 以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈