前言
本篇文章是2020年8月发表于《计算机工程》的一篇期刊论文,文章名称《基于注意力机制与改进TF-IDF的推荐算法》。
文章针对传统推荐系统主要依赖用户对物品的评分数据而无法学习到用户和项目的深层次特征的问题,提出基于注意力机制与改进TF-IDF的推荐算法(AMITI)。将双层注意力机制引入并行的神经网络推荐模型,提高了模型对重要特征的挖掘能力。
摘要
针对传统推荐系统主要依赖用户对物品的评分数据而无法学习到用户和项目的深层次特征的问题,提出基于注意力机制与改进TF-IDF的推荐算法(AMITI)。通过将双层注意力机制引入并行的神经网络推荐模型,提高模型对重要特征的挖掘能力。基于用户评分及项目类别改进TF-IDF,依据项目类别权重将推荐结果分类以构建不同类型的项目组并完成推荐。实验结果表明,AMITI算法能提高对文本中重要内容的关注度以及项目分配的注意力权重,有效提升推荐精度并在实现项目组推荐后改善推荐效果。
概述
本文提出一种基于注意力机制与改进TF-IDF的推荐算法AMITI。将注意力机制引入卷积神经网络(Convolutional Neural Network,CNN)中,在卷积层前加入注意力网络,对经过预处理的项目文本信息进行重新赋权。将多层全连接神经网络学习到的用户特征向量和项目特征向量输入到第2层注意力机制中,使多层感知机(Multilayer Perceptron,MLP)对注意力分数进行参数化。在完成推荐任务后,通过将用户评分和项目类别与TF-IDF结合,分析不同项目类型在推荐结果中的权重,获取用户对不同项目类型的偏好程度,并对推荐结果进行分类。
AMITI推荐算法
在NCF推荐模型的基础上将用户和项目的属性信息作为输入数据u:{u1,u2,...un},例如,用户ID、年龄、性别等;项目属性信息v:{v1,v2,...vn},例如,项目ID、类型、标题等。AMITI模型架构如图所示。
引入双层注意力机制,一层用于与CNN结合构建子网络,使CNN学习项目文本中的重点内容;另一层以用户及项目特征向量作为输入数据,利用注意力机制为用户历史交互项目分配个性化权重,得到不同项目对当前预测偏好所起的作用。将推荐结果分组,以项目组的形式向用户展示推荐结果,增强推荐内容的有序性。
学习用户和项目潜在特征
为改善推荐系统中数据稀疏的问题,利用用户和项目的属性信息进行评分预测。将用户及项目属性信息经过数据预处理后输入到嵌入层对属性信息进行编码,嵌入层将输入的稀疏向量映射为稠密的低维嵌入向量,得到用户和项目属性的嵌入表示pu和qv。在训练刚开始的时候,嵌入是简单的随机选择,随着训练的进行,每个嵌入的向量都会得到更新,以帮助神经网络执行其任务。将用户和项目的嵌入向量pu、qv输入到并行的多层全连接神经网络中,分别学习用户和项目非文本属性的潜在特征向量。
其中:f(×)为tanh激活函数;wn和bn分别为需要学习的权值矩阵和偏置。
引入注意力机制的卷积神经网络
对于项目属性的文本信息如项目标题,为了增强网络对文本中重点内容的学习能力,将注意力机制与CNN结合构成提取文本特征的子网络。文本卷积神经网络构成如图所示,由注意力层、卷积层、池化层、全连接层组成。
注意力层通过对每个项目文本的词向量矩阵赋予注意力权重以得到更新后的词向量矩阵。将项目文本内容通过嵌入层得到词向量矩阵E∈Rnxd,其中d为词向量的维度,即把每一个词映射为d维向量xj∈Rd,n为单词的个数;F∈Rsxd表示目标用户ui浏览过的所有项目所携带文本信息的词向量矩阵,xi为第i个词的词向量表示xi∈Rd。计算目标用户词向量矩阵F中每个词汇的词向量表示xi与项目所有文本词向量矩阵E中每个词汇xj的注意力分数。a(xi,xj)=vTaR(wa[xi+xj])其中:vTa,wa为训练参数。
预测评分生成
传统的神经网络推荐模型在预测层通常执行用户特征的隐表示p̂u和项目特征的隐表示q̂j之间的交互以得到最终的预测评分。由于该模型缺乏对推荐任务的定制优化,对用户所有历史项目的平等处理会限制其表示能力,例如,在用户进行电影点播时,被推荐电影可能只与用户播放历史中的部分电影相关,而传统的电影推荐方式通常会把用户播放历史中所有的电影作为上下文进行推荐,这与用户的实际偏好不符。传统的神经网络推荐模型忽视了用户历史项目中不同项目对预测下一个项目所起的作用不同,因此准确率较低。
在AMITI模型的预测层,利用神经注意力网络区分历史项目的重要性来克服传统神经网络推荐模型的局限性。学习到用户特征的隐表示p̂u和项目特征的隐表示q̂j作为注意力层的输入,学习目标用户对不同项目的关注度,不同关注度对预测下一项目所起的作用不同。
TF-IDF的改进
TF-IDF常被用于文本分类和信息检索,通常仅考虑文档数量和关键词在文档中出现的频率,而当字词拥有评分数据时无法充分利用评分数据更准确地计算TF-IDF值。例如,利用TF-IDF计算用户ui观看电影中喜剧类型gj的TF-IDF值时,仅将喜剧类型gj在用户ui浏览历史电影集和整个数据集中出现的频率代入计算,并未利用用户对喜剧类电影的评分数据。当喜剧类型gj在用户浏览历史中出现频率较低,但用户对这类电影的评分却较高时,采用传统的TF-IDF方法无法准确地获取用户对喜剧类型gj的偏好程度。将评分数据引入到TF-IDF方法中,在评估字词重要程度的同时,避免丢失评分较高的字词。
AMITI算法描述
利用深度神经网络结合注意力机制能有效提升推荐算法对用户和项目潜在特征的提取能力,并缓解数据的稀疏性问题。依据项目类型分组将推荐结果推荐给用户。AMITI 算法整体实现步骤如下:
输入 用户属性信息u:{u1,u2,...un},un表示用户的第n个属性;项目属性信息v:{v1,v2,...vn},vn表示项目的第n个属性
输出 生成K个项目组,每个项目组含D个同类项目
步骤1 对用户属性和项目属性进行数据预处理,将其转换成数字类型。
步骤2 用户属性和项目ID及类型属性输入嵌入层,得到低维稠密的嵌入向量pu和qv。将pu和qv分别输入到并行的多层全连接层中进行特征学习,得到用户特征p̂u和项目非文本属性向量q̂v。
步骤3 对项目名称做卷积处理,通过注意力机制对电影名称的词向量矩阵重新赋权,得到更新后的词向量矩阵Msxdatt。
步骤4 将词向量矩阵Msxdatt输入卷积神经网络中提取项目名称特征并生成特征qtext,再利用tf.concat()函数合并项目各属性特征得到最终的项目特征q̂j。
步骤5 使用注意力机制为每个项目分配个性化权重âij,得到更新后的项目特征q̂i。
步骤6 将用户隐含特征p̂u与项目隐含特征q̂i作内积计算得到预测评分ŷui。
步骤7 输入指定用户产生Top-N个推荐结果,利用改进TF-IDF分析用户对不同项目类型的偏好程度值Sujgi。
步骤8 根据偏好程度Sujgi值将项目类型降序排列,取前K个类型作为待推荐项目组的组名,K即为推荐项目组的数量。
步骤9 在每个项目组加入D部与组名对应的同类电影,并按每部电影的预测评分降序排列。最终进行由K个项目组构成,且每个项目组包含D部同类型电影的项目组进行推荐。
结尾
春节快到了,在这里先小小地祝福一波朋友们,大家新的一年事事顺意。
另外,愿世间昌平,愿海晏河清。
明儿个见喽。
2024-01-30 10:32:58 星期二
标签:项目,推荐,用户,TF,算法,IDF,注意力 From: https://www.cnblogs.com/wephiles/p/17995828