星标/置顶小屋,带你解锁
最萌最前沿的NLP、搜索与推荐技术
文 | 邢智皓
编 | 兔子酱
当前,深度学习推荐模型已经成功应用于推荐、广告、搜索等领域,但在了解它之前,简单回顾传统推荐模型仍是有必要的,原因如下:
即使在深度学习空前流行的今天,协同过滤、逻辑回归、因子分解机等传统推荐模型仍然凭借其可解释性、硬件环境要求低、易于快速训练和部署等不可替代的优势,在实际系统中备受青睐。
传统推荐模型是深度学习推荐模型的基础,很多深度学习推荐模型,比如基于因子分解机支持的神经网络(FNN)、深度因子分解机(DeepFM)等更是与传统的FM模型有着千丝万缕的联系。
本文主要参考了王喆老师的《深度学习推荐系统》,从传统推荐模型的进化关系图开始,介绍了具有代表性的传统推荐模型的原理、优缺点,以及不同模型之间的演化关系,希望能够为读者绘制一幅全面的传统推荐系统模型进化蓝图。
传统推荐模型的演化关系图
下图为传统推荐模型的演化关系图,我们将它作为本文的索引。已经对其中某些模型有所了解的读者可以由点及面地构建全面的模型进化关系脉络,还没有相关知识储备的读者,可以据此建立传统推荐模型的框架和大致印象。
基于用户的协同过滤(UserCF)
如果让推荐系统领域的从业者说出业界影响力最大、应用最广泛的模型,那笔者认为90%的从业者会首选协同过滤。
什么是协同过滤
顾名思义,“协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。下面用一个商品推荐的例子来说明协同过滤的推荐过程。
协同过滤的具体流程
电商网站的商品库里面一共有4件商品:游戏机、某小说、某杂志和某品牌电视机。
用户访问该电商网站时,电商网站的推荐系统需要决定是否将电视机推荐给用户。为了进行这项预测,可以利用用户对其他商品的历史评价数据,以及其他用户对这些商品的历史评级数据。
为了方便计算,可以将图2中的用户对商品的喜好转换为矩阵的形式(被称为”共现矩阵“),用户作为矩阵的行坐标,商品作为列坐标,将”点赞“和”踩“的用户行为转换为矩阵中的相应元素。
生成共现矩阵后,推荐问题就转换成了预测矩阵中问号元素的值的问题。既然是”协同“过滤,用户应该考虑与自己兴趣相似的用户的意见。因此,预测的第一步是要找到与用户兴趣最相似的个用户,综合相似用户对”电视机“的评价,给出用户对电视机的预测。
从共现矩阵中可知,用户和用户跟用户的行向量接近,被选为Top 相似用户。有图2所知,用户和对电视机的评价都是负面的。
相似用户对”电视机“的评价是负面的,因此可以预测用户X对”电视机“的评价也是负面的。
常用的向量相似度计算方法有余弦相似度、皮尔逊相关系数等,有兴趣的读者可以查阅相关资料做详细了解。
以上介绍的系统过滤算法是基于用户相似度进行推荐,因此也被称为基于用户的协同过滤(UserCF),该方法包含以下缺点:
在互联网场景下,用户数往往大于商品数,而 userCF 需要维护用户相似度矩阵以便快速找出Top 相似用户,用户的增长会导致用户相似度矩阵的存储空间已速度快速增长, 这是在线存储系统难以承受的。
用户的历史数据向量往往非常稀疏,对于只有几次购买或者点击行为的用来来说,找到相似用户的准确度是非常低的,导致UserCF不适于哪些正反馈比较困难的应用场景。
基于物品的协同过滤(ItemCF)
由于UserCF技术上的缺点,UserCF并没有得到广泛应用,而ItemCF成为了Amazon、Netflix等公司最初的推荐系统。
ItemCF的算法过程
基于历史数据,构建以用户(假设用户总数为)为行坐标,物品(物品总数为)为列坐标的 x 维的共现矩阵。
计算共现矩阵两两列向量间的相似性(相似度的计算方式与用户相似度计算方式相同),构建 x 维的物品相似度矩阵。
获取用户历史行为数据中的正反馈物品列表。
利用物品相似度矩阵,针对目标用户历史行为中的正反馈物品,找到相似的 Top 个物品,组成相似物品集合。
针对相似物品集合中的物品,利用相似度分值进行排序,生成最终的推荐列表。
UserCF与ItemCF的应用场景
由于UserCF基于用户相似度进行推荐,使其具备更强的社交特性,该特点使其非常适用于新闻推荐场景。
ItemCF更适用于兴趣变化较为稳定的应用,比如电商系统,视频推荐系统等。
矩阵分解算法
针对协同过滤头部效应较明显,泛化能力弱的问题,矩阵算法被提出。矩阵分解算法在协同过滤算法中“共现矩阵”的基础上,加入了隐向量的概念,加强了模型对稀疏矩阵的处理能力,针对性地解决了协同过滤存在的主要问题。
基本原理
矩阵分解算法将 x 维的共现矩阵分解为 x 维的用户矩阵和 x 维的物品矩阵相乘的形式,其中是用户数量,是物品数量,是隐向量的维度,的大小决定了隐向量表达能力的强弱。的取值越小,隐向量包含的信息越少,模型的泛化程度越高;反之,的取值越大,隐向量的表达能力越强,泛化程度相应降低。
常用的矩阵分解方法有特征值分解、奇异值分解和梯度下降,有兴趣的读者可以查阅相关资料深入了解。
矩阵分解算法的优缺点
相比于协同过滤算法,矩阵分解算法有如下优势:
泛化能力强,在一定程度上解决了数据稀疏问题
空间复杂度低,空间复杂度有级别降低到级别。
更好的扩展性和灵活性。矩阵分解的最终产出是用户和物品隐向量,这其实与深度学习中的Embedding思想不谋而合,因此矩阵分解的结果也非常用户与其他特征进行拼接和组合,并便于与深度学习网络进行无缝结合。
逻辑回归算法
相比于协同过滤模型仅利用用户和商品的相互行为信息进行推荐,逻辑回归模型能够综合利用用户、商品和上下文的特征,生成较为“全面”的推荐结果。
基本原理
相比协同过滤和矩阵分解利用用户和商品的“相似度”进行推荐,逻辑回归将推荐问题看成一个分类问题,通过预测正样本的概率对物品进行排序。正样本可以是用户“点击”了某商品,也可以是用户“观看”了某视频,这些都是推荐系统希望用户产生的“正反馈”行为。逻辑回归模型将推荐问题转换成了一个点击率预估问题。
逻辑回归模型的推荐过程:
将用户年龄、性别、物品属性、物品描述、当前时间、当前地点等特征转换成数值型向量。
确定逻辑回归模型的优化目标(优化“点击率”),利用已有样本数据对逻辑回归模型进行训练,确定逻辑回归模型的内部参数。
在模型服务阶段,将特征向量输入到逻辑回归模型,经过模型的推荐,得到用户“点击”物品的概率。
利用“点击”概率对所有候选物品进行排序,得到推荐列表。
逻辑回归的数学形式在此不再详细阐述,有兴趣的读者可以查阅相关资料进行理解。
逻辑回归模型优势
数学含义上的支撑,逻辑回归模型是广义线性模型的一种,它的假设是因变量y服从伯努利分布。在CTR预估这个问题上,“点击”事件是否发生就是模型的因变量y,而用户是否点击广告就是一个经典的投掷偏心硬币问题。因此CTR模型的因变量显然服从伯努利分布。
可解释性强,直观地讲,逻辑回归模型的数学形式是各特征的加权和,再施以sigmoid函数。特征的权重反应了各个特征的重要程度,因此逻辑回归模型具有极强的可解释性。
工程化的需要,逻辑回归模型凭借其易于并行化、模型简单、训练开销小等特点,占据着工程领域的主流。
逻辑回归模型的局限性
逻辑回归作为一个基础模型,其局限性是非常明显的:表达能力不强、无法进行特征交叉、特征筛选等一系列“高级”的操作,因此不可避免地造成信息的损失。
自动特征交叉的解决方案
逻辑回归模型表达能力不强的问题,会不可避免地造成有效信息的损失。在仅利用单一特征而非交叉特征进行判断的情况下,有时不仅是信息损失的问题,甚至会得出错误的结论。因此,通过改造逻辑回归模型,使其具备特征交叉的能力是必要和迫切的。
POLY2模型
针对特征交叉的问题,算法工程师经常采用先手动组合特征,再通过各种分析手段筛选特征的方法,但这种方法无疑是低效的。更遗憾的是,人类的经验往往有局限性。因此,采用POLY2模型进行特征的“暴力”组合成了可行的选择。
POLY2模型的数学表达形式如下所述,
从上述公式可以看到,该模型对所有特征进行了两两交叉,并对所有的特征组合赋予了权重。POLY2通过暴力组合特征的方式,在一定程度上解决了特征组合的问题。
算法缺陷
在处理互联网数据是,经常采用one-hot编码的方式处理类别型数据,导致特征向量极度稀疏。而POLY2进行无选择的特征交叉使得原来非常稀疏的特征向量更加稀疏,进而导致大部分交叉特征的权重缺乏有效的数据进行训练而无法收敛。
权重参数的数量由上升到,极大地增加了训练复杂度。
FM模型
为了解决POLY2模型的缺陷,研究者提出了FM模型,模型的数学表达形式如下所示,
与POLY2相比,其主要区别是用两个向量的内积取代了单一的权重系数。FM为每个特征学习了一个隐权重向量,在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重。
FM引入隐向量的做法,本质上与矩阵分解用隐向量代表用户和物品的做法异曲同工。可以说FM是将矩阵分解隐向量的思想进行了进一步扩展,从单纯的用户、物品隐向量拓展到了所有特征上。
算法优点
FM通过引入特征隐向量的方式,直接把POLY2模型级别的权重参数数量减少到了(为隐向量的维度,>>).
隐向量的引入使得FM能更好的解决数据稀疏性的问题,降低了模型对数据稀疏性的要求。相比于POLY2,FM虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提高。
最后,我们对上述出现过的所有模型的特点进行总结,希望帮助读者再次回顾其中的关键知识。
在对传统的推荐模型进行总结时,读者也要意识到,传统推荐模型与深度学习模型之间存在着千丝万缕的联系。正是对传统模型研究的不断积累,为深度学习模型打下了坚实的理论和实践基础。矩阵分解技术成功应用在推荐系统领域,其隐向量的思想与深度学习中Embedding技术的思路一脉相承;FM被提出,特征交叉的概念被引入推荐模型,其核心思想——特征交叉的思路也将在深度学习模型中被发扬光大。这些概念都将在深度学习推荐模型中继续应用,持续发光。
文末福利
后台回复关键词【入群】
加入卖萌屋NLP/IR/Rec与求职讨论群
有顶会审稿人、大厂研究员、知乎大V和妹纸
等你来撩哦~