1.一种推荐方法,包括如下步骤:
S100:使用词嵌入单元将关于用户和项目的自然语言形式的文本转化为数值型的训练数据;
S200:采用注意力机制在所述训练数据中增加用户与项目的相互影响力;
S300:采用基于注意力机制的卷积神经网络模型提取训练数据的局部特征和核心特征,最终得出可以表达全局的特征的隐藏特征;
S400:使用因子分解机对上述隐藏特征进行分析,得到用户与项目的关联,据所述关联完成用户对项目的评分预测,最终完成向用户推荐项目;
步骤S100进一步包括,
所述词嵌入单元包括规格化和数值化两个步骤,其中,规格化是指对自然语言形式的文本进行分词、去除停用词和无用词,数值化是指使用多维分布向量对文本进行数值化操作;
采用评论信息作为训练数据,则该方法具体为:
S101:使用词嵌入单元将自然语言形式的用户评论信息和项目评论信息数值化为用户的表达特征向量和项目的表达特征向量;
S201:通过计算用户评论信息与项目评论信息之间的相似度,得到表达用户评论与项目评论之间影响度的注意力矩阵;将注意力矩阵与用户的权值矩阵进行运算,得到用户的注意力特征向量,将注意力矩阵与项目的权值矩阵进行运算,得到项目的注意力特征向量;
把用户的表达特征向量与用户的注意力特征向量进行拼接形成带记忆能力的新的用户的表达特征向量;把项目的表达特征向量与项目的注意力特征向量进行拼接形成带记忆能力的新的项目的表达特征向量;
S301:使用基于注意力机制的卷积神经网络对上述新的用户表达特征向量和新的项目表达特征向量进行卷积、池化和全连接操作,从中提取用户隐藏特征以及项目隐藏特征;
S401:使用因子分解机从用户隐藏特征及项目隐藏特征中构建出用户及项目之间的关联,并且根据所述关联完成用户对项目的评分预测,最终完成向用户推荐项目;
所述步骤S201进一步包括:
S2001:采用欧几里得距离公式来计算注意力矩阵A,A∈Rd×d,其中,Rd×d为维度为d×d的实数,d为每一个训练批次的数据维度;
S2002:假设用户的注意力特征向量为F0,a∈Rd×n,项目的注意力特征向量为F1,a∈Rd×n,用户的注意力权重为W0∈Rd×n以及项目的注意力权重为W1∈Rd×n,在训练初期随机初始化W0以及W1,再在后续的迭代训练中,根据预测结果与训练数据结果的误差情况,反向微调W0以及W1,在多次迭代之后得到W0以及W1的最优值;最优值与注意力矩阵A可以快速构建出最佳的F0,a和最佳的F1,a,详细的计算过程如下所示:(Fi,a)d×n=(Wi)d×n·(A)d×d,i∈{0,1},其中Rd×n为维度为d×n的实数,d为每一个训练批次的数据维度,n为句子长度;
S2003:已知用户的表达特征向量F0,r和项目的表达特征向量F1,r,用户的注意力特征向量F0,a和项目的注意力特征向量F1,a,维度均为d×n,通过公式Fi,nr=concat(Fi,r,Fi,a),i∈{0,1},直接拼接构建出融合用户注意力的新的表达特征向量F0,nr以及融合项目注意力的新的表达特征向量F1,nr。
2.根据权利要求1的方法,步骤S300进一步包括:
所述卷积神经网络包括卷积、池化以及全连接操作。
3.根据权利要求1的方法,其中,
用户的权值矩阵以及项目的权值矩阵初期是直接随机初始化,并利用深度学习的后向传播方法进行更新。
4.根据权利要求1的方法,步骤S101进一步包括:
S1001,已知 为用户u对项目m的评论,假设有
其中 表示用户u对项目m评论的第i个句子;再假设句子
其中,wij表示第i个句子的第j个单词,n为每
个句子的单词数;为了建立单词与数值的对应关系,建立映射函数φ(wij):wij→Z,Z∈N*,该*函数表示从单词wij到数值Z的映射关系,其中N 为正整数集合;在此基础上,构建出以数值表达的用户u评论的多维分布向量Vu:其中,Vu中的任一个元素 表示词嵌入单元对用户u评论中单词wij进行处理之后的数值化结果,q表示用户u所有评论的句子数量;同理构建出以数值表达的项目m评论的多维分布向量Vm,且Vm=Vu,以及同理得到Vm中任一个元素Vm,kq为项目m评论第k个句子第q个单词所对应的数值化值;
S1002,假设词嵌入单元表示某个训练批次数据的表达特征向量为Fi,r∈Rd×n,i∈{0,
1},其中i等于0为用户的表达特征向量,i等于1为项目的表达特征向量,n为句子长度,d为每一个训练批次的数据维度,Rd×n为维度为d×n的实数;如果用户评论的句子数量q大于批次的数据维度d,则需要划分多个批次,如果q小于批次的数据维度d,则需要增加(d-q)行值为零的数据;据此可得用户的表达特征向量和项目的表达特征向量
5.根据权利要求1的方法,步骤S301进一步包括:
S3001,以用户的新的表达特征向量与项目的新的表达特征向量F0,nr和F1,nr作为输入进d×n行卷积操作,包括特征提取以及特征选择;假设卷积核为xj∈R ,低纬度特征值为C=[c1,c2,...,cj,...,cn],C∈Rn,其中,cj=f(F0,nr*xj+bj),运算符*表示卷积操作,bj为偏置变量,bj∈R,f采用ReLU激活函数,其中Rd×n为维度为d×n的实数,其中Rn为维度为n的实数,R为实数;接着从通过卷积核xj扫描到的数据中聚合出核心特征:f(cj)=max{0,cj};
S3002,使用ReLU激活函数,在各个局部数据当中选取最大值,从一个卷积核中提取核心特征oj=max{c1,c2,...,ci,...,cn-t+1},然后以并行的方式使用多个卷积核对数据进行特征提取,得到总特征O={o1,o2,...,oj,...,on1},其中n1为卷积核的数量,t为卷积核的步长;
S3003,在全连接操作中对总特征集合0重新组合,采用公式Hu=f(W·O+g)计算得到可以表达全局的特征的用户隐藏特征Hu,其中g为卷积神经网路中全连接层的偏置变量,w为全连接层的权重矩阵;同理,从项目的新的表达特征向量F1,nr中提取到项目的隐藏特征Hm。
6.根据权利要求1的方法,其中,
使用两个并列的基于注意力机制的卷积神经网络,同步从评论信息中提取用户隐藏特征以及项目隐藏特征。