Youtube Recommendation
Youtube Recommendation

推荐系统二三事

推荐系统, 在目前信息大爆炸的年代,早就成了一个耳熟能详的词语,对于目前用短视频APP的用户,应该不会感到陌生,在抖音,快手,YouTube,FaceBook,Amazon ,Tmall 等等各种社交或者购物网站,都已经看到这样的现象:用户浏览了几个视频或者商品,系统会自动推荐很多相关或者类似的视频或者商品。 本文皆在概述当前主流的推荐系统算法,帮助数据科学家根据企业的限制条件和需求,选择最合适的算法。

下面就總結一下目前市面存在的推薦算法

Collaborative filtering(協同過濾)-CF

協同過濾是推薦系統中比較常見(most commonly) 的推薦系統算法之一。 即使是初學的數據專家也可以利用它構建一個個性化的電影推薦系統,最常見的比如:一個簡歷項目。

當我們想要給一個用戶推薦某些內容的時候,最常見的做法是:找用戶的興趣相似的用戶,分析他們的行為,然後推薦給用戶類似的內容。 或者我們也可以查看與該用戶購買過的商品,然後推薦類似的商品。

基本邏輯就是:

  1. 你喜歡的,也許和你相似的人也喜歡
  2. 如果你喜歡電影A,你也可能喜歡電影B,因為很多人喜歡電影A的時候,也喜歡電影B

These are two basic approaches in Collaborative Filtering :user-based collaborative filtering and item-based collaborative filtering ,respectively.

在这两种情况下,推荐引擎的工作过程通常包括两个步骤:

  1. 找出数据库中与目标用户或物品相似的其他用户或物品;
  2. 根据这些更相似(most similar)的用户或物品的“总权重”,评估其对某个产品的评分,并据此预测目标用户可能会给出的评分。

那麼在算法中,我們如何理解“更相似(Most similar)”這個意思?

我们拥有每个用户的一个偏好向量,矩阵R中的一行,用户的对某个产品的评分向量,矩阵R中的列。

如下表格:

Matrix ‘s user and Product or item.

首先,我们只保留在两个向量中都已知评分的元素。

例如,如果我们想比较 BillJane 的相似度,我们可以指出:Bill 还没有看过《泰坦尼克号》,而 Jane 目前还没看过《蝙蝠侠》,所以我们只能通过他们**共同看过的《星球大战》**来衡量相似度。

话说回来,谁居然没看过《星球大战》呢,对吧?🙂

市面上用来评估相似度的技术-Cosine.


我们通过计算用户或物品向量之间的相似度或相关性,并在最后一步根据相似度的权重,采用加权算术平均值来填补评分矩阵中缺失的单元格(空值)。

推荐系统中的矩阵分解(The Matrix decomposition of recommendation)

接下来的一个有趣方法是基于矩阵分解的推荐算法。这是一种非常优雅的推荐方法,因为通常在处理矩阵分解时,我们并不会特别关注结果矩阵中的列和行到底代表什么

但在这个推荐引擎中,我们可以清楚地看到:

  • u:表示第 i 个用户的兴趣向量
  • v:表示第 j 部电影的属性(参数)向量

因此,我们可以用向量内积(点积)来近似表示用户 i 对电影 j 的评分 x

我们通过已知的评分数据来构建这些用户向量 u和电影向量v,并使用它们来预测未知评分

例如,经过矩阵分解后,我们得到了 Ted 的向量为 (1.4, 0.9),电影 A 的向量为 (1.4, 0.8)。

那么我们就可以通过计算这两个向量的点积(dot product),来还原出 Ted 对电影 A 的预测评分。

User’s u and item’s v

Clustering-聚类

Clustering 聚类,是一种无监督学习技术,是内容推荐的算法之一,用于将用户和物品分组,从而提高推荐的准确性和效率。

前面介绍的推荐算法相对较为简单,更适合用于小型系统。到目前为止,我们一直将推荐问题视为监督式机器学习任务来处理。现在,是时候引入无监督学习方法来解决这个问题了。

设想我们正在构建一个大型推荐系统,这时候仅靠协同过滤(Collaborative Filtering)或矩阵分解(Matrix Decomposition)已经无法高效处理全部数据。

此时,最自然的想法就是引入 聚类(Clustering)方法。

