详解个性化推荐五大最常用算法

简介: 推荐系统,是当今互联网背后的无名英雄。 我们在某宝首页看见的商品,某条上读到的新闻,甚至在各种地方看见的广告,都有赖于它。 昨天,一个名为Stats&Bots的博客详解了构建推荐系统的五种方法。 量子位编译如下: 现在,许多公司都在用大数据来向用户进行相关推荐,驱动收入增长。


image


推荐系统,是当今互联网背后的无名英雄。

我们在某宝首页看见的商品,某条上读到的新闻,甚至在各种地方看见的广告,都有赖于它。

昨天,一个名为Stats&Bots的博客详解了构建推荐系统的五种方法。

量子位编译如下:

现在,许多公司都在用大数据来向用户进行相关推荐,驱动收入增长。推荐算法有很多种,数据科学家需要根据业务的限制和要求选择最好的算法。

为了简化这个任务,Statsbot团队写了一份现有的主要推荐系统算法的概述。

协同过滤

协同过滤(Collaborative filtering, CF)及其变体是最常用的推荐算法之一。即使数据科学的新手也可以用它来构建自己的个人电影推荐系统,起码可以写在简历上。

我们想给用户推荐东西,最合乎逻辑方法是找到具有相似兴趣的人,分析他们的行为,并向用户推荐相同的项目。另一种方法是看看用于以前买的商品,然后给他们推荐相似的。

CF有两种基本方法:基于用户的协同过滤和基于项目的协同过滤。

无论哪种方法,推荐引擎有两个步骤:

  • 了解数据库中有多少用户/项目与给定的用户/项目相似。
  • 考虑到与它类似的用户/项目的总权重,评估其他用户/项目,来预测你会给该产品用户的打分。

“最相似”在算法中是什么意思?

我们有每个用户的偏好向量(矩阵R的行),和每个产品的用户评分向量(矩阵R的列),如下图所示。

image


首先,我们只留下两个向量的值都已知的元素。

例如我们想比较Bill和Jane,已知比尔没有看泰坦尼克号,Jane没看过蝙蝠侠,于是,我们只能通过星战来衡量他们的相似度了。谁没看过星球大战呢是吧?

测量相似度的最流行方法是余弦相似性或用户/项目向量之间的相关性。最后一步,是根据相似度用加权算术平均值填充表中的空单元格。

矩阵分解

这是一个非常优雅的推荐算法,因为当涉及到矩阵分解时,我们通常不会太多地去思考哪些项目将停留在所得到矩阵的列和行中。但是使用这个推荐引擎,我们清楚地看到,u是第i个用户的兴趣向量,v是第j个电影的参数向量。

image


所以我们可以用u和v的点积来估算x(第i个用户对第j个电影的评分)。我们用已知的分数构建这些向量,并使用它们来预测未知的得分。

例如,在矩阵分解之后,Ted的向量是(1.4; .8),电影A的向量是(1.4; .9),现在,我们可以通过计算(1.4; .8)和(1.4; .9)的点积,来还原电影A-Ted的得分。结果,我们得到2.68分。

image

聚类

上面两种算法都极其简单,适用于小型系统。在这两种方法中,我们把推荐问题当做一个有监督机器学习任务来解决。

现在,该开始用无监督学习来解决问题了。

假设我们正在建立一个大型推荐系统,这时协同过滤和矩阵分解花费的时间更长了。第一个浮现在脑海里的解决之道,就是聚类。

业务开展之初,缺乏之前的用户数据,聚类将是最好的方法。

不过,聚类是一种比较弱的个性化推荐,因为这种方法的本质是识别用户组,并对这个组内的用户推荐相同的内容。

当我们有足够数据时,最好使用聚类作为第一步,来缩减协同过滤算法中相关邻居的选择范围。这个方法还能挺高复杂推荐系统的性能。

每个聚类都会根据其中用户的偏好,来分配一组典型的偏好。每个聚类中的用户,都会收到为这个聚类计算出的推荐内容。

深度学习

在过去的十年中,神经网络已经取得了巨大的飞跃。如今,神经网络已经得以广泛应用,并逐渐取代传统的机器学习方法。

接下来,我要介绍一下YouTube如何使用深度学习方法来做个性化推荐。

毫无疑问,由于体量庞大、动态库和各种观察不到的外部因素,为YouTube用户提供推荐内容是一项非常具有挑战性的任务。

