推荐模型是怎样由窄变宽、越变越深的?

星标/置顶小屋,带你解锁

最萌最前沿的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和妹纸
等你来撩哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划应用--找零钱

文章目录1. 问题描述2. 问题分析2.1 回溯法求解2.2 DP状态转移方程法2.3 DP状态转移表法1. 问题描述 找零问题,在贪心算法讲过。但是贪心不一定能得出最优解。假设有几种不同币值的硬币v1,v2,.……vn(单位是元)。如果…

玩转算法之面试第九章-动态规划

动态规划: 9-12 斐波那契数列 对重复计算,进行优化,进行记忆化搜索 假设基本的问题已经被解决,依次内推。 动态规划:将原问题拆解成若干个子问题,同时保存子问题的答案,使得每个子问题只求…

领域应用 | 从本体论开始说起——运营商关系图谱的构建及应用

本文转载自公众号:中国联通大数据。联通大数据技术专家闫龙将从“本体论”说起,为大家介绍联通大数据关系图谱的构建与应用。一.本体论万维网之父Tim Berners-Lee教授在1998年将语义网络(Semantic web)带入人类的视线。…

史上最强多线程面试44题和答案:线程锁+线程池+线程同步等

最全BAT必考题答案系列 最全MySQL面试60题和答案 史上最全Spring面试71题与答案 史上最全Redis面试49题(含答案):哨兵复制事务集群持久化等 分布式缓存RedisMemcached经典面试题和答案 最全Java锁详解:独享锁/共享锁公平锁/非公平锁乐观锁…

部门直推!百度大搜索招聘NLP、搜索方向算法工程师!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术工作职责负责百度搜索排序相关性(Relevance)策略。 职位要求-了解主流机器学习算法。 -优秀的分析问题和解决问题的能力,对解决具有挑战性问题充满激情。 -C/C语言编程&…

POJ 1276 ATM凑钱(动态规划)(未解答)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted代码1. 题目 1.1 题目链接 http://poj.org/problem?id1276 1.2 题目大意 需要凑的钱最多100000,面额最多10种,每种张数最多1000,面额最大不超过1000 1.3 解题思…

论文浅尝 | 为基于知识库的问答构建形式查询生成

论文笔记整理:刘晓臻,东南大学计算机科学与工程学院本科生。Citation: H.Zafar, G. Napolitano, and J. Lehmann. Formal query generation for questionanswering overknowledge bases. ESWC, 2018.https://link.springer.com/content/pdf/10.1007%2F97…

Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解

我们继续Java多线程与并发系列之旅,之前我们分享了Synchronized 和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。 然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如…

这篇顶会paper,讲述了疫情期间憋疯的你和我

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术编 | 小轶2020年净忙着见证历史了。年初疫情爆发后,大家的生活模式也因为疫情发生了巨变。经历了史上最长假期,躺尸太久,到后来满脑子只想开学/复工。今年KDD会议上有一篇很…

论文浅尝 | Knowledge Vault: 全网规模的知识概率融合方法

论文笔记整理:吴桐桐,东南大学博士生,研究方向为自然语言处理。链接:https://www.cs.ubc.ca/~murphyk/Papers/kv-kdd14.pdf基于机器学习,Knowledge Vault不仅能够从多个来源(文本,表格数据&…

java程序员的必用的9款开发工具

今天推荐java程序员开发利器,包含如如下: 开发环境: Eclipse IntelliJ IDEA IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等&#xff…

动态规划应用--搜索引擎拼写纠错

文章目录1. 字符串相似度1.1 莱文斯坦距离1.2 最长公共子串长度2. 计算编辑距离2.1 莱文斯坦距离2.2 最长公共子串长度3. 搜索引擎拼写纠错4. 练习题在 Trie树那节讲过,利用Trie可以进行关键词提示,节省输入时间。在搜索框中你不小心打错了字&#xff0c…

玩转算法之面试第十章-贪心算法

leetcode 455 分配饼干 尝试将最大的饼干给最贪心的朋友 如果满足&#xff0c;则1 如果不满足&#xff0c;则将最大的饼干给次贪心的朋友&#xff0c;一次类推 试图让最多的小朋友开心 在这里插入代码片 #include<iostream> #include<vector>using namespace …

论文浅尝 | 基于知识库的自然语言理解 04#

本文转载自公众号&#xff1a;知识工场。罗康琦&#xff0c;上海交通大学计算机系2019届博士&#xff0c;研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位&#xff0c;现就职于京东数据科学实验室&#xff08;Data Science Lab&#xff09;。他曾在…

BERT跨模态之后:占领了视觉常识推理任务榜单TOP 2!

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小鹿鹿lulu编 | YY前言由于 BERT-like 模型在 NLP 领域上的成功&#xff0c;研究者们开始尝试将其应用到更为复杂的 多模态 任务上。要求模型除文本数据以外&#xff0c;还要接收其他模态的数据&#xf…

常见的算法面试问题以及代码实现

1 时间复杂度分析 一个简单的时间测试代码如下&#xff1a; #include<iostream> #include<cmath> #include<ctime>using namespace std;int main(){for(int x1;x<9;x){int npow(10,x);clock_t startTimeclock();int sum0;for(int i0;i<n;i)sumi;clock…

阿里P8架构师谈:高并发与多线程的关系、区别、高并发的技术方案

什么是高并发&#xff1f; 高并发&#xff08;High Concurrency&#xff09;是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况&#xff0c;主要发生在web系统集中大量访问收到大量请求&#xff08;例如&#xff1a;12306的抢票情况&#xff1b;天猫双十一活动…

LeetCode 1. 两数之和(哈希)

文章目录1. 题目2. 解题1. 暴力解法2. 哈希法3. python3解答1. 题目 题目链接&#xff1a;https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。…

论文浅尝 | TuckER:基于张量分解的知识图谱补全

笔记整理&#xff1a;孙泽群&#xff0c;南京大学计算机科学与技术系&#xff0c;博士研究生。论文链接&#xff1a;https://arxiv.org/abs/1901.09590背景知识图谱是图结构的数据库&#xff0c;以三元组(es, r, eo)的形式存储事实&#xff0c;其中es和eo分别表示主语和宾语实体…

阿里Java P系列技术要求(P5-P7)

阿里p系列薪资&#xff08;最新数据比这个高1倍左右&#xff09; 阿里P5&#xff08;高级研发工程师&#xff09; 工作要求&#xff1a; 能独立完成日常工作&#xff0c;并能够对一些方案提出自己的建议。 基本考核就是能上手独立完成工作&#xff0c;熟练掌握。 技能要求…