1.前言

推荐系统(recommendation system,RS)是数据挖掘、预测算法、机器学习等多种学科结合而成的一个新的研究领域。

1.1 应用

推荐系统可以有效的对信息进行过滤和筛选,帮助用户以个性化的方式来检索符合其需求的信息资源,以此来达到缓解信息过载的问题。目前已经应用于教育、音乐、电子商务、社交网络等领域

2.传统的推荐算法

数学定义:
c p ′ = a r g   m a x f ( p , c ) , ∀ p ∈ P c_p^{'}=arg \space maxf(p,c),\forall p\in P cp=arg maxf(p,c),pP
其中P表示所有用户的集合,C为用户可推荐的对象的集合。f表示用户p对c的喜爱度,函数f取得最大值的推荐对象 c ′ ∈ C c^{'}\in C cC推荐给用户。
传统的推荐算法大致有三种:

  • 基于内容过滤的推荐算法(content-based recommendation)
  • 基于协同过滤的推荐算法(collaborative filtering recommendation)
  • 混合推荐(hybrid recommendation)
    在这里插入图片描述

2.1 基于内容的过滤推荐技术

  • 一种基于上下文内容的方法来匹配和排序服务
  • 一种匹配用户查询和服务描述以及相关上下文信息的服务发现方法
  • 提出了一个web服务上下文分类,然后使用本体来定义这个分类

基于内容过滤的推荐技术核心思想是:以用户历史的选择记录或偏好作为参考推荐,挖掘其他未知的记录或偏好作为参考推荐关联性高的项目作为系统的推荐内容。
显式反馈:评价、认可度、喜欢\不喜欢
隐式反馈:浏览时间、点击次数、搜索次数、停留时间

获取到的某段时间内的交互记录,然后学习这些记录中用户偏好并将其标记为特征,接着就可以计算用户偏好与 待测推荐对象与用户偏好的推荐对象。计算相似度是一个关键部分,直接影响了推荐的策略,计算相似度的方式有多种,常见的是:
u ( c , s ) = s c o r e ( u s e r p r o f i l e , c o n t e n t ) u(c,s)=score(userprofile,content) u(c,s)=score(userprofile,content)
u ( u , c ) = c o s ( w ⃗ c , w s ⃗ ) = Σ i = 1 K w i , c , w i , s Σ i = 1 K w i , c 2 Σ i = 1 K w i , s 2 u(u,c)=cos(\vec{w}_c,\vec{w_s})=\frac{\Sigma_{i=1}^{K}w_{i,c},w_{i,s}}{\sqrt{\Sigma_{i=1}^{K}w_{i,c}^2 \sqrt{\Sigma_{i=1}^{K}w_{i,s}^2}} } u(u,c)=cos(w c,ws )=Σi=1Kwi,c2Σi=1Kwi,s2 Σi=1Kwi,c,wi,s
通过计算得到不同的u值,将u值排序,u值越大,说明推荐对象越符合用户的喜好,例如用户推荐电影时,系统会学习用户的历史观看记录,然后分析共性,预测用户可能看兴趣的电影类型,从海量的电影清单中选择出与用户偏好相似的电影。用户偏好记录的特征标记推荐内容是基于内容过滤的推荐的关键,用户评价基于内容的推荐影响较小。
在这里插入图片描述

2.2 协同过滤推荐算法

协同过滤推荐算法的核心就是通过分析评分矩阵来得到用户与项目之间的依赖关系,进而预测新用户与项目之间的关联关系。Amazon、Netflix主要采用的是协同过滤算法,协同过滤算法也被广泛的用于Music、Movie、E-commerce等领域。

2.2.1 基于内存的推荐

1.基于内存的协同过滤推荐通过用户-项(User-Item)的评价矩阵寻找相似用户和相似项目之间的相似度,进而为新用户构建相似矩阵,预测用户可能感兴趣的项目。
2.基于项目的协同过滤技术主要挖掘分析的是不同的推荐项目隐藏的 关系,而不是用户之间的关系,项目件的相似度计算是该技术的关键。
在这里插入图片描述
若有 2 个不同用户 A、B,且他们都对物 品 1、3 表示出较高的喜爱,那么我们可以认为 1、3 物品存在某 种相似。当系统中出现新的用户 C,新用户 C 在选择物品时, 若其选择了物品 1,那么系统便会自动的将与物品 1 相似度高 的物品 3 推荐给他。
在这里插入图片描述
A 用户、B 用户相似,在物品选择时,A 用户选择了物品 1、2、 3,用户 B 选择了物品 1、3,那么在物品推荐的时候可以认为 B 用户的选择和 A 用户相似,因此推荐系统可以将物品 2 推荐 给用户 B。

3.基于用户的推荐算法的推荐过程不能依赖相似的用户都了解对方,于是有人提出了一种基于匿名合作的协同过滤算法,这样能发现用户隐藏的兴趣点和爱好,但是存在严重的【冷启动问题】{冷启动:在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统}
解决冷启动,常见就是传统的协同过滤与神经网络结合

2.2.2 基于模型的推荐

1.基于模型的推荐算法是通过训练数学模型来预测用户对未交互的项目评分情况,通常包括概率矩阵分解(Probabilistic Matrix Factorization,PMF)和奇异值分解(Singular Value Decomposition,SVD),大题思路是,先对用户与项目的历史交互数据记录,建立合适的模型,然后产生符合用户需求的推荐列表
通过建立成对概率矩阵分解,对推荐项目的评分差异建模,自动的学习用户对交互过的项目的偏好程度,有效降低排名倒序的平均数量,而不是降低协同过滤推荐的预测评分和实际评分之间的差值。
再者是基于图的方式计算概率矩阵的先验分布,提高PPMF模型的推荐准确率。

2.社会环境的复杂性,用户之间常常被来自身边的人群推荐,有人提出一种结合用户社交网络的矩阵分解模型。在这里插入图片描述
通过对用户聚类,将用户社交网络引入相似度计算,利用矩阵分解计算偏好,能有效的缓解冷启动和数据稀疏的问题,但当数据量过大时,训练的复杂度也随之提高。
3.基于SVD提出的FunkSVD
在这里插入图片描述
4.一种带偏置项的奇异值分解(BiasSVD),能解决用户本身特质对用户-项目评分矩阵的影响
5.融合用户-项目的隐式反馈信息的SVD++模型,能解决因只有显式反馈信息二缺失隐式反馈信息推荐冷启动问题。
6.将时间因子作为辅助信息,融合到SVD++,提出了timeSVD++模型,该模型提高用户近期隐式反馈行为的权重,而对用户造气的反馈信息的权重进行了衰减,近似的实现了动态的推荐目的。

2.3 混合推荐

基于内容的推荐技术,在数据规模大时,处理时间过长
基于协同过滤技术面对新的项目,容易遇到冷启动问题
这时混合推荐技术融合了以上的优点,避免缺点。目前的混合推荐算法有三种

2.3.1 前融合

将多个推荐算法融合到一个模型中,比如将层次聚类算法和相似度计算结合,构建出一种准确率和多样性结合的混合推荐算法,在对影响效果较小的的情况下,调整混合模型的权重因子,可以达到推荐多样性且准确的目的。

2.3.2 中融合

一般先以某种推荐算法为参照,再将推荐效果与混合其他推荐算法的技术对比,如以基于内容的推荐为主框架,然后该框架中混合 协同过滤算法能够有效的解决冷启动问题。

2.3.3 后融合

指具体的推荐过程可以忽略,但对推荐结果十分看重,通过比较不同推荐算法的结果,然后得到可靠性高的用户推荐序列,最后推荐给用户

目前看来,用户在社交网络中分享或者获取资源时,只希望将自己的兴趣爱好公开,对自己个人隐私信息保护起来,所有在保护用户的个人隐私推荐算法逐渐成为学界关注的问题。
现在算法一般是这样做的:
将集中管理和分布管理相结合的混合社交网络中,能够让用户在实现兴趣偏好的共享的同时又不暴露用户的个人隐私。

2.4 传统算法的优缺点总结:

在这里插入图片描述

2.基于深度学习的推荐技术

将深度学习技术与推荐技术相结合已经成为了一个新的研究方向,深度学习技术除了能够发现用户行为记录隐藏的潜在特征表示,还能捕捉用户与用户,用户与项目,项目与项目之间的非线性关系的交互特征,从而提升系统的性能(召回率、精度等),而且还能克服传统推荐技术遇到的一些障碍,从而实现更精确的推荐。

2.1 基于深度神经网络的推荐

2.1.1 一般深度神经网络

将深度神经网络融入到视频推荐领域中,通过预测函数P来计算C情况下,用户U,在t时刻观看视频类型i的概率,i是所有视频集合V中的某一类,公式如下:
P ( w i = i ∣ U , C ) = e v i u Σ j ∈ V e v i u P(w_i=i|U,C)=\frac{e^{v_iu}}{\Sigma_{j \in Ve^{v_iu}}} P(wi=iU,C)=ΣjVeviueviu
在这里插入图片描述

2.1.2 深广模型

深广(wide&deep)模型解决大规模的在线推荐问题,wide部分是广义线性模型,y是模型预测值,X是特征向量,w是模型参数,b是预测偏差。主要是让推荐模型具有较强的记忆能力
y = w T x + b y=w^Tx+b y=wTx+b
Deep部分是深度网络,作用是嵌入的向量进行抽象和初始化,接着对损失函数进行最小处理,隐藏层对传送的向量进行计算
a l + 1 = f ( w l a l + b l ) a^{l+1}=f(w^la^l+b^l) al+1=f(wlal+bl)
l l l是训练层数,f是激活函数,通常是RELU函数 a l a^l al b l b^l bl w l w^l wl分别是 l l l层的激活、偏置和模型权重矩阵。

2.1.3 融合 DNN 和矩阵分解的推荐模型

模型能快速的为用户项建立其生成交互函数时候所需要的 非线性模型,相比于单一的矩阵分解算法,该模型进一步的提高了评分预测准确性结果,提高了推荐的。但该模型并没有 从多种维度提取用户的偏好,泛化能力较差。

2.1.4 基于 DNN 的深度混合推荐模型

该模型将用户和项目信息输入到了改进的机器学习模型中进 行训练,从多种维度更深入的学习用户和推荐项目的交互关 系,其对用户和项目的特征学习部分是由2个并行的DNN组 成,目的是为了提取静态项目的潜在特征和动态用户的潜在特征,这种将多个深度学习模型和机器学习模型相互融合的 推荐模型,能较为准确的预测用户的偏好情况,提高推荐的性能。

在接下来的研究中,在推荐模型中可以尝试融合多个深 度学习模型和机器学习模型,提高推荐的泛化能力。
在这里插入图片描述

2.2 基于循环神经网络的推荐

2.2.1 基于LSTM和GRU的推荐系统

通常使用长短期记忆(long short term memory ,LSTM)和门控循环单元(gated recurrent unit ,GRU),它们的关键是可以捕捉到序列比较长的 n 元信息序列,最大优势是能够为前后有关联的序列信息建模,常应用于新闻推荐,文字翻译,语音识别

整个推荐过程分为 5 步:用 户特征的计算、用户和文章匹配度的计算、对推荐的新闻进行 排序、去重、计算可能植入的广告(如果需要的话),他们 LSTM 和 GRU 变体来训练用户的浏览记录。经过试验和评估,他们 发现 GRU 模型需要设置的参数少而且能够为用户推荐更准 确的新闻信息。

2.2.2 基于多元递归神经网络 MV-RNN

MV- RNN 能够将视频、文本、图片等信息整合,他们将不同的多视 图特征进行组合作为输入项,接着,在模型的隐藏层,用一个 单独且统一的结构来处理输入信息,动态有序地捕获用户的 兴趣。

2.2.3 基于知识图谱的 RNN 推荐算法

知识图谱是用结构化网络对客观世界实体之间关系的 一种描述,能够用形式化的方法表示现实生活中事物间的相 互关系
知识图谱和 RNN 模型建立了一种能实时捕捉到用户兴趣点变化的序列化推荐模型,该模型尝试将多源异构数据同时输入到模型中,提升了推荐的效率。但该模型只尝试了在音乐推荐方面应用,因该模型对异构数据具有较好的融合的能力,未来可以尝试将该模型应用到视频、文本、社交网络推荐中,增加该模型的可扩展性。
对于缓解数据稀疏和冷启动问题具有明显 的效果,但这也仅适用于数据积累较为成熟的系统,当面对数 据积累较少的新系统,往往会出现推荐准确率低、推荐效果差 的问题。因此,未来如何利用知识图谱对新系统产生较好的 推荐,将是进一步研究的一个重点。

2.2.4 基于注意力机制的RNN推荐算法

注意力机制能够根据用户的偏好差异为推荐项目的潜在 特征划分区域,赋予大部分用户都关注的区域较高的权重,不 关注无关部分,其原理类似人脑的注意力机制,从本质上来说 其工作原理是利用注意力的概率分布,捕捉对输出有关键影 响的输入。
该推荐系统4步骤:
1.为用户的偏好情况建立模型。这一步主要是由 RNN 模型来完成 ,RNN 模型为用户的历史浏览行为记录建模 ,动 态的捕获到用户 u n u_n un 的偏好 h n h_n hn
2.对用户社交网络中朋友的偏好情况进行表示。RNN 模型不仅可以对用户的历史浏览行为记录进行建模,也能为用户社交网络中朋友们的历史浏览行为进行建模,朋友 k 的 短期偏好情况用输出向量 s k s s_k^s sks 表示,长期偏好情况用输出向量 s k l s_k^l skl表示,最后将两种输出向量 s k s_k sk s k s_k sk 连接得到 S k S_k Sk S k S_k Sk 就是朋友 k k k的整体偏好。
3.动态的图注意力机制建模:首先,为用户建立一个图 网络,网络中的每个节点代表着用户与社交网络中朋友的图网络
在这里插入图片描述
其中代表用户的长期偏好, h u l h^l_u hul代表朋友的长期偏好 h k l h^l_k hkl, h u k l h^l_{uk} hukl代表用户和朋友之间相差的注意力分数。
为用户产生推荐序列 :将用户的偏好 h ~ n \tilde h_n h~n和合并后的 h u L h^L_u huL连接就可以得到融合了用户朋友偏好的用户偏好 h ~ n \tilde h_n h~n
在这里插入图片描述
在这里插入图片描述

2.3 卷积神经网络

最大特点是具有表征学习能力,是包含深度卷积计算的前馈 神经网络,CNN 的核心是隐含层和卷积层的相互连接,常见的三种性能较好的卷积神经网络 有 VGGNet、GoogLeNet、 ResNet。
用户对项目的评级矩 阵如果过于稀疏,则会影响推荐质量,为了解决数据稀疏的问题,他们提出了一种混合模型,该推荐模型基于上下文感知和 卷积矩阵因式分解,将卷积神经网络集成在了概率矩阵分解中 ,能有效的捕获上下文信息 ,从而填补稀疏的用户评级矩阵,提高推荐的准确率。

2.3.1 基于注意力机制的卷积神经网络

  1. 一种基于注意力机制的 CNN 的 新浪微博话题推荐模型,该模型设置了 2 个注意力通道(全局 和局部),提高了推荐的准确率,但是该模型使用的数据都是 文本类型,忽略了图像等其他形式的话题类型。
  2. 一种基于注意力机制的深度协作 神 经 网 络 (Deep Cooperative Neural Networks based on Attention,ACoNN)模型,注意力机制的作用是为文本矩阵的 权重重新赋值,并行的 CNN 模型的作用是对用户和文本的信 息充分的挖掘以获取潜在的隐含特征。
    在这里插入图片描述

2.4 基于图神经网络的推荐

图 神 经 网 络(Graph Neural Network ,GNN)借 鉴 RNN 和 CNN 的思想,是一种重新定义和设计的用于处理非欧式空间 的数据的一种深度学习算法。
一种融合时间关注 机制的图卷积推荐模型,图卷积神经层对用户在整个实际场 景中的角色进行抽象,能大致反映出用户的短期偏好特征,引入LSTM增加模型鲁棒性,

2.4.1 基于 PMF 的图神经网络推荐

一种融合 PMF 和 GNN 的推荐模型,该模型首先将社交网 络图和用户项目图这两个图内在联系起来,接着对图进行建 模,捕获用户在社会空间中的潜在特征向量和项目空间上的 潜在特征向量,然后,将捕获到的特征向量进行相互串联充分 的学习目标用户的特征向量,将捕获到的特征向量在集成在 PMF 模型中,产生项目的评分和推荐列表。

2.4.2 基于会话的图神经网络推荐

匿名用户推荐问题逐渐成为推荐领域的一个重 要研究方向。
但是,GNN 无法精确地捕获到用户会话间潜在的依赖信息。
该模型利用多层的图卷积模型能精确地捕获到用 户会话图信息,需要进一步的捕获会话间的时序图捕获用户 的偏好变化情况,这一步由递归神经网络层来学习完成,递归 神经网络层还能精确地捕获到会话之间的交互信息。
在这里插入图片描述
在这里插入图片描述

3. 常见数据集

在这里插入图片描述
在这里插入图片描述

4.推荐系统面临的挑战和研究方向

  1. 通过静态信息为用户的推荐项目
    目前动态实时的 为用户推荐方面的研究较少,如何根据用户的偏好变化动态 的为用户推荐项目,仍是未来推荐系统研究的热点之一。
  2. 推荐系统的安全性有待提高
    可以着重研究一种既能保护用户隐 私又可以提高推荐准确性的方法
  3. 缺失提取用户偏好特征的方法
    研究中需引入更 多样地方式来提取用户和推荐对象的特征。
  4. 评价推荐系统的性能指标单一
    研究中推荐项目的新颖性、多样性都应该作为推荐系统的 评价指标。

参考文献:
[1] 于蒙,何文涛,周绪川,崔梦天,吴克奇,周文杰.推荐系统综述[J/OL].计 算机应用. https://kns.cnki.net/kcms/detail/51.1307.tp.20210922.1115.002.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