根据《Deep Neural Networks for YouTube Recommendations》( https://static.googleusercontent.com/media/research.google.com/ru//pubs/archive/45530.pdf ),YouTube的推荐系统算法由两个神经网络组成:一个用于候选生成,一个用于排序。如果你没时间仔细研究论文,可以看看我们下面给出的简短总结。


image


以用户的浏览历史为输入,候选生成网络可以显著减小可推荐的视频数量,从庞大的库中选出一组最相关的视频。这样生成的候选视频与用户的相关性最高,然后我们会对用户评分进行预测。

这个网络的目标,只是通过协同过滤提供更广泛的个性化。

image


进行到这一步,我们得到一组规模更小但相关性更高的内容。我们的目标是仔细分析这些候选内容,以便做出最佳的选择。

这个任务由排序网络完成。

所谓排序就是根据视频描述数据和用户行为信息,使用设计好的目标函数为每个视频打分,得分最高的视频会呈献给用户。

image


通过这两步,我们可以从非常庞大的视频库中选择视频,并面向用户进行有针对性的推荐。这个方法还能让我们把其他来源的内容也容纳进来。

image


推荐任务是一个极端的多类分类问题。这个预测问题的实质,是基于用户(U)和语境(C),在给定的时间t精确地从库(V)中上百万的视频类(i)中,对特定的视频观看(Wt)情况进行分类。

建立推荐系统前该知道的要点

如果你有一个庞大的数据库,而且准备提供在线的推荐,最好把这个任务拆分成两个子问题:

i.选择Top N个候选;
ii.排序。

如衡量推荐模型的质量?

除了标准质量指标之外,还有一些针对推荐问题的指标:比如说召回率与准确率(https://en.wikipedia.org/wiki/Information_retrieval#Precision_at_K )。
还有一些其他的指标,见《软件工程中的推荐系统》一书第12章(http://www.ict.swin.edu.au/personal/jgrundy/papers/rsse2014.pdf )。

如果你正在使用分类算法解决推荐问题,应该考虑生成负例样本。如果用户购买了推荐的商品,你应该将其添加为正例样本,而其他列为负例样本。

要从在线得分和离线得分两个方面考察算法质量。一个只基于历史数据的训练模型,可能会导致低水平的推荐,因为算法没办法与时俱进。

来源:量子位

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 搜索推荐
协同过滤算法:个性化推荐的艺术与科学
协同过滤算法:个性化推荐的艺术与科学
协同过滤算法:个性化推荐的艺术与科学
|
6月前
|
机器学习/深度学习 数据采集 搜索推荐
Paper Digest | 突破个性化推荐数据稀疏性:长尾增强的图对比学习算法研究
本文提出了一种新的长尾增强的图对比学习方法(LAGCL),该方法促使模型同时兼顾头部节点与尾部节点之间的知识,并通过长尾增强技术来使模型产出更均匀更准确的节点表征,从而改进基于 GNN 的推荐任务。
|
机器学习/深度学习 存储 开发框架
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
|
人工智能 自然语言处理 搜索推荐
物以类聚人以群分,通过GensimLda文本聚类算法构建人工智能个性化推荐系统(Python3.10)
众所周知,个性化推荐系统能够根据用户的兴趣、偏好等信息向用户推荐相关内容,使得用户更感兴趣,从而提升用户体验,提高用户粘度,之前我们曾经使用[协同过滤算法构建过个性化推荐系统](https://v3u.cn/a_id_136),但基于显式反馈的算法就会有一定的局限性,本次我们使用无监督的Lda文本聚类方式来构建文本的个性化推荐系统。
物以类聚人以群分,通过GensimLda文本聚类算法构建人工智能个性化推荐系统(Python3.10)
|
搜索推荐 算法 Python
使用Python3配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
个性化推荐可谓风生水起,Youtube,Netflix,甚至于Pornhub,这些在互联网上叱咤风云的流媒体大鳄无一不靠推荐系统吸引流量变现,一些电商系统也纷纷利用精准推荐来获利,比如Amzon和Shopfiy等等,精准推荐用事实告诉我们,流媒体和商品不仅仅以内容的传播,它还能是一种交流沟通的方式。
使用Python3配合协同过滤算法(base on user,基于人)构建一套简单的精准推荐系统(个性化推荐)
|
机器学习/深度学习 算法 搜索推荐
|
SQL 分布式计算 搜索推荐
无编码利用协同算法实现个性化推荐
根据昨天的URL上报数据生成ALS模型。之后将模型加载到流式计算中,对实时URL的访问用户进行内容推荐。整个流程只需要你写写SQL(做解析),弄弄配置就搞定。
2470 0
|
1月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
下一篇
无影云桌面