CWYAlpha

Just another WordPress.com site

Thought this was cool: 矩阵分解在微博推荐系统上的应用

leave a comment »


以前写过两篇文章《浅谈矩阵分解在推荐系统中的应用》和《再谈矩阵分解在推荐系统中的应用》,最近在玩围脖应用,所以想了想矩阵分解方法在围脖推荐系统可以怎样用。(这里不介绍算法,具体算法可以参考前两篇文章)

越来越感觉基于内容作推荐其实就是IR的技术,做分词,做词的权重排序,去停用词。得到每个词和权重之后,可以将一个文档写成一个向量。对每个文档做同样的工作,对每个用户感兴趣的文档做同样的工作可以得到用户的向量,然后可以计算用户和文档之间的相似度,计算文档和文档之间的相似度了。这个问题的关键是,我们如何衡量用户喜欢哪份文档?他有多喜欢。对于围脖来说,我们可以拿到的分析数据太多太多了,用户发布的围脖,用户转发的围脖,用户收藏的围脖,用户评论的围脖,用户点击过的链接所在的围脖等等。(当然用户点击哪条围脖的图片或者链接,只有平台自己知道,开发者是不可能知道的。)

前两篇文章都说到过矩阵分解的过程其实是一个软聚类的过程,对于微博推荐系统,如果是一般的开发者的话,用户少的可怜的话,可以只对微博–词矩阵(每条围脖的分词以及频次统计)做分解,得到微博的因子矩阵和单词的因子矩阵,利用这两个矩阵可以很容易的找到各个单词的同义词和近义词,也可以很容易地得到找到相似的微博,当然也可以达到降维提速的效果。找到用户感兴趣的关键词以及它们的同义、近义词对于推荐效果将会很有意义。

如果你的用户非常大的话,甚至是平台级的推荐系统的话,那么可以好好利用三个层次的数据,用户—-微博—-词。同样的思路,可以对人进行聚类,对单词进行聚类,对围脖进行聚类,第一个结果可以作为“圈子”(现在很热的概念),不过只是简单地用这些数据圈子的效果不会太好。有了用户的“圈子”以后可以用user-based cf混合基于内容一起做推荐,这样推荐给用户的结果我觉得应该会好很多。

矩阵分解的好处在于,可以挖掘出信息中潜在的含义,让系统可以做到透过现象看到本质,找到用户和用户,用户和微博,微博和微博,微博和单词,单词和单词之间的关系。用一种快速的方法将用户,微博,单词划分了“圈子”。

from 阿俊的博客: http://somemory.com/myblog/?post=42

Written by cwyalpha

5月 22, 2012 在 3:09 上午

发表在 Uncategorized

留下评论