1.一种基于注意力机制的多视角多模态的商品推荐方法,该方法具体包括下列步骤:步骤1:数据获取;
从数据库中获取用户对物品的历史打分记录和物品的相关信息,其中物品的相关信息包括物品的描述信息和相关属性信息;
步骤2:对物品的描述信息和相关属性信息进行编码,并进行语义提取;
首先把物品的描述信息和相关属性信息的分句符号去除,让其从一段话转化为一个句子,表示为{w1,w2,w3,..wl.,wL},L代表句子长度,wl表示一个字,然后采用BERT的编码器把这个句子编码为{t1,t2,t3,...,tL+1},在这其中t1=[CLS],是BERT编码器分类任务中特殊的编码,之后,被编码后的句子作为输入再传进BERT编码器中,输出为形如L×d的隐向量h,其中d代表嵌入的维度;
h={h1,h2....hL+1}
把t1=[CLS]对应的词嵌入h1,此时h1已经浓缩了整句的语义信息,把h1当做这个句子的代表,把h1输入一个全连接层进行维度变换得到最终维度为dh的句子,采用下式计算提取到语义信息向量s;
其中 b是全连接层中的学习参数;
步骤3:利用物品的相关属性信息构建物品的相关关系图,并计算结点表征;
步骤3.1:构建一个单部图G,物品是G的结点,如果物品i和j有K个相同的属性,则在i和j对应的结点间连一条边,由此方法构建出的图G即为物品的相关关系图对构建出的物品间的相似性关系;
步骤3.2:对单部图G,随机初始化每个结点的向量P={p1,p2,...,pM},使用两层多头注意力机制来得到最终的结点嵌入,使用的注意力机制的权重α为:其中a是一层前馈神经网络的权重,用来实现注意力机制;pi是目标结点,pj是第i个节点的某个邻居结点,Ni是第i个节点的邻接结点集,pk是节点集中的第k个节点,αij为第j个节点对第i个节点的重要程度,exp()表示以e为底的指数函数,LeakyReLU()是激活函数,表示对i节点进行线性变换的参数矩阵, 分别代表j节点和k节点对应的线性变换矩阵;
步骤3 .3:采用基于拼接策略的多头注意力机制得到第一层结点表征k
其中σ是一个非线性变换激活函数,||代表拼接操作,K是多头注意力机制的头数,W 是头k对应的线性变换矩阵, 表示第k个头中结点j对结点i的重要程度,再对进行一次基于求平均策略的多头注意力机制,得到最终的结点表征向量
步骤4:生成物品低维向量;将步骤2和步骤3中得到的向量进行拼接,作为物品的表征向量:**
r=p ||s
**
其中,p 代表步骤3中得到的结点表征向量,s代表步骤2中得到的语义信息向量;
步骤5:评分正则化和用户偏好厌恶划分;
将数据集中的评分数据根据每个用户的平均打分正则化为0和1,用户评分低于平均分的物品作为用户的厌恶序列,高于平均分的物品作为用户的偏好序列;
步骤6:数据集划分;
将数据集中的偏好序列和厌恶序列分别随机按照一定比例划分为训练集、验证集和测试集;
步骤7:训练网络模型;该网络模型方法为:
步骤7.1:得到用户u的历史物品集εu:
其中, 代表与用户u交互过且用户u感兴趣的物品集, 代表与用户u交互过但用户不喜欢的物品集,u表示用户,v表示物品,V表示物品集,yuv表示用户u对物品v的评分,vdislike表示和用户有过交互且用户不喜欢的物品;
步骤7.2:利用多头自注意力机制对 和 中包含的物品嵌入向量分别进行加权求和得到用户的偏好表征和厌恶表征,其中物品嵌入向量从步骤4中得到;
针对偏好表征,物品的自注意力权值β为:
其中,exp()表示以自然数e为底的指数函数,Attention()表示与Transformer编码器相同的自注意力机制,r表示步骤4中得到的物品嵌入向量,re表示物品e对应的嵌入向量,A表示 集的大小;
最终用户的偏好表征upos为:
采用相同方法利用 中的物品嵌入得到用户的厌恶表征uneg;
步骤7.3:预测点击概率;
设候选物品Y的物品嵌入向量为y,使用用户u的偏好表征和厌恶表征分别与y做点积后加权求和得到最终的点击概率click:T T
click=w1×yupos+w2×yuneg其中,w1,w2为加权系数;
步骤8:采用步骤7训练好的模型进行预测,预测结果为样本被当前用户点击的概率。