「」协同过滤算法:在抖音狂给1000个小姐姐点赞的事被老婆发现了( 四 )
本文插图
【「」协同过滤算法:在抖音狂给1000个小姐姐点赞的事被老婆发现了】
其中 , 用户矩阵部分代表着每个用户的偏好在一个二维隐语义空间上的映射 。 同样地 , 物品矩阵代表着每本图书的特性在一个二维隐语义空间上的映射 。 这两个矩阵也就是模型的结果 。 这样 , 我们训练模型的时候 , 就只需要训练用户矩阵中的8个参数和物品矩阵中的8个参数即可 。 大大减少了计算量 。
模型训练的过程 , 简单地说 , 就是通过最小二乘法 , 不断将用户评分数据迭代入矩阵中计算 , 直到把均方误差优化到最小 。 上图的结果是我通过Spark的ML库ALS模块直接计算的 。
算法的具体目标函数 , 损失函数和梯度等 , 详述则涉及很多机器学习知识点 , 这里就不作介绍了 。 技术方面有很多解读文章 , 需要进一步理解的同学 , 可以搜索相关文章阅读 。
(3)预测决策
通过模型训练 , 我们得到用户矩阵Q和物品矩阵P后 , 全部用户对全部图书的评分预测可以通过R = PQ来获得 。 如上图中 , 用户A的向量(1.40,-1.18)乘以物品2的向量(2.19,0.73)则可得用户A对物品1的评分预测为:1.40×(-1.18)+2.19×0.73=2.21 。
对所有的用户和物品都执行相同操作 , 可以得到全部用户对全部物品的评分 。 如下图右侧矩阵:
本文插图
得到全部的评分预测后 , 我们就可以对每本图书进行择优推荐 。 需要注意的是 , 用户矩阵和物品矩阵的乘积 , 得到的评分预估值 , 与用户的实际评分不是全等关系 , 而是近似相等的关系 。 如上图中两个矩阵绿色部分 , 用户实际评分和预估评分都是近似的 , 有一定的误差 。
在现在的实际应用中 , SVD一般作为协同过滤的离线召回使用 。 一般地 , 将需要给用户推荐的物品提前离线计算好 , 存在HBASE中 , 在用户有请求的时候 , 直接读取推荐的结果 , 放入初排阶段的召回集中 。
总结
(1)协同过滤优点
协同推荐是应用最广泛的推荐算法 。 基于内容推荐的算法 , 需要给物品打上标签和给用户建用户画像 , 才能实现匹配推荐 。 相比之下 , 协同过滤简单了许多 。 它是仅使用用户行为的进行推荐 , 我们不需要对物品或信息进行完整的标签化分析 , 避免了一些人可能难以量化描述的概念的标签构建 , 又可以很好地发现用户的潜在兴趣偏好 。
(2)协同过滤缺点
因为协同过滤依赖用户的历史数据 , 面对新的用户或者新的物品 , 在开始的时候没有数据或数据较少时 , 协同过滤算法无法做出推荐 。 需要等数据积累 , 或者其他方案进行弥补缺陷 , 也就是常说的冷启动的问题 。
(3)机器学习领域 , 当精确的方式不行难以计算或者速度太慢的时候 , 往往会选择牺牲一点精度 , 达到差不多但非常快速的效果 。 SVD就是其中的一个例子 。
(4)没有完美的算法 , 只有最合适的算法 。 现在的实践 , 也不是单纯用协同过滤来做推荐 , 而是将他们作为其中的一个或几个召回策略来使用 。
本文由 @菠萝的海王子原创发布于人人都是产品经理 。 未经许可 , 禁止转载
题图来自Unsplash , 基于CC0协议
推荐阅读
- 『强国兵器』中方协同美方开发AI工具,英国人:只有中国能做到,抗疫强力辅助
- 「TalkingData」打造智能化的小微企业信用评估体系?,如何用数据+算法
- 「中国电信」中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- 『环球Tech』中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- #环球Tech#中国电信携手海思、长虹联合开展5G机器视觉“端边云”协同创新
- 美伢的广志■设置Iphone的色情信息过滤机制,这么简单,原来是这样
- 「电气技术」提升磁悬浮系统的控制性能,新算法
- 工信:工信部:审慎积极地推进有创呼吸机等医疗装备产业链协同复工扩产
- 人脸识别:中科视拓开放商业版本人脸识别算法SeetaFace 6
- 节能罗茨风机@如何更换三叶罗茨风机的内部齿轮和空气过滤器的检查
