协同过滤,矩阵分解有感

首先是协同过滤(cf)

    这个概念经常在机器学习的文章中看到,但由于接触不久,所以一直都是一知半解,没有好好了解过。

    首先从字面上理解,“协同”需要一个“集体“,“过滤”就应该是晒选的意思,那么协同过滤总的来说就是通过“集体”来“筛选”,以评分推荐系统为例子,这里的“协同”我个人理解就是集合”众多人的评价”,这里的“评价”,就是“对集体都接触过的事物进行打分”,这样大概就能通过一些共同的事物反应出用户不同的”价值观“,然后通过这样的价值观来”筛选“出价值观高度相似的人,再相互推荐共同都喜爱的东西。那么这样的推荐就很有可能是大家都需要的。

    经过资料洗礼过后,得知cf现在的两大方向,一种是以记忆为基础(Memory-base),另一种是基于模型(Model-based Collaborative Filtering)。

    普及的比较多的前者,它基于关注的目标,又分为基于用户的协同过滤和基于项目的协同过滤,上面举的一个简单的评分推荐系统的例子就可以说是基于用户的协同过滤,它是通过用户对共同物品的“主观价值”来筛选相似用户,再互补评分高的商品,从而达到推荐商品的目的;那么基于项目的意思就是通过这个用户集体对商品集的评价,在物品的角度上去寻找相似度高的物品,达到推荐商品的效果。虽然针对的目标不通,但以我个人理解,大体上都是依赖这个用户集营造的“价值观”,只不过区别在于,基于用户的CF是“关心”各个用户的“主观价值”上的“区别”,而基于项目的CF则是要基于这整个用户集对项目集的“普世价值观”,来甄别出“物品”上的差异。不知道这么比喻恰不恰当哈,“普世”我这边理解就是“大多数”,是一种整体趋势的意思。价值观比较“抽象”的话,再直接点这里的“价值观”就相当于物理中的“参考系”。

    但是以上两种方法在面对,不是每个用户对大多数商品都做出过评价(数据稀疏)时就无能为力,所以基于这个问题就引导出了基于模型(Model-based )的CF,我在最近的论文中接触到的就是一个“矩阵分解”的协同过滤,它能够基于现有的数据得到一个模型,再用此模型进行推荐。那么是如何做到的呢?接下来看看矩阵分解。

矩阵分解(matrix_factorization)

    假设我先在有一个关于用户对音乐评分的矩阵如下图:


这就是上面讲到的稀疏数据

    只有上述的数据是很难使用户相互推荐音乐的,因为可以看出用户本身听过的歌就不够多,那么如何使数据更加“饱满”呢?这时正是需要矩阵分解的时候,矩阵分解算法的数学理论基础是矩阵的行列变换。行列变换中又有以下规则,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准阵)。

    形象的表示如下图:


n*m约等(n*k)*(k*m)

    矩阵分解的目的就是把一个稀疏的用户评分矩阵分解成用户因子矩阵和项目因子矩阵相乘的形式R=U(转置)*I,我们的目的就是最后再让两个因子矩阵反乘回去得到饱满的用户评分矩阵。那么这个用户,项目因子是个什么东西呢?我们接着上面的音乐评分的形式说,一首歌可能包含多种音乐风格,我们可以量化风格,体现各种风格在一首歌中的比重,那么这里的“潜在因子”我们就可以当作“音乐风格”,K个因子就可以看作K种风格。譬如下图:


用户因子


项目因子

    可以说,这些因子就是我们的模型中的重要参数,个人理解分解出来的这两个因子矩阵就可以说是基于模型的CF中的,“模型”的了,其实我觉得可以类比线性模型中的参数,我们的回归模型最终重要的不就是公式中的各项参数吗,这两个因子矩阵其实就是我们这个模型中的重要参数,参数知道了模型也就求出来了。如果不了解线性模型可以参考吴恩达大大的机器学习课程,里面介绍的很详细,不像我这边一知半哈。

    那么这些个值具体是怎么得出来的呢?过程和求线性回归也很像,接下来就是相关的简单推倒,首先,我们假设,真实的用户评分和我们预测评分的差遵循高斯分布

R用是评分矩阵   U是用户因子矩阵,V是项目因子矩阵

服从高斯分布(从概率方面解释)

接下来就是极大似然估计,使,在现有数据下概率最大化

极大似然估计

    类比求线性模型,就能够了解思想很相似,所以应该同样是运用了似然估计的思想,要使值最大,式子两边同时取对数,可以看到,如果要使概率最大,那么公式的第一项就要最小,是不是想到了什么,没错接下来就可以看到最小二乘法的式子。


目标公式

    线性模型我们遇到这个情况一般怎么做,没错,就是梯度下降。首先求偏导数


去寻找驻点,找最小值

最后就是梯度下降的矩阵因子更新公式:


其中的参数为步长

    接下来迭代到自己设置的阈值收敛就能得到局部最优解了。

    下面是我根据上述矩阵分解的思想随机的模拟实践,可以自行感受一下准度,可能写搓了点~

矩阵分解

References

注释:以上诸多图片材料来自网上多篇博客文章

https://www.zhihu.com/question/26743347

http://blog.csdn.net/dream_angel_z/article/details/46288167

还有方便实用sklearn的中文API文档

http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030193

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 1 协同过滤算法简介 1.1 协同过滤核心思想以及分类 协同过滤以其特有的优势成为众多专家和学者关注的焦点,目前在...
    Ten_Minutes阅读 10,274评论 1 3
  • 推荐系统的主要方法 一、基于内容的推荐算法 网络基于内容的推荐系统,也称CB(Content-based Reco...
    Arya鑫阅读 3,519评论 1 6
  • 概述及标签体系搭建 1 概述 随着信息技术的迅速发展和信息内容的日益增长,“信息过载”问题愈来愈严重,愈发带来很大...
    JinkeyAI阅读 22,747评论 10 241
  • 回国已经两年。 11年开始工作,12年中出国,15年中回国,新部门干活至今。 回国后,不免直面诸事,少了独身在外的自由。
    咿唔阅读 183评论 0 0
  • 文/月生 1 有见识的分享,往往不是「分享到朋友圈」。有见解的转发,常常不是「转发」到微博。有收获的赞赏,每每不是...
    月生阅读 2,085评论 16 51