LR’s Laboratory
友情链接
往期整理
  •   历史归档
  •   文章分类
  •   文章标签
关于我
English
NotionNext
Article
14
Category
4
Tags
9
友情链接
往期整理
历史归档
文章分类
文章标签
关于我
English
推荐系统学习笔记
Post on: 2025-2-6
Last edited: 2025-2-18
Views
type
status
date
slug
summary
tags
category
icon
password
😀
推荐系统学习笔记
 
 

📝 传统推荐系统模型

notion image
  1. 协同过滤算法族
    1. 协同过滤算法从物品相似度和用户相似角度出发,协同过滤衍生出物品协同过滤(ItemCF)和用户协同过滤(UserCF)两种算法。协同过滤算法面临稀疏共现矩阵问题和模型泛化能力问题,为解决上述两个问题衍生出矩阵分解模型(MF)
  1. 逻辑回归模型族
    1. 与协同过滤仅利用用户和物品之间的显式或隐式反馈信息相比,逻辑回归能够利用和融合更多用户、物品以及上下文特征。从LR模型衍生出如增强了非线性能力的大规模分片线性模型(Large Scale Piece-wise Linear Model,LS-PLM)、FM模型、与多种不同模型配合使用后的组合模型等。
  1. 因子分解机模型族
    1. 因子分解机在逻辑回归的基础上,加入了二阶部分,使模型具备了特征组合的能力。更进一步,在因子分解机基础上发展出的域感知因子分解机FFM则通过加入特征域的概念,进一步加强了引子分解机特征交叉的能力。
  1. 组合模型
    1. 融合多个模型的优点,将不同模型组合使用:GBDT+LR

协同过滤推荐算法

  • 什么是协同过滤?
“协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。
notion image
协同过滤需要根据用户历史记录构建用户和物品的交互矩阵,如图所示,第一行为各个item,第一列为各个user。矩阵中每一行表示一个用户的历史信息,构成用户向量(正反馈1,负反馈-1,其他0);每一列构成一个物品的向量
  • 协同过滤方法怎样减少用户打分偏差的影响?
使用皮尔逊相关系数,而不是余弦相似度衡量相似。
相比余弦相似度,皮尔逊相关系数通过使用用户平均分对各独立评分进行修正,减少了用户评分偏置的影响。

UserCF 和 ItemCF 的区别

1. 技术实现

UserCF

基于用户相似的协同过滤方法,①找到与目标用户相似的前K个用户;② 根据相似用户对目标物品的反馈情况预测目标用户对目标物品的反馈结果。
缺点:
  • 互联网场景下,用户数>>物品数,根据用户相似度快速找出前k个相似用户较为困难,存储开销大({n^2}的速度增长)
  • 用户的历史数据向量往往比较稀疏。对于仅有几次购买或点击行为的用户,寻找相似用户困难;不适用于低频应用的推荐。

ItemCF

基于物品相似度的系统过滤方法,每个物品(列向量)对用户历史行为数据中的正反馈物品做相似度计算并求和,基于相似度分值对物品排序,根据排序结果进行推荐。

2. 应用场景

UserCF 基于用户相似度进行推荐,使其具备了更强的社交特性:用户能够得知与自己兴趣相似的人最近的喜好、及时某个兴趣点不在自己的已知兴趣范围内,也可以通过相似兴趣用户的推荐更新自己的推荐列表。适用场景:新闻推荐
ItemCF 基于对历史兴趣物品的相似度进行推荐,更适用于兴趣变化较为稳定的应用,比如电商场景、视频推荐等,用户观看的兴趣点往往比较稳定(真的吗?)【对于新用户怎么推荐呢?】

协同过滤的原理非常直观,具有很强的可解释性。但协同过滤并不具备较强的泛化能力:;协同过滤计算时为两两计算方式,只能利用用户和物品自己的信息进行相似度计算,使得协同过滤不具备繁华利用全局信息的能力。这样的计算方式就会导致热门的物品具有很强的头部效应,容易与大量物品产生相似性;而尾部的物品由于特征向量系数,很少与其他物品产生相似性,导致很少被推荐——处理稀疏向量能力不足。(对于协同过滤来说,如果两个用户没有相同的历史行为、两个物品没有相同的人购买,那么这两个用户和两个物品之间的相似度都将为0)【矩阵分解】
如下所示👇’
A B C D
a 1 0 0 1
b 1 1 0 0
c 1 0 0 0
d 0 0 0 0
e 1 1 0 0
f 1 0 1 0
A :[1,1,1,0,1,1]
B :[0,1,0,0,1,0]
C :[0,0,0,0,0,1]
D :[1,0,0,0,0,0]
A-B: 2/根号10 A-C、A-D:1/根号5
D-B:0 C-D:0
此外,协同过滤对于物品相似度的计算是基于用户反馈得到的,并不是根据物品本身的属性等信息,这种计算方式也造成了其他有效信息的遗漏(用户、物品的其他特征;上下文特征)【逻辑回归】

