推荐系统算法_CUCS | 推荐系统算法简介Matrix Factorization(矩阵分解)
你是否还沉浸于春节收到各路微信红包的喜悦却发现midterm季悄然来临
每当你考完这一周的midterm准备松一口气时却发现下一周又有新的midterm在等着你
与其复习到头秃,不如打开Amazon或者Netflix,做些令人身心愉悦的事情...
比如了解一下推荐系统的算法
推荐系统算法简介
推荐系统在现在互联网产业中起着很重要的作用,amazon的购物推荐,netfix的电影推荐,对整个商业利润的提升,都有着巨大的作用。
有多种不同的算法可以用来建立推荐系统。
Content filtering 就是对每个用户和产品都建立一个profile。比如对音乐进行分类,同时对用户的音乐喜好进行分类,这样我们就可以把用户喜欢的产品推荐给用户。
Collaborative Filtering 通过分析用户间的关联性和商品间的关联性,发现新的用户和商品间的关联。这里核心思想是如果和某一个用户A的相似的用户都喜欢某样商品B,那么该用户也应该喜欢商品B。
通过Joe的观影记录,我们可以发现哪些用户和Joe相近。上图中3个用户都喜欢Joe喜欢的3个电影。所以这里3个用户与Joe的相似度较高,而这3个用户都喜欢的电影,那么Joe也有更高的可能性喜欢。
而这里为了比较用户之间和商品直接的相似度,我们需要用到latent feature。而Matrix Factorization则是用来发现latent feature的方法之一。
用户(user)和商品(item)之间的关系可以用一个rating matrix表示。如下图左边矩阵。其中row表示用户,column表示商品。而矩阵的元素(i, j) 表示第i个user对第j个商品的评分。所以推荐系统的任务可以理解为对这个矩阵剩下未填上的元素进行填空。
而matrix factorization的意思是将矩阵分解两个更小矩阵的乘积。比如上面的Rating matrix可以分解为User matrix和Item matrix的乘积。
这里User matrix的row对应着每个用户,column对应着latent feature。
而Item matrix的column对应着每个商品,而row对应着latent feature。
所以这里的latent feature可以理解为表达一个用户和商品的vector,也就是embedding。两个相似的用户,应该有相似的vector v1, v2, 他们之间的dot prodoct也比较大, 而不相似的用户,他们之间的dot prodoct就比较小,同理这也适用于商品直接相似性的比较。
The mathematics behind Matrix Factorization
为了预测用户i对商品j的评价,我们计算代表用户i的vector pi和代表商品j的vector qj之间的点乘。
而预测评价和实际评价之间的差距意味着计算误差error。由于差距有正有负,所以差距的平方更能描述实际差距大小。所以这里我们用squared error。
在有了误差和参数后,我们就可以针对减小误差对参数进行优化,而对误差进行求导后,我们就可以知道参数可以如何调整让误差更小。下面的式子计算了误差对于参数的导数:
知道了导数后,则参数可以按导数的相反方向进行调整:
评价指标
所有机器学习问题对于评价模型都需要合适的评价指标,对于推荐系统,下面介绍两个常用指标。
1. mean reciprocal rank.
在推荐系统背景下,i是用户喜欢的某个商品。而这里rank_i是商品i在推荐列表中的排名。我们希望用户喜欢的商品,总是排在推荐商品的最前面。
2. Hits at k or hits@k.
根据字面意思,当推荐系统推荐k个商品时,在k个商品中是否有用户真正喜欢的,如果有,则是一个hit,反之hit为0。大量sample并做平均后我们可以得到这一指标。
关于data science&AI方面推文的建议,或是讨论data science&AI方面的问题,欢迎联系CUCS学术部:田轶凡。 WeChat:tyfustc123 排版:金泽宇
推荐系统算法_CUCS | 推荐系统算法简介Matrix Factorization(矩阵分解)相关推荐
- MF+Matrix Factorization+矩阵分解
MF+Matrix Factorization+矩阵分解 Matrix Factorization Matrix Decompostion LU分解,QR分解,SVD分解,,,, 非负矩阵分解 概念: ...
- Non-negative Matrix Factorization 非负矩阵分解
Non-negative Matrix Factorization 非负矩阵分解 Introduction 定义 非负矩阵分解(non-negative matrix factorization),或 ...
- Non-Negative Matrix Factorization 非负矩阵分解(NMF)
Non-Negative Matrix Factorization 非负矩阵分解(NMF) 简介及基本思想 1999年由D.D.Lee和H.S.Seung提出的新的矩阵分解思想,在矩阵中所有元素均为非 ...
- 推荐系统2--隐语义模型(LFM)和矩阵分解(MF)
一,背景 协同过滤(userCF,itemCF )完全没有用到用户或者物品本身的属性,仅仅利用了用户与物品之间的交互信息就可以实现推荐.是一个可解释性很强,非常直观的模型,但是缺点在于:1,处理稀疏矩 ...
- 基于python 的电影推荐算法_基于python语言编程的矩阵分解电影推荐算法
[实例简介]一种基于矩阵分解方法的电影推荐算法 [实例截图] [核心代码] import numpy as np from numba import cuda, float64, jit from s ...
- 矩阵sum_推荐系统——从协同过滤到矩阵分解
本文简单扼要地介绍推荐算法中的两种经典算法:协同过滤和矩阵分解.内容有以下三部分 协同过滤算法 矩阵分解 协同过滤与矩阵分解的关系 早期的推荐系统以业务理解为核心,通过复杂的规则描述来向用户推荐商品, ...
- 李宏毅深度学习--《Unsupervised Learning》+《PCA》+《Matrix Factorization》
<Unsupervised Learning>+<PCA推导> Unsupervised Learning Clustering K-means Hierarchical Ag ...
- 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...
自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...
- mf模型 svd++_算法小板报(六)——初探MF(矩阵分解)和FM模型
一.简介 矩阵分解(Matrix Factorization,MF)是推荐系统中非常经典的一个算法,虽然现今工业界直接使用的较少,但其背后蕴含的编码降维思想,得以广泛应用于推荐领域之中.本文则主要来梳 ...
最新文章
- ios 贝塞尔曲线 颜色填充_PS的3D颜色深度映射到球体模拟天线
- 通俗易懂!使用Excel和TF实现Transformer
- 二进制数代替数组做标记
- optee3.8 qemu_v8的环境搭建篇
- javaweb学习总结(四十四)——监听器(Listener)学习
- 679. 24 Game 24 点游戏
- c++ 或者 vc++中判断程序实例是否运行
- 2016网络安全***赛记录
- CentOS 7 install Zabbix3.4
- 用开源代码如何建立网站_糖尿病患者找到开源并建立自己的医疗设备
- 为什么c语言2的n次方减一,计算2的N次方........有什么错吗?
- 4 场直播,哈工大、亚马逊等大咖为你带来机器学习与知识图谱的内容盛宴
- Ceisum官方教程1 -- 开始
- win7美化_Windows桌面美化记(二)这可能是你看过最详细的美化教程
- 手写原笔迹输入_手写原笔迹
- OpenCV开发笔记(五十二):红胖子8分钟带你深入了解直方图对比匹配(图文并茂+浅显易懂+程序源码)
- php倒序正序,php foreach正序倒序输出示例代码
- 数据库系统概论 实验报告答案 实验三:创建及管理数据表
- Josh 的学习笔记之数字通信(Part 4——带通调制和解调)
- 作者年份 soft computing参考文献格式要求,LaTeX实现
热门文章
- 白话编程辅助工具perl2exe(Reship)
- 一本通1594涂抹果酱
- 第 10 章 数组和指针
- BLE4.0教程四 新增特征值(CC2541)
- php的?php ?标签匹配
- 基于jQuery向下弹出遮罩图片相册
- 网络编程——第一部分
- SQLServer中Case when的一个意外问题
- NGUI_2.6.3_系列教程三
- 大数据之-Hadoop3.x_MapReduce_WordCount案例集群运行---大数据之hadoop3.x工作笔记0093