前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统提纲笔记

推荐系统提纲笔记

作者头像
小爷毛毛_卓寿杰
发布2022-09-30 14:26:22
3970
发布2022-09-30 14:26:22
举报
文章被收录于专栏:Soul Joy HubSoul Joy Hub

相关图文Xmind、PDF、视频讲解、代码,请参阅语雀地址:https://www.yuque.com/chudi/tzqav9/ny150b

推荐算法

推荐系统的传统匹配模型

基于 Collaborative Filtering 的方法

  • 分类
    • User-base CF:通过对用户喜欢的 item 进行分析,如果用户 a 和用户 b 喜欢过的 item 差不多,那么用户 a 和 b 是相似的。类似朋友推荐一样,可以将 b 喜欢过但是 a 没有看过的 item 推荐给 a。
    • Item-base CF: item A 和 item B 如果被差不多的人喜欢,认为 item A 和 item B 是相似的。用户如果喜欢 item A,那么给用户推荐 item B 大概率也是喜欢的。
    • Model-base CF: 也叫基于学习的方法,通过定义一个参数模型来描述用户和物品、用户和用户、物品和物品之间的关系,然后通过已有的用户-物品评分矩阵来优化求解得到参数。例如矩阵分解、隐语义模型 LFM 等。
  • 问题本质:矩阵的未知部分如何填充问题 。已知的值是用户已经交互过的 item,如何基于这些已知值填充矩阵剩下的未知值,也就是去预测用户没有交互过的 item 是矩阵填充要解决的问题。
    • SVD ( Singular Value Decomposition )
      • 步骤
        • 对 M 矩阵的 missing data 填充为0
        • 求解 SVD 问题,得到 U 矩阵和 V 矩阵
        • 利用 U 和 V 矩阵的低秩 k 维矩阵来估计
      • 缺点
        • Missing data 和 observe data 权重一样
        • 最小化过程没有正则化 ( 只有最小方差 ),容易产生过拟合。
    • MF 模型 ( 矩阵分解 )
      • 步骤
        • 将用户 u 对物品 i 的打分分解成用户的隐向量 vu,以及物品的隐向量 vi;
        • 用户 u 和物品 i 的向量点积 ( inner product ) 得到的 value,可以用来代表用户 u 对物品i的喜好程度,分数越高代表该 item 推荐给用户的概率就越大。同时,MF 模型引入了 L2 正则来解决过拟合问题。
    • FISM(Factored Item Similarity Model)
      • 用户表达不再是独立的隐向量,而是用用户喜欢过的所有 item 的累加求和得到作为 user 的表达;而 item 本身的隐向量 vi 是另一套表示,两者最终同样用向量内积表示。
    • SVD++
      • MF 模型可以看成是 user-based 的 CF 模型,直接将用户id映射成隐向量,而 FISM 模型可以看成是 item-based 的 CF 模型,将用户交户过的 item 的集合映射成隐向量。SVD++ 方法正是这两者的结合:每个用户表达分成两个部分,左边 vu 表示用户 id 映射的隐向量 ( user-based CF 思想 ),右边是用户交互过的 item 集合的求和 ( item-based CF 思想 )。User 和 item 的相似度还是用向量点击来表达。
  • 缺点
    • 只是利用了 user 和 item 的交互信息 ( rating data ),而对于大量的 side information 信息没有利用到。例如 user 本身的信息,如年龄,性别、职业;item 本身的 side information,如分类,描述,图文信息;以及 context 上下文信息,如位置,时间,天气等。

Generic feature-based 的方法

问题本质:如何利用side information 信息,去构造 feature-based 的model

LR

  • 公式:
  • 缺点
    • 未考虑特征进行交叉组合,高质量交叉特征获取成本高
    • one-hot编码,具有高度稀疏性,带来维度灾难问题
  • 优点
    • 简单易上线
    • 可解释性强
  • 实现