矩阵分解算法

在协同过滤算法中“共现矩阵”的基础上,加入了隐向量的概念。为每个用户和item生成一个隐向量(而不是仅仅根据访问和被访问情况构建向量),将用户和item定位到隐向量所在的向量空间中,计算两者距离。
  • 矩阵分解算法生成的隐向量包含比协同过滤中向量更多的信息,那么隐向量是怎样生成的?又是怎样实现比起协同过滤的优越性的?
矩阵分解算法的隐向量是通过 分解 协同过滤共现矩阵 得到的。
假设有m个用户,n个物品,那么协同过滤生成的共现矩阵为A,维度为m*n。矩阵分解将共现矩阵A分解为用户矩阵和物品矩阵的乘积,其中用户矩阵U的维度为m*k,物品矩阵I的维度为k*n。其中,k为隐向量维度,k值越小,隐向量包含的信息越少,泛化性越高;k值越大,隐向量包含的信息越多,泛化性越小。用户u对物品i的预估评分为u向量和i向量点乘。
notion image
评分计算的物理意义:它衡量了用户隐向量和物品隐向量在各个维度上的相似程度的综合结果。通过学习合适的隐向量,使得点乘结果能够尽可能地逼近用户对物品的真实评分。
  • 怎样去求解用户矩阵和物品矩阵呢?
从数学角度: 对矩阵进行矩阵分解的主要方法包括以下三种:
  • 特征值分解
  • 奇异值分解
  • 梯度下降
注意不同方法的适用条件
特征值分解:仅适用于方阵,显然无法符合现实情况,不适用于分解用户-物品矩阵。
奇异值分解:
notion image
然而,奇异值分解要求原始共现矩阵为稠密矩阵,且计算复杂度大,同样不满足互联网推荐场景。
综上所述, 矩阵分解方法主要使用梯度下降法进行。
梯度下降法
目标函数:让 原始评分 与 用户向量和物品向量点积 的差值 尽量小—>分解矩阵且最大限度保存共现矩阵原始信息。目标函数如下:其中R为所有用户评分样本的集合,为减少过拟合现象,λ项为引入的正则化项。
分别对、求偏导,并利用求导结果沿着梯度的反方向更新参数。
  • 不同用户打分体系不同,存在主观偏差(3分是低还是高?严格用户:已经算高;宽容用户:算低| 不同物品的衡量标准也有区别),矩阵分解方法是怎样消除用户和物品打分的偏差的?
常用方法:在矩阵分解时,加入偏差项:
分别是u用户评分和i物品获得评分的平均值。
加入偏差项后,矩阵分解的目标函数也相应发生变化:
  • 矩阵分解方法的优缺点?
优点:
  • 泛化能力强
  • 空间复杂度低:不需要存储和维护协同过滤模型服务阶段的用户相似性/物品相似性矩阵,只需要存储隐向量。空间复杂度从到
  • 更好的扩展性和灵活性。隐向量与embedding类似,很便于与其他特征进行组合拼接,应用到深度学习。
局限性:同样无法引入用户、物品、上下文信息;同样在缺乏历史信息时无法进行有效的推荐。
 

协同过滤基于点击相似,根据相似度列举前几名推荐物品;矩阵分解引入隐向量去使得用户和物品隐向量乘积作为推荐分数,通过梯度下降使得该分数逼近实际结果。 在具体推荐场景中,两类方法都需要计算用户、物品向量,且没有考虑特征信息。
下面的方法,则是对每个用户,训练一个推荐函数,推荐函数基于物品的各项特征生成推荐分值,点击情况作为label,通过梯度下降使得该分数逼近实际结果,没有计算用户、物品向量而是计算特征向量。

 

逻辑回归法

将用户、物品的各项特征转化为数值型向量,基于目标任务,使用带标签样本训练模型,使得模型在接收特征向量后,能够输出一个概率分数,这个概率分数将表达对应用户和物品目标任务达成的概率。训练方式: 梯度下降。
(对于每个用户,计算各物品的推荐率)
notion image
优点:1. 数值型向量的思想类似于嵌入编码,能够很好地引入其他特征。
2. 可解释性强:本质是特征加权
缺点:表达能力不强,无法进行特征交叉、特征筛选等。——仅利用单一特征而非交叉特征进行判断
举例:
视频
性别
点击(次)
曝光(次)
点击率
视频A
男
8
530
1.51%
视频B
男
51
1520
3.36%
视频A
女
201
2510
8.01%
视频B
女
92
1010
9.11%
视频A
-
209
3040
6.88%
视频B
-
143
2530
5.65%
根据上表数据,不难看出,视频B对男性用户和女性用户点击率均高于视频A,应优先推荐;但在不考虑性别特征仅考虑总点击率的情况下,视频B点击率低于视频A,逻辑回归方法不具备进行特征交叉生成高危组和特征的能力,会根据后一种情况做出错误判断。

