COMP9321 – Data Services Engineering- Week 10

Search & Recommend system

  • 搜索系统是给定一个query,预测query和doc的相关性进行排序。在召回上,搜索的召回目标很明确,就是和query相关的doc。
  • 推荐系统是给定一个user,预测doc被user点击率的概率进行排序。user相比于query通常表达的维度更广,包含的信息更多,包括兴趣的建模。在召回上,推荐除了保正相关外,还需要保证召回的多样性,还需要有些合人惊喜的召回(避免看什么推什么)。
  • 召回 是指对大量物品做初选,为每一个用户形成个性化候选集

搜索引擎需要用户主动提供准确的关键词来寻找信息,当用户无法找到准确描述自己需求的关词时,搜索引擎就无能为力了。 推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。 搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。

长尾理论

80/20法则

传统的80/20原则(80%的销售额来自于20%的热门品牌)这些不热门的商品数量极其庞大,因此这些长尾商品的总销售额将是一个不可小觑的数字。主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求。因此,如果要通过发掘长尾提高销售额,就必须充分研究用户的兴趣,而这正是个性化推荐系统主要解决的问题。

推荐范式

paradigm范式,具备某种相似性质的对象集合

  • 用户维度
  • 标的物维度
  • 用户与标的物交叉维度

RS paradigm

标的物维度

基于标的物维度的推荐是用户在访问标的物详情页时,或者访问后退出时,关联一批相似或者相关的标的物列表。比如网易新闻视频模块当你点击播放一个视频超过几秒后就会在该视频下面展示一行相关视频。

交叉维度

笛卡尔积范式是每个用户跟每个标的物的组合产生的推荐结果都不相同。比如不同用户在同一个视频的详情页看到的推荐结果都不一样。该范式跟标的物式类似,只不过不同用户在同一个节目得到的关联节目不一样,会结合用户的兴趣给出更匹配用户兴趣的关联节目。

用户维度

非个性化推荐

非个性化是每个用户看到的推荐内容都完全一样。例如网易云音乐的排行榜推荐,根据各个维度计算各类榜单。

群组个性化

群组个性化就是将相同特征的用户聚合成一组,同一组用户在某些特征上具备相似性,我们为这一组用户推荐完全一样的内容。

完全个性化

完全个性化就是为每个用户推荐的内容都不一样,是根据用户的行为及兴趣来为用户做推荐,是最常用的一种推荐形式。大多数时候我们所说的推荐就是指这种形式的推荐。比如淘宝首页的猜你喜欢推荐,这个推荐就是完全个性化的每个人推荐的都不一样。

Collaborative Filtering (CF)

协同过滤

协同过滤利用了两个非常朴素的自然哲学思想:群体的智慧”和”相似的物体具备相似的性质”。具体来说,协同过滤的思路是通过群体的行为来找到某种相似性用户之间的相似性或者标的物之间的相似性,通过该相似性来为用户做决策和推荐。

物以类聚– 基于物品的协同过滤算法 Item-based Collaborative filtering

计算出每个标的物最相似的标的物列表,我们就可以为用户推荐用户喜欢的标的物相似的标的物,这就是基于物品的协同过滤。–“给用户推荐与他之前喜欢的物品相似的物品。

人以群分–基于用户的协同过滤算法 User-based KNN Collaborative filtering

就是我们可以将与该用户相似的用户喜欢过的标的物(而该用户未曾操作过)的标的物推荐给该用户,这就是基于用户的协同过滤。–“给用户推荐与他兴趣相似的用户喜欢的物品。”

协同过滤的局限性

流行度僵差 Tend to recommend more of the popular

热门商品的推荐频率甚至超过了它们的受欢迎程度。长尾现象在推荐数据中很常见:在大多数情况下,一小部分受迎的商品占了大多数用户交互的比例。当对这些长尾数据进行训练时,该模型通常会给热门项目的评分高于其理想值,而只是简单地将不受欢迎的商品预测为负值。因此,推荐热门门商品的频率甚至比数据集中显示的原始受欢迎程度还要高。

曝光偏差 popularity bias

难以推荐给有独特品味的人,曝光偏差的发生是因为用户只接触到特定项目的一部分,因此未观察到的交互并不总是代表消极偏好。特殊地,用和商品之间未被观察到的交互可以月因于两大原因:

  1. 商品与用户兴趣不匹配
  2. 用户不知道该商品。

冷后动问题 Slot at query time/ cold start problem

