当前位置: 首页 > news >正文

Recommender System复习(考试向)

Recommender System Review

  • Overview
  • Collaborative Filtering
    • 基于用户的CF(User CF)
    • 基于物品的CF(Item CF)
    • Similarity Calculation
    • Bias in CF
  • Evaluation of Recommender System
  • Factorization Machines
  • Latent factor model
    • LFM算法概述
    • LFM算法原理介绍
    • LFM算法应用场景

Overview

在这里插入图片描述

Collaborative Filtering

协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤(Collaborative Filtering, 简称CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。

要实现协同过滤,需要一下几个步骤

  • 收集用户偏好——如何收集决定推荐系统效果
  • 找到相似的用户或物品(Pearson Correlation Coefficient)
  • 计算推荐(Collaborative Filtering)

基于用户的CF(User CF)

基于用户的CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图2 给出了一个例子,对于用户A,根据用户的历史偏好,这里只计算得到一个邻居-用户C,然后将用户C 喜欢的物品D 推荐给用户A。

基于物品的CF(Item CF)

基于物品的CF 的原理和基于用户的CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图3 给出了一个例子,对于物品A,根据所有用户的历史偏好,喜欢物品A 的用户都喜欢物品C,得出物品A 和物品C 比较相似,而用户C 喜欢物品A,那么可以推断出用户C 可能也喜欢物品C。

Similarity Calculation

定义:Pearson correlation coefficient是一种衡量变量之间线性关系强弱的统计量。它的取值范围在-1到1之间,可以反映出两个变量之间的相关程度。如果相关系数接近1,表明两个变量之间存在完全正向的线性关系;如果接近-1,则说明存在完全负向的线性关系;如果接近0,则表示两个变量之间没有线性关系。

Pearson correlation coefficient的计算方法如下:
r = Cov(X, Y) / (σX * σY)

其中,Cov(X, Y)表示变量X和Y的协方差,σX和σY分别表示变量X和Y的标准差。通过计算协方差和标准差,我们可以得到两个变量之间的相关系数。

在这里插入图片描述

在这里插入图片描述

Bias in CF

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Evaluation of Recommender System

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Factorization Machines

背景
FM的适用对象是稀疏数据。

任何研究过点击预测问题或推荐系统的人都会面临类似的情况:由于数据集非常庞大,因此使用有限的计算资源对这些数据集进行预测变得非常困难。

但是,在大多数情况下,这些数据集是稀疏的(每个训练示例只有少数变量为非零)。在数据稀疏的情况下,满足求解参数都不为0的情况很少,所以很难训练。然而因子分解机有助于从从现有的原始数据中,提取最重要的潜在的或隐藏的特征。

一般来说,可以使用低维密集矩阵来表示对象和预测器之间关系,而分解有助于与前者建立大致相同的关联。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Latent factor model

LFM算法概述

对于基于邻域的机器学习算法来说,如果要给一个用户推荐商品,那么有两种方式。一种是基于物品的,另一种是基于用户的。基于物品的是,从该用户之前的购买商品中,推荐给他相似的商品。基于用户的是,找出于该用户相似的用户,然后推荐给他相似用户购买的商品。

但是,推荐系统除了这两种之外,还有其他的方式。例如如果知道该用户的兴趣分类,可以给他推荐该类别的商品。

为了实现这一功能,我们需要根据用户的行为数据得到用户对于不同分类的兴趣,以及不同商品的类别归属。

LFM算法原理介绍

首先是数据的处理,由于使用的是隐性数据集,只有正样本,例如用户点击了某件商品,没有负样本。数据处理主要是选出数据集的负样本。

负样本的选取策略主要有以下要点:
(1)正负样本要均衡,基本保证正负样本的比例1:1
(2)负样本需要选择用户没有行为的热门商品。

在这里插入图片描述

LFM算法应用场景

根据上述内容,可以得到相应的模型输出,即两个潜在因子矩阵。其中,潜在因子的维度是之前设定的,可以理解为你认为有哪些特征可能会影响user对item的喜好程度。

那么得到模型输出后,如何应用?
(1)计算用户toplike:对于与用户没有被展示的item,可以计算出一个用户对item的倾向性得分,取top即toplike,后直接完成用户对item的喜爱度列表,写入离线即可完成对在线的推荐。
(2)计算item的topsim:得到item的向量可以用很多表示距离的公式包括cos等等,计算出每一个item的相似度矩阵,该矩阵可以用于线上推荐。当用户点击item之后,给其推荐与该item的topsim item。
(3)计算item的topic:根据得到的item向量,可以用聚类的方法,如K-means等等,取出一些隐含的类别。也就是一些隐含的topic能将item分成不同的簇,推荐时按簇推荐。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/216493.html

相关文章:

  • SpringBoot绑定配置文件中变量的四种方式-解析
  • linux 安装 elasticsearch 全教程
  • 更快更准 | YOLOv3算法超详细解析(包括诞生背景+论文解析+技术原理等)
  • 【ChatGPT】教我 Flyweight(享元) 模式
  • 双十一越来越早,公域电商何去何从——深度解析
  • 区块链中的 “不可能三角,技术性ppt突出关键技术点,数据交易-安全问题
  • [Docker]五.Docker中Dockerfile详解
  • react使用react-sortable-hoc实现拖拽
  • 实习日常的点点滴滴记录(Spring Boot的核心注解)------慢慢积累,厚积薄发(要学的东西还好多,加油!))(知识和实践的结合)
  • 第 04 章_逻辑架构
  • 免费API接口资源推荐
  • LuatOS-SOC接口文档(air780E)--miniz - 简易zlib压缩
  • 一整套智慧工地源码,劳务实名制、施工安全管理、绿色施工、危大工程设备监测、视频AI识别功能
  • 世微 DC-DC平均电流双路降压恒流驱动器 LED车灯AP2813
  • ES6~ES13新特性(一)
  • 基于 Amazon EC2 和 Amazon Systems Manager Session Manager 的堡垒机的设计和自动化实现
  • RFID管理方案有效提升电力物资管理效率与资产安全
  • leetcode:389. 找不同
  • c 函数调用过程中,调用函数的栈帧一旦被修改,被调用函数则无法正确返回。( X )
  • 专为个人打造专注工作的便签APP工具推荐哪个
  • 代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
  • Windows PowerShell 和 Linux BashShell 极简对比
  • 校验验证码是否过期(定时刷新验证码)
  • windows idea本地执行spark sql避坑
  • 在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程
  • 智能客服系统应用什么技术?
  • 亚马逊、美客多卖家测评:如何建立养号团队实现运营化式测评?
  • 苹果IOS系统webglcontextlost问题-解决方案
  • 供应链ERP之合同:创建、修订与模板
  • MySQL第二讲·表的创建与修改