推荐系统的框架与基本原理


前言

推荐系统的作用包括:一方面可以满足用户需求,提高用户活跃度以及平台与用户的粘合度;另一方面对于平台而言,不仅提升了用户体验,甚至在一定程度上解决了长尾问题。本篇文章主要介绍推荐系统的框架和运行原理。

一、推荐系统的框架及运行

1. 基本框架

推荐系统关注的三大核心问题,分别是预测、排序和可解释性。其中可解释性甚至可以通过关系图谱的方式展示。围绕这三个问题设计推荐系统的框架。

下图所示的是一个典型的Web推荐框架:

一个典型的Web推荐框架
上面典型的Web推荐架构由一下四部分构成:

  1. 推荐服务:用户从Web服务器上获取推荐请求,然后获取系统推荐的物品信息。
  2. 存储系统:存储必要的数据和索引,包括用户特征、物品的属性,推荐算法模型的参数以及物品的索引。
  3. 离线学习:离线的环境下利用用户数据进行大量学习,学习的数据量大且耗时长。
  4. 在线学习:利用用户的即时数据,不断更新模型参数,逐步对模型进行调整。

2. 推荐引擎的工作流程

推荐引擎从一个大的结果集中通过协同过滤模型或者一些其他的算法进行结果召回,然后把召回的结果集进行排序。排序阶段又可分为粗排、精排以及再排序更为细致的阶段。推荐引擎根据不同的推荐机制并利用数据源中的一部分用户数据,分析出一定的规律或者直接预测用户对其他物品或内容的喜好。这样,推荐引擎就可以给用户推荐他可能感兴趣的物品或者内容。

推荐引擎的工作流程如下图所示:

在这里插入图片描述

二、推荐系统的经典问题

推荐系统一直存在两个比较典型的问题:搜索和利用(Exploration & Exploitation, EE),冷启动问题。

1. 搜索和利用

搜索指探索未知领域,利用指根据当前信息,由训练的模型做出最佳的决策。实际上,探索是指做你以前没有做过的事情,以期望获得更高的回报;利用是指做你当前知道的、能产生最大回报的事情。

在推荐系统中为了可以准确估计每件物品的响应率,我们可以将每件候选物品展示给一部分用户,并及时收集物品的相应数据,依次对候选物品进行探索。然后,利用响应率估计较高的物品来优化目标,但是探索过程中存在机会成本,如果仅根据当前收集的数据估算物品的响应率,那么实际上候选物品可能并没有机会展示给用户,这是一个权衡和博弈的过程。

如果利用太多,那么模型可能陷入局部最优,但是探索太多,模型收敛速度太慢,这就是EE的困境。EE问题的核心是平衡推荐系统的准确性和多样性。所以,解决EE问题的关键是找到一种长期收益最高,但可能短期奖励有损失的策略。现实中多采用求解多臂赌博机(Multi-Armed Bandit, MAB)的方法来解决EE问题。

推荐系统与Bandit算法对应关系如下表:

Bandit算法推荐系统
臂(Arm)每次选择的候选项每次推荐的候选池
回报(Reward)选择一个臂后得到的奖励,有时也叫做收益用户是否喜欢推荐结果,喜欢就是正面的回报,不喜欢就是反面的回报或是零回报
环境(Context)系统无法控制的那些因素推荐系统面临的用户

在推荐系统中,常采用三种策略解决EE问题,包括贝叶斯方法、极小\极大方法和启发式赌博方案。

2. 冷启动

当用户当前搜索的历史行为为空时,推荐系统面临一个比较特殊的状态,即冷启动状态。

推荐系统的冷启动一般分为三类:用户冷启动,物品冷启动和系统冷启动。冷启动问题的解决方案主要有以下几种,比如利用热门数据、利用用户注册信息、利用第三方数据、利用物品属性和利用专家标注结果。

不同类别的冷启动问题解决办法如下图所示:

冷启动解决办法

三、召回策略

由于物品众多,系统无法为每个用户逐一计算每个物品的得分,这就需要召回策略。召回阶段的作用就是选出一部分物品,以此降低系统计算量。召回策略有很多种,比较重要的有基于行为相似的召回和基于内容相似的召回。

1. 基于行为相似的召回

协同过滤算法通过分析用户的兴趣,在用户群中找到与当前用户相似的用户。该算法包括以下几个步骤:收集用户偏好、找到相似的用户、计算并推荐。

协同过滤算法可以分为两种:一种是基于用户的(User-based CF),另一种是基于物品的(Item-based CF)。两种算法在计算相似度步骤上是一样的,区别在于基于用户的协同过滤计算了列向量,基于物品的协同过滤计算了行向量。

用户相似度有如下几种常见的度量指标:

(1) Jacard相似度

W u v = ∣ N ( u ) ∣ ∩ ∣ N ( v ) ∣ ∣ N ( u ) ∪ N ( v ) ∣ W_{uv}=\frac{|N(u)|\cap|N(v)|}{|N(u)\cup N(v)|} Wuv=N(u)N(v)N(u)N(v)
其中, u u u v v v是两个不同的用户, N ( u ) N(u) N(u)表示用户 u u u所有有过正向行为的物品集合, N ( v ) N(v) N(v)同理。上式通过计算两个用户共同感兴趣的物品所占两人所有感兴趣的物品的比例,即通过共同感兴趣物品的比例来反映两人的相似度。

(2) 利用余弦相似度