GBDT

  • boosting tree
    • 按照boosting的思想,在算法的每一步,用一棵决策树去拟合当前学习器的残差,获得一个新的弱学习器。将这每一步的决策树组合起来,就得到了一个强学习器。
  • GBDT在本质上还是梯度下降法,每一步通过学习一棵拟合负梯度(也就是所谓“残差”)的树,来使损失函数逐渐减小
  • 用于分类
    • 二分类:对数几率表达+交叉熵
    • 多分类:softmax
  • 优点
    • 预测阶段的计算速度快,树与树之间可并行化计算。
    • 在分布稠密的数据集上,泛化能力和表达能力都很好。
    • 采用决策树作为弱分类器使得GBDT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理如归一化等。
  • 缺点
    • GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络。
    • 训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度
  • AdaBoost V.S. GBDT
    • 最主要的区别在于两者如何识别模型的问题。AdaBoost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。Gradient Boosting通过负梯度来识别问题,通过计算负梯度来改进模型。
  • GBDT V.S. LR
    • 从决策边界来说,线性回归的决策边界是一条直线,逻辑回归的决策边界根据是否使用核函数可以是一条直线或者曲线,而GBDT的决策边界可能是很多条线。
    • GBDT适合处理连续值特征,而LR,FM,FFM更加适合处理离散化特征。GBDT可以做到一定程度的特征组合,而且GBDT的特征组合是多次组合的,不仅仅是FM与FFM这样的二阶组合而已。同时,GBDT具备一定的特征选择能力(选择最优的特征进行分裂)
    • GBDT+LR:先使用GBDT对一些稠密的特征进行特征选择,得到的叶子节点,再拼接离散化特征放进去LR进行训练。在方案可以看成,利用GBDT替代人工实现连续值特征的离散化,而且同时在一定程度组合了特征,可以改善人工离散化中可能出现的边界问题,也减少了人工的工作量。
  • GBDT 与 XGBoost 区别
    • 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。
    • xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。正则项使学习出来的模型更加简单,防止过拟合。
    • 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。
    • 列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。
    • xgboost工具支持并行。boosting不是一种串行的结构吗?怎么并行的?注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

FM

  • 公式:
  • 求解
    • 梯度:
      • 参数量(k为v向量长度):
      • 复杂度:
  • 实现
  • 优点
    • FM可以在非常稀疏数据下进行参数估计,而其他模型如SVM却会出现问题
    • FM具有线性复杂性,可以在原始条件下进行优化,并且不依赖支持向量(如SVM)
    • FM是可以利用任何实值特征向量的一般预测器
  • 缺点
    • 耗资源
    • 可能引入无用特征
    • 未对特征进行分组
  • 和其他模型的关系
    • 假如只使用 userid 和 itemid,我们可以发现其实 FM 退化成加了 bias 的 MF 模型
    • 如果输入包含两个变量,① 用户交互过的 item 集合;② itemid 本身,那么,此时的 FM 又将退化成带 bias 的 FISM 模型
    • 如果再加上 userid 的隐向量表达,那么 FM 模型将退化成 SVD++ 模型

FFM

相较于FM模型,FFM模型引入了域(Field)的概念,可看做是对特征进行分组。例如,对于性别特征而言,通常有两种取值,对值进行one-hot编码之后性别特征会拆分为两个独立的特征。显然,这两个特征具有共同的性质:都属于性别。所以可以将这两个特征归在同一个Field下,即有相同的Field编号。不同域的特征之间,往往具有明显的差异性。对比FM中的做法,每个特征有且仅有一个隐向量,在对特征 xi与其他特征进行交叉时,始终使用同一个隐向量 Vi

公式

代码语言:javascript
复制
  - 其中 f为域(Field)映射函数,fi表示为xi特征对应的Field编号。将公式对比FM可以发现,二者之间的差异仅在于二阶交叉对应的隐向量。设数据集中Field的数目为 F,那么对于每个特征 xi拥有 F个对应的隐向量,分别应用于与不同域特征进行交叉

实现

优点

  • 在高维稀疏性数据集中表现很好
  • 相对FM模型精度更高,特征刻画更精细

缺点

  • 时间开销大。FFM时间复杂度为 O(kn^2) (F维度=n,每个特征的Field都不相同) ,FM时间复杂度为 O(kn) 。
  • 参数多容易过拟合,必须设置正则化方法,以及早停的训练策略。
  • FFM比较难应用于纯数值类型的数据集

超参数对于模型的影响

  • 隐向量维度k对于模型的影响不大
  • 正则化系数 λ 如果太大,容易导致模型欠拟合,反之,容易过拟合。
  • 全局学习率 η 也是超参数。如果 η 在一个较小的水平,则可以表现最佳。过大,容易导致过拟合。过小,容易欠拟合。