需要足够多的其他用户才能找到相似用户,新物品需要足够的评分

因为协同过滤依赖用户的历史数据,面对新的用户或者新的物品,在开始的时候没有数据或数据较少时,协同过滤算法无法做出推荐。

Content-based Recommendation

基于内容的协同过滤

利用用户兴趣和item之间的相似度,基于Data内容上的相似性进行推荐,比如电影的导演、主演等。

基于内容的过滤 vs 协作过滤

  • 协同过滤推荐系统不需要任何有关商品的信息
  • 基于内容的推荐系统需要有关item(content)和user(preference)的信息

Task

  • 了解用户偏好
  • 查找/推荐与用户偏好‘相似’items

Features

  • 最常用于推荐文本文档
  • 可以通过一组关键字(属性)来描述每个项目

根据关键词重叠来计算未见过的项目的相似度

局限性

物品的特征抽取一般很难:如果系统中的物品是文档,那么我们现在可以比较容易地使用信息检索里的方法来”比较精确地”抽取出物品的特征。但很多情况下我门很难从物品中抽取出准确刻画物品的特征,比如电影推荐中物品是电影,社会化网络推荐中物品是人,这些物品属性都不好抽。

无法挖掘出用户的潜在兴趣:既然基于内容推荐只做赖于用户过去对某些物品的喜好,它产生的推荐也都会和用户过去喜欢的物品相似。如果一个人以前只看与推荐有关的文章,那基于内容推荐只会给他推荐更多与推荐相关的文章,它不会知道用户可能还喜欢数码。

无法为新用户产生推荐:新用户没有喜好历史,自然无法获得他的用户偏好,所以也就无法为他产生推荐了。当然,这个问题协同过滤推荐也有。

Deep learning

又有深度学习了,这里只讲了一章的内容,所以考点不会很深

Neural Network

节点(神经元) neutral unit

  • 定义:节点或神经元是神经网络的基本单元,模拟生物神经元的功能。
  • 功能:每个节点接收来自前一层节点的输入,进行加权和,加上何置, 然后通过激活丽数处理,输出到下一层。

层次 layer

  • 输入层input layer:网络的第一层,负责接收输入数据。
  • 隐藏层 hidden layer:位于输入层和输出层之间的一层或多层进行数据的加工和转换。
  • 输出层 output layer:网络的最后一层,输出最终的计算结果,如分类或回归的预测值。

输入层和输出层都只有一层,隐藏层的个数可以是任意的。神经网络的层数计算中不包括输入层,比方说一个神经网络中有2个隐藏层,我们就说这是一个3层的神经网络。

激活函数 Activation Function

增加非线性的因素,解决线性模型表达能力不足的缺陷

Sigmoid/Tanh/ReLu Function

前向传播

Forward Propagation 前向传播是将输入数据通过神经网络传递到输出的过程。单来说,就是将原始数据输入到神经网络中,经过一系列的计算和转换,最终得到输出结果的过程。在前向传播中,输入数据通过每一层神经元的处理,逐步传递到下一层,直到输出层得到最终的预测结果。

反向传播

Backward Propagation反向传播是神经网络中用于更新权重和偏差的过程。它的核心思想是通过计算损失西数对权重的梯度,来调整权重和偏差,以最小化损失医数并提高模型的预测准确性。反向传播的过程是在每次前向传播后进行的,以便根据须测结果和真实值之间的差异来调整权重和偏差。

通过不断迭代这个过程,我们可以逐渐减少损失函数并提高模型预测准确性

Neural Network type

前馈网络(FFN)

最适合当我们了解输出时

循环神经网络(RNN)

最适合时间序列数据。之所以他能处理序列数据,是因为在序列中前面的输入也会影响到后面的输出,相当于有了”记忆功能”

卷积神经网络(CNN)

最佳图像、文本、语音识别。能够将大数据量的图片有效的降维成小数据量并不影响结果)能够保留图片的特征,类似人类的视觉原理

局限性

模型复杂度:神经网络的模型复杂度较高,需要大量的参数和计算资源进行训练。对于一些小规模的数据集 过深的神经网络可能会导致过拟合问题。

训练难度:神经网络的训练需要大量的数据和计算资源,而且训练过程容易受到初始参数和训练算法的影响,需要精心设计。 与传统的机器学习算法相比,神经网络通常需要更多的数据至少需要数千甚至数百万个标记样本。

评论

发表回复

目录