专栏首页AI科技时讯推荐系列(一):什么是推荐?

推荐系列(一):什么是推荐?

推荐系列(一):什么是推荐?

什么是推荐?

YouTube如何知道你可能希望接下来要观看的视频?Google Play商店如何为你挑选应用?这些恰到好处的推荐是魔法吗?答案当然是不,上述情况下,基于机器学习(ML)的推荐模型都可以确定视频和应用与你喜欢的其他内容的相似程度,然后提供推荐。推荐通常会有两种形式:

  • 主页建议(home page recommendations);
  • 相关项目建议(related item recommendations);

二者存在一些差别,下面进行简单介绍:

主页推荐

主页推荐根据用户的已知兴趣对用户进行个性化推荐,每个用户都能看到不同的推荐;

如果你转到Google Play Apps主页,可能会看到如下内容:

相关项目推荐

顾名思义,相关项目是与特定项目类似的推荐。在Google Play应用示例中,查看数学相关APP的用户也可能会看到相关的应用,例如有关科学的APP。

为什么进行推荐?

推荐系统可帮助用户在大型语料库中找到引人注目的内容。例如,Google Play商店数据库有数百万个应用,而YouTube则有数十亿个视频。而且每天都会添加更多应用和视频。用户如何找到新的引人注目的新内容?无非了两种途径:搜索跟推荐。搜索的时候有些关键词没有构建索引,且搜索后还是会出来大量的视频,如何挑选又陷入困难。但是,推荐引擎可以推荐给用户可能没有想过自己要搜索的内容,且自己对其感兴趣。

你知道吗?

  • Google Play上40%的应用安装都来自推荐;
  • YouTube上60%的观看时间来自推荐;

术语

在深入介绍下面内容之前,应该了解一些术语:

物品(items, documents)

系统推荐的实体。对于Google Play商店,这些物品是要安装的应用。对于YouTube,这些物品是视频。

查询(query, context)

系统用于给出推荐的输入。查询可以是以下组合:

  • 用户信息 用户的ID;

用户之前与之互动的物品;

  • 附加内容

查询时间

用户的设备

Embedding

从离散集(在本例中为查询集或要推荐的数据集)到称为嵌入空间的向量空间的映射。许多推荐系统依赖于学习查询和项目的适当 嵌入表示。

推荐系统概述

推荐系统的一种常见架构包括以下组件:

  • 生成候选人(candidate generation)
  • 评分(scoring)
  • 重排序 (re-ranking)

生成候选人

在第一阶段,系统从潜在的巨大语料库开始,生成更小的候选子集。例如,YouTube中的候选生成器可将数十亿视频减少到数百或数千。考虑到语料库的巨大规模,模型需要快速评估查询。一个模型可能有多个候选生成器,每个候选生成器可以生成不同的候选子集。

评分

接下来,另一个模型对候选者进行评分和排名,以便选择要显示给用户的项目集(大约10个)。由于此模型评估相对较小的项子集,因此系统可以使用依赖于其他查询的更精确的模型。

重排序

最后,系统必须考虑最终排序的附加约束。例如,系统删除用户明确不喜欢的项目或提高更新内容的分数。重新排序还有助于确保多样性,新鲜度和公平性。

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:unclell

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图像搜索|高维空间最近邻逼近搜索算法

    上一次介绍图像搜索的基本原理,现在记录下使用的数据包的问题。 查询图片先进行特征提取,使用一个向量来表示,之后使用该向量与数据库中所有的商品向量进行计算相似度指...

    用户3578099
  • 深度学习任务面临非平衡数据问题?试试这个简单方法

    对于数据科学或机器学习研究者而言,当解决任何机器学习问题时,可能面临的最大问题之一就是训练数据不平衡的问题。本文将尝试使用图像分类问题来揭示训练数据中不平衡类别...

    用户3578099
  • 深度学习精要之CapsuleNets理论与实践(附Python代码)

    神经网络于上世纪50年代提出,直到最近十年里才得以发展迅速,正改变着我们世界的方方面面。从图像分类到自然语言处理,研究人员正在对不同领域建立深层神经网络模型并取...

    用户3578099
  • VB.NET 服务端源码

    Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports S...

    巴西_prince
  • Web网站通知系统设计

    写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(...

    wblearn
  • 设计网事读书笔记

    从三月份的时候开始读,利用零零星星的时间,终于读完了千年的《设计网事》这本书。虽名为书,实则是他最近几年的博文汇集而来。纵观此书,却与阅读单篇感觉很不一样。下面...

    大江小浪
  • linux用户和组管理常见命令总结

    第一列:用户组的组名 第二列:组密码(真正的密码存储在了gshadow中) 第三列:用户组组ID,用户组唯一标识 组ID为0的是超级用户组 组ID为1-...

    砸漏
  • AngularDart Material Design 按钮 顶

    将mixin用于颜色的优点是它们不会覆盖禁用的状态颜色。您也可以像使用普通DOM元素一样使用CSS设置按钮的样式,尽管这也会影响禁用状态:

    南郭先生
  • Android中传值Intent与Bundle的区别小结

    Bundle 翻译成中文的意思是“捆绑”,常用在Activity间传递参数,之前一开始并不太待见,原因是Intent本身就可以传递,Intent.putExtr...

    砸漏
  • 详解Flask前后端分离项目案例

    学习慕课课程,Flask前后端分离API后台接口的实现demo,前端可以接入小程序,暂时已经完成后台API基础架构,使用 postman 调试.git

    砸漏

扫码关注云+社区

领取腾讯云代金券