基于 translation 框架的方法:认为 user 和 item 在新的空间中映射的 vector 可以有 gap,这个 gap 用 relation vector 来表达,也就是让用户的向量加上 relation vector 的向量,尽可能和 item vector 接近

  • transRec 模型
    • ri 和 rj 表示的是用户上一个交互的 item i 和下一个交互的 item j,tu 为用户本身的向量表达
    • 在实际的推荐系统中,往往存在数据稀疏和用户冷启动问题,因此,作者将用户向量 tu 分解成了两个向量:这里 t 可以认为是全局向量,表示的是所有用户的平均行为,tu 表示用户 u 本身的 bias,例如对于冷启动用户,tu 可以设置为0,用全局用户的表达 t 作为冷启动。

基于 representation learning 的深度匹配模型

基于 Collaborative Filtering 的方法:分别学习用户的 representation 以及 item 的 representation,也就是 user 和 item 各自的 embedding 向量 ( 或者也叫做隐向量 ),然后通过定义 matching score 的函数,一般是简单的向量点击、或者 cosine 距离来得到两者的匹配分数。整个 representation learning 的框架

  • CF 模型 ( collaborative filtering )
    • 步骤
      • input layer:只有两个,分别是 userid ( one-hot ),itemid ( one-hot )
      • representation function:线性 embedding layer
      • matching function:向量内积 ( inner product )
  • Deep Matrix Factorization
    • 步骤
      • input layer:由两部分组组成,其中 user 由 user 交互过的 item 集合来表示,是个 multi-hot 的打分表示,如 [0 0 4 0 0 … 1 5 …],在矩阵中用行表示;item 也由交互过的 user 集合来表示,也是个 multi-hot 的表示,如 [5 0 0 3 … 1 3],在矩阵中用列表示。
      • representation function:Multi-Layer-Perceptron,也就是经典的全连接网络。
      • matching function:用 cosine 点击表示两个向量的匹配分数。
  • AutoRec 模型
    • Item-based AutoRec:n个item就有n个auto-encoder,输入与需拟合的是user对各个item评分,中间层便是该item的表示
  • CDAE模型(Collaborative Denoising Auto-Encoders)
    • 输入为用户id,加了噪音后的用户对各item的评分。如图的 input layer 节点,绿色节点表示每个用户交互过的 item,最下面的红色节点 user node 表示用户本身的偏好,可以认为是 userid 的表达。其中,中间蓝色的隐层节点作为用户表示,其中 Vu 为 input layer 中的 user node 的 representation,针对所有用户 id 会学习一个和 item 无关的 Vu 向量表达,可以认为是用户本身的 bias,例如有些用户打分本身比较严格,再好的 item 打分也不会太高;有些用户打分很宽松,只要 item 别太差都会给高分,加上 Vu 可以更好的刻画用户之间天然的 bias。
  • 总结
    • ❶ User 或者 item 要么由本身 id 表达,要么由其历史交互过的行为来表达
    • ❷ 用历史交互过的行为来作为 user 或者 item 的表达,比用 id 本身表达效果更好,但模型也变得更复杂
    • ❸ Auto-encoder 本质上等同于 MLP+MF,MLP 用全连接网络做 user 和 item 的 representation 表达
    • ❹ 所有训练数据仅用到 user-item 的交互信息,完全没有引入 user 和 item 的 side info 信息