引入特征交叉

对于逻辑回归方法的缺陷,手工进行特征交叉是一种解决方案,但在实际应用中工作量较大。因此,逐步发展出引入特征交叉的模型。
  • 特征: feature值,比如:男、女、18岁等;
  • 特征域: 某个分类依据,比如: 性别、年龄等。
  1. POLY2模型
    1. POLY2对每两个特征组合学习交叉特征权重,若特征数量为n,则权重数量量级为。是一种暴力遍历的方法:对所有特征都进行两两组合建立高维特征,每一组高维特征均训练一个权重参数,其数学公式如下:
      然而,不是每一组特征都具备高价值,这样的遍历方式开销较大。此外,该方法面临数据稀疏性问题,假如训练样本中 与 没有同时出现过—无法训练得到权重。
  1. FM模型
    1. FM模型对每个特征训练一个隐权重向量,维度为k,特征交叉得到的高维特征权重则为 各交叉特征的权重积。本质上类似于矩阵分解法,但是将矩阵分解隐向量的思想进一步扩展到特征上去。
  1. FFM模型
    1. FM模型中对同一特征在不同交叉特征组中保持相同权重,包含信息不够丰富。FFM模型针对这一缺陷进行了改进,提出特征域的概念。
      对特征域也训练一个隐权重向量。 转化为, 为与特征1交叉的特征2所属的特征域隐向量。
      这样,交叉特征对于同一特征域下特征交叉时,隐权重向量一致(比如:点击率+男、点击率+女,男女同属性别特征域,在计算时相同);对于不同特征域下特征交叉时,隐权重向量不一致(比如:点击率+男、点击率+青年,男和青年分属性别和年龄特征域,在计算时 ,是不一样的)
      训练参数n*k*f个,训练复杂度为

但上述方法仅能做二阶特征交叉,对于更高阶特征交叉,面临梯度爆炸和计算复杂度过高的问题

处理高维特征组合和筛选

  1. GBDT+LR(梯度提升决策树+逻辑回归)
    1. 该模型分为独立的两个结构(GBDT和LR独立训练),GDBT用于训练生成特征向量,LR接收特征向量,针对目标任务输出分数。
      notion image
      GDBT
      notion image
      GDBT基本结构是将所有子树的结果相加,逼近实际预测值。在构建新子树时,以前面的训练结果与实际结果的残差作为目标,在此不赘述。
      GDBT构建特征向量:
    2. 将训练样本输入GDBT各子树,该样本会根据子树规则落入某个叶子节点,则该叶子节点计为1,其他节点记为0,将所有子树向量相连。
  1. LS-PLM(MLR) 大规模分段线性模型
    1. 在逻辑回归的基础上加入聚类思想。首先用聚类函数Π对样本进行分类(采用softmax函数对样本进行多分类),再用逻辑回归模型计算样本在分片中具体的点击率,两者相乘后求和
      MLR的思想其实类似于注意力机制。多分类:计算样本属于对应类别得分可以理解为该样本在不同方面的特征信息,理解为对不同方面的关注程度。
      m为超参数,表示分片数。
       
  • Author:NotionNext
  • URL:https://tangly1024.com/article/177df6db-5286-80ce-b72e-e988a0ccc0bf
  • Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
用户使用业务日志数据分析论文阅读系列之时序数据处理
Loading...
NotionNext
NotionNext
一个熟练使用智能设备的小猫🐱
Article
14
Category
4
Tags
9
Latest posts
检索-增强-生成-RAG
检索-增强-生成-RAG
2025-6-14
论文阅读系列之智能制造
论文阅读系列之智能制造
2025-3-4
论文阅读系列之时序数据处理
论文阅读系列之时序数据处理
2025-3-4
论文阅读系列之生存分析
论文阅读系列之生存分析
2025-3-3
OS与虚拟化安全
OS与虚拟化安全
2025-3-1
推荐系统学习笔记
推荐系统学习笔记
2025-2-18
Announcement
🎉欢迎来到我的博客🎉
-- 感谢您的支持 ---
👏期待下一次更新👏
操作手册
更新记录
联系我们
 
2023-2025 NotionNext.

LR’s Laboratory | 一个熟练使用智能设备的小猫🐱

Powered by NotionNext 4.7.0.