【干货】推荐系统中的机器学习算法与评估实战

【导读】推荐系统是机器学习技术在企业中最成功和最广泛的应用之一。本文作者结合MLMU演讲【1】的Slides,对推荐系统的算法、评估和冷启动解决方案做了详细的介绍。

作者 | Pavel Kordík

编译 | 专知

翻译 | Xiaowen

Machine Learning for Recommender systems — Part 1 (algorithms, evaluation and cold start)

引言



你可以在许多用户与项目交互的场景中应用推荐系统。

你可以在零售、视频点播或音乐流中找到大型推荐系统。为了开发和维护这样的系统,公司通常需要一群昂贵的数据科学家和工程师。这就是为什么即使是像BBC这样的大公司也决定外包其推荐服务的原因。

我们公司总部设在布拉格,开发了一个通用的自动化推荐引擎,能够适应多个领域的业务需求。我们的引擎已被世界各地的数百家企业使用。

令人惊讶的是,对于媒体的新闻或视频推荐、旅行和零售中的产品推荐或个性化推荐,都可以通过类似的机器学习算法来处理。此外,这些算法还可以在每次推荐请求中使用我们特有的查询语言进行调整。

算法



推荐系统中的机器学习算法通常分为两类:基于内容的推荐方法和协同过滤方法,尽管现代推荐者将这两种方法结合在一起。基于内容的方法是基于项目属性的相似性和协作方法,从交互中计算相似度。下面我们主要讨论协同过滤方法,使用户能够发现与过去查看过的项目不同的新内容。

协同过滤方法与交互矩阵一起工作,当用户提供项目的显式评分时,这种交互矩阵也可以称为评分矩阵。机器学习的任务是学习一个函数,它可以预测项目对每个用户的效果。矩阵通常很大,非常稀疏,而且大多数值都丢失了。

最简单的算法是计算行(用户)或列(项)的余弦或其他相关相似性,并推荐k个最近邻居喜欢的项。

基于矩阵因式分解的方法试图降低相互作用矩阵的维数,并将其近似为两个或多个具有k个潜在分量的小矩阵。

通过将相应的行和列相乘,你可以根据用户预测项目的评分。训练误差可以通过比较非空评分和预测评分来获得。还可以通过增加惩罚项,保持潜在向量的低值来调整训练损失。

最流行的训练算法是随机梯度下降算法,通过对p q矩阵的列和行进行梯度更新,使下降损失最小化。

或者,可以使用交替最小二乘法,通过一般最小二乘步骤迭代优化矩阵p和矩阵q。

关联规则也可用于推荐。经常在一起消费的项目与图形中的边缘相关联。你可以看到一组畅销书(几乎每个人都与之交互的紧密连接的项目)和小的、分离的内容集群。

从交互矩阵中挖掘出的规则至少应该有一些最小的支持度(support)和置信度(confidence)。支持度与发生频率有关,比如畅销书有很高的支持度。高置信度意味着规则不会经常被违反。

挖掘规则的规模不大,先验算法探索了可能的频繁项集的状态空间,消除了搜索空间中不频繁的分支。

频繁项集用于生成规则,这些规则产生推荐。

例如,我们展示了从捷克共和国的银行交易中提取的规则。节点(交互)是终端,边缘是频繁的交易。你可以根据过去的取款/付款推荐相关的银行终端。

惩罚受欢迎的项目和提取支持度较低的长尾规则会产生有趣的规则,使推荐多样化并有助于发现新的内容。

评分矩阵也可以用神经网络进行压缩,所谓的自编码器与矩阵分解非常相似,具有多个隐藏层和非线性的深层自编码器更强大,但更难训练。神经网络也可以用来预处理项属性,这样就可以将基于内容的方法和协同过滤方法结合起来。

上面给出了user-KNN Top-N推荐伪代码。

关联规则可以通过多种不同的算法来挖掘。这里我们给出了最佳规则推荐(Best-Rule recommendations)的伪代码。

上面给出了矩阵因式分解的伪代码。

在协同深度学习中,结合项目属性与自编码器同时训练矩阵因式分解,当然还有更多的算法可用于推荐,本文的下一部分介绍了一些基于深度学习和强化学习的方法。