基于 Collaborative Filtering+ side information 的方法:❶ representation learning:目的是学习到 user 和 item 各自的 representation ( 也叫 latent vector,或者 embedding )。❷ 特征表达:user 侧特征除了用户 id 本身 userid,可以加上其他 side info;item 侧特征除了物品 id 本身 itemid,还有其他文本特征、图文特征、视频帧特征等信息。❸ 模型表达:除了传统的 DNN,其他结构如 Auto-Encoder ( AE ),Denoise-Auto-Encoder ( DAE ),CNN,RNN 等。

  • DCF 模型 ( Deep Collaborative Filtering )
    • 和传统的 CF 表示学习不同,这里引入了用户侧特征X例如年龄、性别等;物品侧特征 Y 例如文本、标题、类目等;user 和 item 侧的特征各自通过一个 auto-encoder 来学习,而交互信息 R 矩阵依然做矩阵分解 U,V。
    • 损失函数优化
      • 需要最小化用户侧特征的 reconstruction 和 item 侧的 encoder 部分,以及交互矩阵和预测矩阵的平方差,还有加上 L2 正则。 其中 W1,表示的用户侧特征 X 在 auto-encoder 过程中的 encode 部分,也就是输入到隐层的重建,P1 表示的是用户特征到交互矩阵 R 的映射;而 W2 表示物品侧特征 Y 在 auto-encoder 过程中的 encode 部分。P2 表示的是物品特征到交互矩阵 R 的映射。可以看出用户侧和物品侧特征都由两项 error 组成,第一项衡量的是 input 和 corrupted input 构建的预估误差,需要保证 W1 和 W2 对于 corrupted 后的 input x 和 y 不能拟合太差;第二项表达的是映射后的隐层特征空间 W1X 和投射到 U 矩阵的误差不能太大。
  • DUIF 模型 ( Deep User and Image Feature Learning )
    • fi 表示原始图片特征,通过 CNN 网络提取的图片特征作为 item 的表达,然后用一个线性映射可以得到 item 的 embedding 表达。通过模型学到的 pu 作为用户的 representation,以及通过 CNN 提取的图片特征作为 item 的 representation,两者通过向量点积得到两者的匹配分数。
  • ACF 模型 ( Attentive Collaborative Filtering )
    • Sigir2017 提出的 Attention CF 方法,在传统的 CF 里引入了 attention 机制。这里的 attention 有两层意思,第一层 attention,认为用户历史交互过的 item 的权重是不一样的;另一个 attention 意思是,用户同一个 item 里到的视觉特征的权重也是不一样的
    • 损失函数优化
      • 其中 ui 是用户本身的 latent vector,vj 是物品 j 的 latent vector,pl 是物品 l 的辅助 latent vector。这里文章使用了 SVD++ 的方式,用户本身的表达引入了 a(i, l),代表的是用户 i 对其历史交互过的物品 l 的权重。
      • item attention
        • ui 是用户本身的 latent vector,vl 是物品 l 的 latent vector,pl 是物品 l 的辅助 latent vector;xl 是表示component-attention提到的从图文信息提取的特征 latent vector。用户最终的表达是自身 ui 的 latent vector,以及历史行为的 attention 加权的 representation 表示。
        • component attention
          • 其中第一个公式表示用户 i 对物品 l 第 m 个 component ( 例如图片特征中的局部区域特征,或者视频中不同帧的特征 ) 的权重;第二个公式 softmax 对 attention 权重归一化。
  • CKB 模型 ( Collaborative Knowledge Base Embedding )
    • CKB 分别在结构化信息、文本信息和视觉信息中提取 item 侧特征作为 item 的 representation
    • representation function
      • ① 结构化特征 struct embedding: transR
      • ② 文本特征 Textual embedding: stacked denoising auto-encoders ( S-DAE )
      • ③ 视觉特征 Visual embedding: stacked convolutional auto-encoders ( SCAE )

评价指标

评分预测指标:为了衡量RS结果的准确性,通常使用一些最常见的预测误差指标的计算

  • 平均绝对误差(Mean Absolute Error,MAE)
  • 标准平均绝对误差(NMAE)
  • 均方根误差(Root Mean Squared Error,RMSE)
  • 覆盖率:推荐系统能够推荐出来的物品占总物品的比例。覆盖率越高表明模型能够针对更多的item产生推荐,从而促进长尾效应的挖掘。

集合推荐指标:由于数据稀疏和冷启动问题的存在,有时直接预测用户对item的评分是困难的,为此有学者提出了Top-N推荐方法,即不预测用户对item的评分,而是根据user-item的隐式交互(例如点击、收藏)来生成一组用户最有可能喜欢的items集合推荐给用户

  • Precision
  • Recall
  • F1
  • ROC
  • AUC:为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。
  • Hit Rate (HR):#users是用户总数,而#hits是测试集中的item出现在Top-N推荐列表中的用户数量
  • Average Reciprocal Hit Rank (ARHR):一种加权版本的HR,它衡量一个item被推荐的强度

