前言

本篇文章是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的推荐算法的更多相关文章

  1. 基于TF/IDF的聚类算法原理

        一.TF/IDF描述单个term与特定document的相关性TF(Term Frequency): 表示一个term与某个document的相关性. 公式为这个term在document中出 ...

  2. 信息检索中的TF/IDF概念与算法的解释

    https://blog.csdn.net/class_brick/article/details/79135909 概念 TF-IDF(term frequency–inverse document ...

  3. 1、Attention_based Group recommendation——基于注意力机制的群组推荐

    1.摘要: 本文将Attention-based模型和BPR模型结合对给定的群组进行推荐项目列表. 2.算法思想: 如图: attention-based model:[以下仅计算一个群组的偏好,多个 ...

  4. 基于局部敏感哈希的协同过滤推荐算法之E^2LSH

    需要代码联系作者,不做义务咨询. 一.算法实现 基于p-stable分布,并以‘哈希技术分类’中的分层法为使用方法,就产生了E2LSH算法. E2LSH中的哈希函数定义如下: 其中,v为d维原始数据, ...

  5. 【甘道夫】基于Mahout0.9+CDH5.2执行分布式ItemCF推荐算法

    环境: hadoop-2.5.0-cdh5.2.0 mahout-0.9-cdh5.2.0 引言 尽管Mahout已经宣布不再继续基于Mapreduce开发,迁移到Spark.可是实际面临的情况是公司 ...

  6. NLP教程(6) - 神经机器翻译、seq2seq与注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  7. NLP之基于Seq2Seq和注意力机制的句子翻译

    Seq2Seq(Attention) @ 目录 Seq2Seq(Attention) 1.理论 1.1 机器翻译 1.1.1 模型输出结果处理 1.1.2 BLEU得分 1.2 注意力模型 1.2.1 ...

  8. 基于Seq2Seq和注意力机制的句子翻译

    Seq2Seq(Attention) 目录 Seq2Seq(Attention) 1.理论 1.1 机器翻译 1.1.1 模型输出结果处理 1.1.2 BLEU得分 1.2 注意力模型 1.2.1 A ...

  9. Elasticsearch由浅入深(十)搜索引擎:相关度评分 TF&IDF算法、doc value正排索引、解密query、fetch phrase原理、Bouncing Results问题、基于scoll技术滚动搜索大量数据

    相关度评分 TF&IDF算法 Elasticsearch的相关度评分(relevance score)算法采用的是term frequency/inverse document frequen ...

  10. NLP之基于Bi-LSTM和注意力机制的文本情感分类

    Bi-LSTM(Attention) @ 目录 Bi-LSTM(Attention) 1.理论 1.1 文本分类和预测(翻译) 1.2 注意力模型 1.2.1 Attention模型 1.2.2 Bi ...

随机推荐

  1. Axios 面试题 (2023-09-15更新)

    有封装过 axios 么?封装一个 axios? import axios from 'axios' // 创建axios实例 const service = axios.create({ baseU ...

  2. R数据分析:非劣效性研究设计的统计处理方法,原理和实例

    在我们经常接触的统计模式中,我们是在寻求推翻原假设,证明差异,这种统计模型在传统的临床试验中,在各种统计推断中已经成为默认了.在传统的临床试验中通常会将一种新的治疗方法与标准治疗或安慰剂进行比较,从而 ...

  3. 中电金信:GienTech动态|一波好消息→中标!多领域“开花”

  4. 中电金信技术实践|Redis哨兵原理及安装部署分享

    ​ 导语:本文主要围绕redis Sentinel的基本概念.部署Redis Sentinel模式和其相关的API等内容进行介绍,并讲述哨兵与主从关系的区别,以及哨兵机制是怎么实现高可用的,希望可以与 ...

  5. Netty有关

    https://www.baeldung.com/tag/netty/ https://github.com/eugenp/tutorials https://stackoverflow.com/qu ...

  6. Linux 管理面板云帮手、APPNODE与宝塔哪个好

    阿里云服务器推荐购买99元 由于用作服务器的 Linux 主机通常都没有图形化界面,与日常使用的 Windows .MAC有着很大的差别,一些必备组件的安装或更新就很费时间,后期维护也费神.服务器管理 ...

  7. Qt音视频开发47-通用视频控件

    一.前言 自从视频监控系统的内核不断增加,从最初的vlc到ffmpeg然后到mpv,后面还陆续增加了海康sdk等,每次增加一个内核,整个视频监控系统就有三五个代码文件需要修改,而且大部分是重复的代码, ...

  8. Qt音视频开发3-vlc录像存储

    一.前言 录像功能是视频监控系统的常用功能,就是将打开的视频流或者视频文件重新保存成MP4文件,当然也可以保存成其他格式,一般默认用MP4比较好,比较标准一些,MP4格式的兼容性最好,基本上没有说那台 ...

  9. 优化博客Ⅱ-CDN加速

    CDN加速 自从有了第一次博客优化经验,我就越发对优化感兴趣了嘿嘿(✧∇✧). 看着博客首页打开时长为1200ms左右,我又开始琢磨有什么办法能再给网站提提速,让访问时间降低到1000ms以下,这时候 ...

  10. 「V 曲闲谈」《万物与我同归于寂》——终与始

      死亡, 胃酸逆流 失去最初模样 开端与结局颠倒 脉搏也摇晃   于强烈的动机下选定这首歌,但构思时又发觉,一个十六岁的青年,似乎在这个艰涩的哲学问题上难以开口.   那么先来说说我的动机.为什么我 ...