# Chap3 协同过滤方法进阶
# 形式化定义
代表用户 对物品 的真实评分(1~5),评分的时间为 ,表示从早期某一时间点到现在的天数 集合
表示用户 显式评价过的所有物品 集合
表示用户 隐式评价过的所有物品 集合
表示评价过物品 的用户集合 预测结果的评估使用均方根误差来度量
# 基准预测
# 公式
# 参数解释
表示所有评分的均值 表示用户 的评分与平均值的偏差 表示物品 的评分与平均值的偏差
# 参数寻找
最小二乘估计法
- 第二项为惩罚性质的正则项,避免过拟合,可通过随机梯度下降求解
简单起见,使用一种简单的参数估计方法,但准确度不高
参数
由交叉验证决定
# 矩阵分解模型
# SVD
# 原理
- 矩阵分解模型把用户和物品两方面的信息映射到 维的联合隐语义空间中
- 每个物品 与一个 维向量
关联,向量每维度的值的大小代表物品具备这些因子的程度(如搞笑因子,恐怖因子,无法解释的因子等等) - 每个用户 与一个 维向量
关联,向量每维度的值的大小代表用户对这些因子的偏好程度(如偏好搞笑0.5,偏好恐怖0.1) - 点积
反应了用户对物品的总体兴趣度
# 公式
# 约束条件
# 学习过程
选用合适的学习率
# SVD++
# 原理
- 在SVD的基础上考虑隐式反馈的信息
为隐藏的"评价了电影"中反映出的个人喜好偏置
# 公式
# 学习过程
选用合适的学习率
最好每次迭代后将
# timeSVD++
# 原理
- 假定用户偏置
,物品偏置 , 用户爱好 三者是随时间变化的 - 假定物品特征
是静态的
# 公式
# 比较
- SVD++ 在 SVD 上整合一种隐式反馈, timeSVD++进一步考虑了时间效应,提高了预测准确度
- 三种方法的预测准确度随着因子维度数目 的增加而提高
# 基于邻域的模型
# 相似度度量
使用基准预测:
由于基于更大用户支持的相关系数估计值更加可靠,基于贝叶斯角度出发,使用收缩值
来修正相关系数
# 基于相似度的插值
# 说明
- 本质是在基准预测器
的基础上作一点调整 - 流行,直观,可解释
# 公式
假如一个物品没有被某个特定用户评价过的有用的近邻,即
# 联合派生插值权重
比上述模型更加精确
计算近邻集合
的插值权重 ,近邻个数k取值范围一般为20~50
# 公式
通过最小二乘法学习插值权重
:给定
# 学习过程
求解最小二乘法等价于求解一个线性方程组
,其中,A是一个 的矩阵, 是一个 维向量, 就代表要寻找的系数P62 介绍了进一步调整参数估计方法以适应稀疏评分和用户评分集聚性带来的问题,此处略过
# 小结
邻域算法的特征:数据规范化,近邻的选择,插值权重的决定
规范化对一般意义上的协同过滤算法至关重要
邻域的选择与采用的相似度度量直接相关,通过收缩不可靠相似度的重要性,避免发现有低评分支持度的近邻
插值权重用来从已知评分的物品的近邻物品中估计未知的评分,然而大多数方法缺少权重推导的严谨数学证明,我们可以将权重的求解转化为最优化问题的全局解来获得
# 增强的基于邻域的模型
# 全局化的邻域模型
# 思想
- 大多数基于邻域的模型是局部性的,矩阵分解技术从全局角度描述用户和物品的特征,以此提高准确性
- 下面提出一种基于全局最优化的邻域模型,有以下额外优点
- 不依赖任意的或启发式的基于物品的相似度,而仅表现为一个全局最优化问题的解
- 固有的防止过拟合和风险控制的能力,应对稀疏评分仍然具有鲁棒性
- 整合显式隐式输入
- 高度可扩展性允许以线性的时间空间复杂度实现该模型
- 数据随时间漂移能够整合到模型中
# 演化过程
放弃使用特定用户的权重以实现全局最优化,而改为使用物品 到物品 的权重
从基准预测器开始
- 加入隐式反馈,解耦
的定义
- 规范化修正并通过相似度缩减计算的物品集
# 学习过程
# 模型评估
训练阶段总体时间复杂度为
空间复杂度为
, 为用户数, 为物品数
# 因式分解的邻域模型
# 基于物品关系分解
# 定义
- 在上一模型基础上,强制
, (given ) - 时间复杂度下降至
,空间复杂度下降至
# 公式
# 基于用户关系分解
# 定义
- 使用用户对的权重
来代替物品对的权重 - 因式分解
- 时间复杂度下降至
,空间复杂度下降至
# 公式
# 物品与用户融合
# 说明
- 组合二者提高准确度