排名推荐指标

基于 match function learning 的深度匹配模型

CF-based 的深度模型

  • NCF:在得到 user vector 和 item vector 后,连接了MLP 网络后,最终拟合输出
  • NeuMF 模型 ( Neural Matrix Factorization ):相比NCF多了GMF部分。GMF layer:User 和 item 都通过 one-hot 编码得到稀疏的输入向量,然后通过一个 embedding 层映射为 user vector 和 item vector。这样就获得了 user 和 item 的隐向量,一般可以通过向量点积或者哈达马积 ( element-wide product ) 得到交互,不过在 NeuMF 中多连接了一个连接层
  • NNCF 模型 ( Neighbor-based NCF :NCF 方法,最大的不同在于输入除了 user 和 item 的信息,还各自引入了 user 和 item 各自的 neighbor 信息,输入层两侧的 nu 和 ni 是 user 和 item 各自的 neighbor 信息的输入
  • ONCF 模型 ( Outer-Product based NCF ):在 embedding layer 之后,模型引入了 interaction map 也就是特征交叉层,对于用户 u 的向量 pu 和物品 i 的向量 qi,引入两者的 outer-product。这里的hidden layer 用了 CNN

基于 translation 框架的方法

  • LRML 模型 ( Latent Relational Metric Learning ):通过引入 memory network 来学习度量距离
    • memory layer
      • ① 用户和物品 embedding 融合:Embedding 层得到的 user 和 item 向量 p 和 q 需要先经过交叉合成一个向量后输入到下一层
      • ② 用户-物品 key addressing:从第一步得到的向量 s 中,去和 memory 记忆网络模块中的各个 memory vector 挨个计算相似度,相似度可以用内积表达并做归一化。得到的 ai 代表的是当前用户-物品输入对 (p,q) 与 memory-network 中的第 i 个向量的相似度。
      • ③ 最终加权表达

feature-based 的深度模型

  • FNN:在FM上接入若干全连接层。为了加速模型的收敛,充分利用FM的特征表达能力,FNN采用了两阶段训练方式。首先,针对任务构建FM模型,完成模型参数的学习。然后,将FM的参数作为FNN底层参数的初始值。这种两阶段方式的应用,是为了将FM作为先验知识加入到模型中,防止因为数据稀疏带来的歧义造成模型参数偏差。
    • 优点
      • 引入DNN对特征进行更高阶组合,减少特征工程,能在一定程度上增强FM的学习能力。这种尝试为后续深度推荐模型的发展提供了新的思路
    • 缺点
      • 两阶段训练模式,在应用过程中不方便,且模型能力受限于FM表征能力的上限
      • FNN专注于高阶组合特征,但是却没有将低阶特征纳入模型
      • FM中进行特征组合,使用的是隐向量点积。将FM得到的隐向量移植到DNN中接入全连接层,全连接本质是将输入向量的所有元素进行加权求和,且不会对特征Field进行区分,也就是说FNN中高阶特征组合使用的是全部隐向量元素相加的方式。说到底,在理解特征组合的层面上FNN与FM是存在Gap的
      • 在神经网络的调参过程中,参数学习率是很重要的。况且FNN中底层参数是通过FM预训练而来,如果在进行反向传播更新参数的时候学习率过大,很容易将FM得到的信息抹去
    • 实现代码
  • PNN:PNN同样引入了DNN对低阶特征进行组合,但与FNN不同,PNN并没有单纯使用全连接层来对低阶特征进行组合,而是设计了Product层对特征进行更细致的交叉运算。在不考虑激活函数的前提下,使用全连接的方式对特征进行组合,等价于将所有特征进行加权求和。PNN的作者同样意识到了这个问题,认为“加法”操作并不足以捕获不同Field特征之间的相关性。
    • 优点
      • 引入Product层,不依赖预训练FM完成特征交叉
    • 缺点
      • 忽略了低阶特征
    • 代码实现
  • Wide&Deep:FNN与PNN更多得捕捉高阶交叉特征,而忽略了低阶特征。Wide & Deep分为Wide与Deep两部分,Wide是记忆(Memorization),负责处理低阶特征,一般为人工梳理,且具有一定业务背景的单特征,或者一些显而易见的组合特征。显然,光有Wide就是个LR模型,而Deep的加入是模型具有很好的泛化性能。Deep负责扩展(Generalization),通过Embedding+DNN学习高阶交叉特征,获得更好的泛化性能。
    • 优点
      • 简单有效。结构简单易于理解,效果优异。目前仍在工业界广泛使用,也证明了该模型的有效性。
      • 结构新颖。使用不同于以往的线性模型与DNN串行连接的方式,而将线性模型与DNN并行连接,同时考虑低阶与高阶特征,兼顾模型的Memorization与Generalization。
    • 缺点
      • Wide侧的特征工程仍无法避免。
    • 代码实现
  • DeepFM:DeepFM是基于Wide&Deep进行改进,Wide&Deep仍避免不了人工设计特征,DeepFM则将Wide模块替换为FM,FM模型可以抽取低阶特征,DNN可以抽取高阶特征。
    • 优点
      • 无需预训练FM
      • 避免了人工特征
      • 同时考虑低阶与高阶特征
    • 代码实现
  • DCN:由两部分构成,一部分还是基于DNN的Deep network,另一部分是Cross neteork。由此可见,DCN也是W&D的升级版,将Wide模块替换为Cross network
    • Cross network
    • 优点
      • 以少量的额外参数学习特征交互
      • 同时考虑低阶与高阶特征
    • 代码实现
  • xDeepFM:基于vector-wise的模式提出了新的显式交叉高阶特征的方法。与vector-wise概念相对应的是bit-wise,在最开始的FM模型当中,通过特征隐向量之间的点积来表征特征之间的交叉组合。特征交叉参与运算的最小单位为向量,且同一隐向量内的元素并不会有交叉乘积,这种方式称为vector-wise。
    • CIN
      • 根据前一层隐层的状态Xk 和原特征矩阵 X0,计算出一个中间结果 Zk+1,它是一个三维的张量
      • 在这个中间结果上,我们用Hk+1 个尺寸为 m*Hk 的卷积核生成下一层隐层的状态
      • 对CIN中每层进行sum pooling操作
    • 优点
      • 向量级特征交叉
    • 实现
  • AutoInt:通过 Multi-head Self-Attention 机制显示构造高阶特征, 有效提升了CTR预估的准确率
    • Self-Attention
    • 实现
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推荐算法
    • 推荐系统的传统匹配模型
      • 基于 Collaborative Filtering 的方法
      • Generic feature-based 的方法
      • 基于 translation 框架的方法:认为 user 和 item 在新的空间中映射的 vector 可以有 gap,这个 gap 用 relation vector 来表达,也就是让用户的向量加上 relation vector 的向量,尽可能和 item vector 接近
    • 基于 representation learning 的深度匹配模型
      • 基于 Collaborative Filtering 的方法:分别学习用户的 representation 以及 item 的 representation,也就是 user 和 item 各自的 embedding 向量 ( 或者也叫做隐向量 ),然后通过定义 matching score 的函数,一般是简单的向量点击、或者 cosine 距离来得到两者的匹配分数。整个 representation learning 的框架
      • 基于 Collaborative Filtering+ side information 的方法:❶ representation learning:目的是学习到 user 和 item 各自的 representation ( 也叫 latent vector,或者 embedding )。❷ 特征表达:user 侧特征除了用户 id 本身 userid,可以加上其他 side info;item 侧特征除了物品 id 本身 itemid,还有其他文本特征、图文特征、视频帧特征等信息。❸ 模型表达:除了传统的 DNN,其他结构如 Auto-Encoder ( AE ),Denoise-Auto-Encoder ( DAE ),CNN,RNN 等。
    • 评价指标
      • 评分预测指标:为了衡量RS结果的准确性,通常使用一些最常见的预测误差指标的计算
      • 集合推荐指标:由于数据稀疏和冷启动问题的存在,有时直接预测用户对item的评分是困难的,为此有学者提出了Top-N推荐方法,即不预测用户对item的评分,而是根据user-item的隐式交互(例如点击、收藏)来生成一组用户最有可能喜欢的items集合推荐给用户
      • 排名推荐指标
    • 基于 match function learning 的深度匹配模型
      • CF-based 的深度模型
      • 基于 translation 框架的方法
      • feature-based 的深度模型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档