推荐系统的评估



推荐者可以与历史数据上的经典机器学习模型(离线评估)进行类似的评估。

随机选择的测试用户之间的交互作用被交叉验证,以估计推荐者在未见的评级上的性能。

尽管许多研究表明,均方误差(RMES)对在线性能的估计能力较差,但它仍得到了广泛的应用。

更实用的离线评估措施是召回率(Recall)或准确率(Precision)评估正确推荐项目的百分比(不包括推荐项目或相关项目)。DCG还考虑到了假设项目的相关性对数下降时的位置。

我们可以使用对离线数据偏差不太敏感的附加度量。Catalog coverage以及Recall或Precision可以用于多目标优化。我们在所有算法中引入正则化参数,允许对它们的可塑性进行操作,并惩罚对流行项的推荐。

Recall和coverage都应该最大化,因此推动推荐系统向准确和多样化发展,使用户能够探索新的内容。

冷启动和基于内容的推荐



交互有时会丢失。冷启动产品或冷启动用户没有足够的交互来可靠地度量其交互相似性,因此协同过滤方法无法产生推荐。

当考虑到属性相似性时,冷启动问题可以减少。你可以将属性编码成二进制向量,并提供系统进行推荐。

基于交互相似性和属性相似性的项目聚类往往是对齐的。

你可以使用神经网络从属性相似性预测交互相似性,反之亦然。

有很多其他方法使我们能够减少冷启动问题,提高推荐质量。在第二部分中,我们将会讨论基于会话(session based)的推荐技术、深度推荐、集成算法和自动化,使我们能够在生产中运行和优化数千种不同的推荐算法。

参考链接:

1.https://www.meetup.com/Prague-Machine-Learning/events/250915214/

原文链接:

https://medium.com/recombee-blog/machine-learning-for-recommender-systems-part-1-algorithms-evaluation-and-cold-start-6f696683d0ed

-END-

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

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

相关文章

Google | 突破瓶颈,打造更强大的Transformer

一只小狐狸带你解锁炼丹术&NLP秘籍作者:苏剑林 (来自追一科技,人称“苏神”)前言《Attention is All You Need》一文发布后,基于Multi-Head Attention的Transformer模型开始流行起来,而去年发布的BERT模型更是将Transformer模…

阿里P8架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况,这些就会涉及到分…

斯坦福CS224n追剧计划【大结局】:NLP和深度学习的未来

一只小狐狸带你解锁炼丹术&NLP秘籍简介Stanford CS224n追剧计划是由夕小瑶的卖萌屋发起的开源开放NLP入门项目,借助github和微信群为大家提供同期小伙伴打卡讨论、内容沉淀、作业笔记和FAQ共享、连线斯坦福等服务。关于该计划的详请见这里 。1. Github项目地址h…

KubeVela 高可扩展的云原生应用平台与核心引擎

https://www.oschina.net/news/121015/kubevela-open-source 目录什么是 KubeVela ?KubeVela 解决了什么问题?1. 应用开发者眼中的 KubeVela一个 Appfile 示例2. 平台工程师眼中的 KubeVela3. KubeVela vs 经典 PaaS快速入门安装KubeVela1. 安装Kubernet…

打造工业级推荐系统(三):推荐系统的工程实现与架构优化

打造工业级推荐系统(三):推荐系统的工程实现与架构优化 gongyouliu 阅读数:4148 2019 年 4 月 26 日导读:个性化推荐系统,简单来说就是根据每个人的偏好推荐他喜欢的物品。互联网发展到现在,推荐…

阿里P8架构师谈:什么是缓存雪崩?服务器雪崩的场景与解决方案

什么是应用服务雪崩 雪崩问题 分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞&#xff0c…

论文浅尝 | 基于RNN与相似矩阵CNN的知识库问答

链接:https://arxiv.org/pdf/1804.03317.pdf概述当前大部分的 kbqa 方法为将 kb facts 与 question 映射到同一个向量空间上,然后计算相似性. 但是这样的做法会忽视掉两者间原本存在的单词级别的联系与交互. 所以本文提出一种网络结构 ARSMCNN,既利用到语义的信息, 又利用到单词…

