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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

uncle_ll 2019-06-05 20:50:08 浏览231
展开阅读全文

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

什么是推荐?

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

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

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

主页推荐

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

如果你转到app商店主页,可能会看到如下内容:

image_20190605202956679

相关项目推荐

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

为什么进行推荐?

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

你知道吗?

  • 应用商店上40%的应用安装都来自推荐;
  • 视频客户端上60%的观看时间来自推荐;

术语

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

物品(items, documents)

系统推荐的实体。对于应用商店而言,这些物品是要安装的应用。对于视频客户端而言,这些物品是视频。

查询(query, context)

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

  • 用户信息

    • 用户的ID;
    • 用户之前与之互动的物品;
  • 附加内容

    • 查询时间
    • 用户的设备

Embedding

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

推荐系统概述

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

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

推荐系统的组成部分的图示,以及每个阶段的规模。

生成候选人

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

评分

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

重排序

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

网友评论

登录后评论
0/500
评论
uncle_ll
+ 关注