利用余弦相似度得到用户的相似度之后,可以计算用户对物品的感兴趣程度
P ( u , i ) = ∑ v ∈ S ( u , v ) ∩ N ( i ) W u v R v i P(u, i)=\sum_{v\in S(u,v) \cap N(i)}W_{uv}R_{vi} P(u,i)=vS(u,v)N(i)WuvRvi
其中, P ( u , i ) P(u, i) P(u,i)表示用户 u u u对物品 i i i感兴趣的概率, S ( u , v ) S(u,v) S(u,v)表示用户 u u u兴趣相似度最高的 K K K个用户, N ( i ) N(i) N(i)是对物品 i i i感兴趣的用户集合, W u v W_{uv} Wuv是用户 u u u v v v的相似度, R v i R_{vi} Rvi是用户 v v v对物品 i i i的正向行文评分。

(3) 欧几里得距离

欧几里得距离越大,相似度越小,反之越大。将欧几里得距离转换成相似度的计算公式如下:
s i m ( x , y ) = 1 1 + d ( x , y ) sim(x, y)=\frac{1}{1+d(x, y)} sim(x,y)=1+d(x,y)1

(4) 皮尔逊相关系数

皮尔逊相关系数测量的其实是两个定量变量是否在同增同减。

2. 基于内容相似度的召回

基于内容相似的召回建立在对内容的理解上。核心思想是根据推荐物品的元数据或描述内容,发现物品间的相关性,然后基于用户的喜好,推荐给用户相似的物品。

内容相似度的计算方法有很多种,以后有机会再单独整理。

四、推荐系统排序

业界主流的推荐系统的排序过程也是采用特征选择的方法。

1. 特征选择的方法

工业界普遍的认识是:数据和特征(特征工程)决定机器学习的上限,而模型和算法只是用于无限地逼近这个上限。特征工程的本质是一项工程活动,目的是从原始数据中提取供算法和模型使用的有效数据。特征工程包含的工作大概如下图:

在这里插入图片描述
组合特征主要是通过对基础特征乃至组合特征本身不断再组合的方式产生的特征。组合方法主要包括分箱、分解类别特征在组合、加减乘除、平方、开平方等。

生成了特征之后,特征验证也是一个比较重要的工作。由于产生场景不同,生成的特征中往往存在不用或是暂时不用的情况。这就需要我们在一开始就将这一部分特征排除,优化特征生产的流程。

特征经过预处理之后,常用的特征选取方法主要包括过滤法、封装法、嵌入法。

(1) 过滤法:按照相关性对各个特征进行评分,设定阈值或者待选阈值的个数,选择特征。
(2) 封装法:对于备选特征,每次在模型中选择或是删除部分特征,基于现有的评分标准,利用模型或是评分标准去评价变动特征对结果的影响,反向选择特征。
(3) 嵌入法:先使用某些特征选择算法进行训练,得到各个特征的权重,再根据权重从大到小选择特征。

2. 排序过程

排序模型分为线性模型、树模型、深度学习模型,以及它们之间的组合模型等。业界普遍认为的模型迭代是从早期的线性模型LR,到引入自动二阶交叉特征的FM和FFM,再到非线性树模型GBDT和GBDT+LR,然后到深度学习模型,如下图所示:

传统排序模型结构
接下来比较一下传统机器学习模型的优缺点:

(1) LR模型的优点是可解释性强。通常,排序模型良好的可解释性是业界比较在意的指标。但是LR模型需要依赖大量的人工挖掘特征,而且有限的特征组合无法提供较强的表达能力。

(2) FM在LR模型的基础上做了改进,引入了交叉项作为特征,可以减少人工特征挖掘的过程,捕捉到更多的信息。但是,FM模型只能捕捉到两两特征之间的关系,无法获得更高阶的交叉特征。

(3) GBDT是一个提升模型,它通过组合多个弱学习器拟合残差得到一个更强的模型。GBDT属于树模型,能够很好地挖掘组合高阶特征,具有一定可解释性。但是,GBDT对高维稀疏特征、时间序列特征处理得不是很好。

随着业务场景的拓展,传统的排序学习向深度学习模型发展。深度学习模型优势如下:

(1) 强大的模型拟合能力。深度学习模型包含多个隐藏层和隐藏节点,配合非线性激活函数可以模仿神经细胞工作方式去拟合任何函数。

(2) 强大的特征表征和泛化能力。可以处理许多传统模型无法处理的特征,例如深度学习模型可以直接从海量训练样本中学习到高维稀疏特征的隐含信息,并通过嵌入的方式表征。对于文本、序列特征以及图像特征,深度学习模型均可处理。

(3) 自动组合和发现特征的能力。华为提出的Deep FM以及谷歌提出的Deep Cross网络模型可以自动组合特征,代替大量人工组合特征。

当然,深度学习模型也存在一些现实问题。比如深度学习的黑盒属性会带来巨大的解释成本,也会带来一些业务问题。比如,对于负例的快速响应、模型是否能充分学习无从得知。

五、基于知识图谱的推荐系统

知识图谱是认知智能的重要一环,知识赋能的智能推荐将成为未来推荐系统的主流。智能推荐可以表现在多个方面,包括场景化推荐、任务型推荐、冷启动场景下推荐、跨领域推荐、知识型推荐等。


总结

本篇博文主要讲述推荐系统的框架和原理、冷启动问题、召回策略以及特征选择和排序过程中的要点,最后简单介绍了知识图谱在推荐系统中的应用。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值