斯坦福大学最甜网剧:知识图谱CS520面向大众开放啦!

一只小狐狸带你解锁炼丹术&NLP秘籍受本次疫情的影响,斯坦福大学的2020春季知识图谱课程——CS520面向公众线上开放啦!连课名都是爱你的形状!简单翻译一下重点:今年的CS520面向公众开放,大家可以通过远程视频软件Zo…

一篇文章详解大数据技术和应用场景

“ 本文作者 陈睿 ,优知学院创始人 新技术、新趋势往往趋之若鹜却又很难说的透彻,希望这篇文章能让大家完整的理解什么是大数据:该篇包含:大数据、技术、场景应用以及大数据的岗位。 什么是大数据 说起大数据,估计大家都觉得只…

对话周明:回望过去,展望未来,NLP有哪些发展趋势?

HomeBlog 对话周明:回望过去,展望未来,NLP有哪些发展趋势? 2019年2月15日 by 打不死的小强 AI 新闻 0 comments 周明博士是微软亚洲研究院副院长、国际计算语言学协会(ACL)主席、中国计算机学会理事、中…

阿里P8架构师谈:MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借…

研讨会 | 知识图谱助力图书馆知识管理与智慧服务研讨会

知识图谱是大数据时代重要的知识表示方式之一,也是人工智能技术的重要支撑,在智能检索、数据分析、自动问答、知识推荐、知识管理等领域有着广泛的应用前景,为知识创新管理带来了新机遇。由于知识图谱实现了对象识别、文本理解、关系推理、机…

高效利用无标注数据:自监督学习简述

一只小狐狸带你解锁 炼丹术&NLP 秘籍 作者:huyber来源:https://zhuanlan.zhihu.com/p/108906502BERT的大热让自监督学习成为了大家讨论的热点,但其实word2vec和自编码器也都属于自监督学习范畴。本文通过整理自监督学习的一系列工作&…

TI-RTOS实时操作系统开发之功耗测试

文章目录写在前面CCS(code composer studio)开启Energy Trace配置电池参数设置测量时间在电流曲线图处点击右键开始测量写在前面 要测试一个产品的电流功耗方式有很多种: 1、电流转电压,通过在供电回路中串联10Ω电阻&#xff0c…

程序员真的只能干到35岁?——我的35岁危机度过之道!

“ 在我还是25岁的时候,我和很多程序员一样,其实都有同样的担心,老了以后怎么办?写代码难道还能写到35岁? 难道我这一辈子就做一个程序员就完了吗?难道这条路就不能走出更多的张小龙(foxmail开…

研讨会 | 知识工程与问答技术研讨会 (KEQA2018)

人工智能的迅速发展将深刻改变人类社会,而知识工程是人工智能领域中的一个重要研究主题。随着机器学习、自然语言处理和语义网技术的快速发展,知识获取与处理的能力得到了极大的提升,包括自然语言问答技术在内的智能应用也备受关注。本次研讨…

统计学-自然语言处理

摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。常常应用在文本处理、人脸识别、…

在K40小破卡训练50层BERT Large的宝藏trick

前言 虽然TPU的显存令人羡慕,但是由于众所周知的原因,绝大部分人还是很难日常化使用的。英伟达又一直在挤牙膏,至今单卡的最大显存也仅仅到32G(参考V100、DGX-2)。然而,训练一个24层的BERT Large模型的时候…

领域应用 | 推荐算法不够精准?让知识图谱来解决

本文转载自公众号:微软研究院AI头条。 编者按:我们几乎每天都会接收到各种各样的推荐信息,从新闻、购物到吃饭、娱乐。个性化推荐系统作为一种信息过滤的重要手段,可以依据我们的习惯和爱好推荐合适的服务。但传统的推荐系统容易出…

BERT重计算:用22.5%的训练时间节省5倍的显存开销(附代码)

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:夕小瑶、rumor酱前言虽然TPU的显存令人羡慕,但是由于众所周知的原因,绝大部分人还是很难日常化使用的。英伟达又一直在挤牙膏,至今单卡的最大显存也仅仅到32G(参考V100、D…