At the start of a business,there is a lack of previous user’s grades,and clustering would be the best approach.

单独使用聚类算法其实效果是有限的。

因为实际上,它所做的只是:识别用户群体,然后对同一群体中的所有用户推荐相同的商品或内容。

换句话说,每个群体内的用户得到的是一套“统一”的推荐,个性化程度较低。

当我们拥有足够多的数据时,更好的做法是将聚类作为协同过滤算法的预处理步骤

用于缩小潜在邻居的搜索空间,从而提高协同过滤的效率和精度。

此外,聚类的引入还可以在更复杂的推荐系统中提升整体性能

在这种方法中,每个聚类(用户群)都会被分配一组“典型偏好”

这些偏好是基于该群体内用户的整体行为提炼而来的。

之后,该群体中的所有用户都会收到基于该群体偏好生成的推荐内容

深度学习推荐系统-Deep learning approach for recommendations

在过去的十年里,神经网络取得了巨大的发展飞跃。如今,它被广泛应用到各类场景中,并逐步取代传统的机器学习方法。接下来,我会为你讲解YouTube 如何运用深度学习方法来实现推荐系统的。

毫无疑问,为这样的平台设计推荐机制是一项极具有挑战性的任务。因为这个推荐系统挑战在于:

  1. 平台规模大(Big Scale)
  2. 内容库频繁的更新(Dynamic Corpus)
  3. 存在许多不可观测的外部因素(Unobservable external factors)

The YouTube Recommendation system algorithms consists of two neural networks .

  1. candidate generation
  2. for Ranking .
YouTube ‘s Deep Learning System Recommendations

用户的历史行为:点击、观看、搜索、点赞

以用户历史行为作为输入,候选词生成网络会显著缩小候选词视频的数量,以庞大的内容库中筛选出一组与用户相关的视频内容高。所生成的候选项是对该用户最相关的内容,而我们正在预测该用户对这些内容的评分或偏好。该网络的目标,通过协同过滤的方式实现初步的个性化推荐。


在此阶段,我们已经筛选出一小部分与用户相似的候选视频。接下来的目标是更细致地分析这些候选项,以便做出最优决策。这个任务由排序网络(ranking network)完成,它会根据一个目标函数为每个视频打分。该函数结合了描述视频的数据和用户行为信息。得分最高的视频将按照分数排序,呈现给用户。

Ranking network.

From Youtube Recommendation-deep Neural networks.


通过采用两阶段的方法,我们可以在极为庞大的视频库中进行推荐,同时确保最终选出的少量视频对用户而言是高度个性化且具有吸引力的。该设计还使我们能够将来自其他来源生成的候选视频融合在一起。


推荐任务被建模为一个极端多分类(extreme multiclass classification)问题,即在给定用户(U)和上下文(C)的条件下,从视频库(V)中数百万个视频类别(i)中准确预测用户在某一时刻 t 所观看的特定视频 w_t。


在构建个性化推荐系统之前需要注意的重要事项:

  1. 如果你拥有一个大型数据库,并希望从中进行在线推荐,最有效的方式是将该问题划分为两个子问题:a.选择Top-N候选;b.排名评分。
  2. 那么,如何评估模型的推荐质量呢?除了使用标准的质量评估指标外,推荐系统还常用一些特定的评估指标,如:Recall@k(召回率)Precision@k(准确率)Average Recall@k(平均召回率)Average Precision@k(平均准确率)。强烈建议查阅推荐系统中关于这些评估指标的详细说明。
  3. 如果你采用分类算法来解决推荐问题,需要考虑负样本的生成问题。例如,如果用户购买了某个被推荐的商品,这可以作为一个正样本,但不应简单地将其未购买的其他推荐项视为负样本。
  4. 关注算法的线上评分(online-score)与线下评分(offline-score)。仅依赖历史数据训练模型,可能会导致“原始”或过时的推荐结果,因为此类算法无法捕捉到用户的新趋势与偏好。

Related Link

  1. Deep Neural Networks for YouTube Recommendations.
  2. 9 Must-Have Datasets for Investigating Recommender Systems
  3. Recommender Systems: New Comprehensive Textbook by Charu Aggarwal
  4. Netflix Prize Analyzed: Movie Ratings and Recommender Systems

More On This Mac

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *