0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

推荐系统的算法、评估和冷启动解决方案

MqC7_CAAI_1981 来源:未知 作者:胡薇 2018-06-12 15:20 次阅读

推荐系统是机器学习技术在企业中最成功和最广泛的应用之一。

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都应该最大化,因此推动推荐系统向准确和多样化发展,使用户能够探索新的内容。

冷启动和基于内容的推荐

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8134

    浏览量

    130580
  • 推荐系统
    +关注

    关注

    1

    文章

    42

    浏览量

    10032

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

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机复位和冷启动详细介绍

    单片机冷启动很简单,关电,再上电,正常复位后,就冷启动成功。单片机冷启动其实是一个技术术语,是指单片机从最原始状态启动运行。实现这一目标视不同的单片机内部结构而有所不同。
    的头像 发表于 02-12 13:38 1.9w次阅读
    单片机复位和<b class='flag-5'>冷启动</b>详细介绍

    Android热修复升级探索——代码修复冷启动方案

    的结构也不一样, 这两套方案对我们来说都是不适用。 所以我们需要另辟蹊径冷启动修复, 寻求一种既能无侵入打包又能做热部署模式下兜底补充的解决方案, 下面将对Dalvik虚拟机和Art虚拟机的
    发表于 12-07 15:02

    针对汽车冷启动优化的双开关降压升压单电感器设计方案

    描述这是一种经改进的 LM5118 双开关降压-升压单电感器评估模块 (EVM),已经过优化,可在汽车瞬变(如冷启动)期间正常运行。该模块旨在通过 3V 至 42V 的输入电压范围提供 15W(5V
    发表于 12-19 14:42

    请问STM32芯片怎样区分冷启动和热启动

    STM32芯片怎样区分冷启动和热启动,用的是KEIL MDK 4.22软件,在网上看到有些资料说 可以用软件设置一个区域,热启动的时候可以不清零这个区域,这样就可以判断这个区域的数据来确定是
    发表于 06-18 03:29

    协同过滤系统项目冷启动的混合推荐算法

    研究协同过滤推荐系统中的冷启动问题,运用基于内容预测的方法,对系统内未被用户评价过的项目进行评分预测,应用2种优化步骤,过滤掉预测不准确的用户的评分。在此基础上
    发表于 04-09 09:04 23次下载

    冷启动传感器开关特性测量系统

    汽车在低温启动控制用到的冷启动传感器的开关特性, 影响汽车发动机工作效果。本文论述采用微机,进行硬件扩充,用TURBO C 编程控制,实现了对冷启动传感器开关特性进行高精度测量
    发表于 07-01 10:31 14次下载

    冷启动电子镇流器电路图

    冷启动电子镇流器电路图
    发表于 06-11 11:06 1202次阅读
    <b class='flag-5'>冷启动</b>电子镇流器电路图

    STC12系列单片机冷启动、热启动

    stc的程序分引导区和程序区。引导区的代码主要负责ISP在线烧录。而stc的冷启动顺序就是先从引导区然后启动到程序区的。而热启动就是普通的51启动方式,只能从程序区头部开始重新执行。所
    的头像 发表于 02-12 13:51 1w次阅读
    STC12系列单片机<b class='flag-5'>冷启动</b>、热<b class='flag-5'>启动</b>

    DOS的冷启动和热启动有什么区别和方法说明

    DOS的启动又可分为冷启动和热启动冷启动是指切断电脑电源后重新开启电源启动的过程。热启动是指在
    发表于 08-14 17:32 0次下载
    DOS的<b class='flag-5'>冷启动</b>和热<b class='flag-5'>启动</b>有什么区别和方法说明

    推荐系统中候选生成和冷启动挑战的研究

    本研究针对推荐系统冷启动和候选生成两方面的问题,提出了一种基于深度学习的分类方法。
    的头像 发表于 07-30 10:22 2275次阅读

    西门子PLC_CPU的冷启动、暖启动、热启动的区别

    西门子PLC_CPU的冷启动、暖启动、热启动的区别介绍。
    发表于 04-30 10:33 10次下载

    STM32冷启动下载

    冷启动和热启动都是复位
    发表于 12-20 19:38 8次下载
    STM32<b class='flag-5'>冷启动</b>下载

    西门子PLC的暖启动冷启动、热启动有何区别

    西门子PLCCPU里的暖启动冷启动,热启动,它们之间到底有什么本质的区别?在实际应用中又有何真正的用处呢?
    发表于 11-04 10:16 2170次阅读

    华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

    领域面临的优化难题之一,华为云创新提出了 基于进程级快照的冷启动加速解决方案 ,致力于在用户几乎无感知的前提下,有效提升应用的冷启动性能; 特别的,Java 应用冷启动速度慢的问题尤
    的头像 发表于 01-19 16:15 649次阅读

    汽车电子应用中的冷启动

    电子发烧友网站提供《汽车电子应用中的冷启动.pdf》资料免费下载
    发表于 10-20 11:13 0次下载
    汽车电子应用中的<b class='flag-5'>冷启动</b>