算法 [我们猜你也喜欢] 的实现原理?

stc · 2012年11月26日 · 最后由 alexapollo 回复于 2015年03月30日 · 6169 次阅读

最近我碰到了一个难题,想了很久还没有最好的方案,希望能得到大家一些建议。 是这样的,

我库里记录了很多用户 (千万级) 的访问 URL 的记录,例如 user_id, click_url 1, www.dangdang.com 2, www.360buy.com 2, www.51buy.com 4, sina.com 1, www.amazon.com 。 。 。 我想通过这些用户点击数据能得出结论:如某些 URL 之间有相似接近。这样我可以给用户做推荐,就是您可能也喜欢某个网站。

谢谢大家能讨论一下..给点建议 ;-)

这个就是推荐系统了。 可以看看这个。 https://www.ruby-toolbox.com/categories/Recommendation_Engines

不过千万级,不知道那些能不能处理得了。

有本书 集体智慧编程

#1 楼 @xmonkeycn 谢谢回复,在这里是不能解决问题。@lidashuang 看起来不错!研究一下!

那么大的数据,用最简单的协同过滤就可以做出效果很好的推荐结果。

另外,如果楼主可以提供数据给我玩玩,那就更好了。

推荐你一本书 http://book.douban.com/subject/10769749/

作者我见过本人,在上海举办的第一届推荐系统大会上有过主题分享,而我刚刚好就是那次大会的主持人,获益匪浅。这个作者深入研究了所有知名的关于推荐系统的论文,结合自己的实践,在推荐系统领域算是独树一帜了,有时间的话,我也会好好拜读一下此书。

6 楼 已删除

可以去搜一下 user based 或 item based CF 最好找找相关论文,这里有一篇http://www.stat.osu.edu/~dmsl/Sarwar_2001.pdf 虽然是 01 年的,不过算法是很基本、常用的

#5 楼 @lgn21st 说到推荐算法的书,有本洋书 Programming Collective Intelligence(即 #2 楼 @lidashuang 提到的那本)也值得推荐。你提到的那本我看过介绍,可惜在国外买不到。今天去图灵看了下有电子版的了,立入看到底写得如何。

#8 楼 @ashchan 经过你的提醒,我也马上买了,图灵的电子书好便宜啊。

从《推荐系统实战》中,得知原来这本书的作者还创立了一个推荐系统社区,大家有兴趣的可以去逛逛 http://www.resyschina.com

能不能把数据集借我用用,我做论文啊哈哈。

@jimrokliu ,@ch3n 公司内部数据,不便放出来,不好意思啦;-)。

谢谢大家的帮助,看了点大家推荐的书,很有用,虽然我还没有解决,还是谢谢各位!

#12 楼 @stc 可以构建一个兴趣度模型,这个可以看学术论文,大概就是关键词加权重,然后利用向量模型进行相似度对比,兴趣度还可以按照短期和长期进行分类。然后根据评分向用户推荐。

感觉最牛的推荐系统就是 亚马逊 的推荐系统了。

可以参考 Netflix 之前比赛的算法,如果按你的情况,可以将 不同 url 按访问次数用户组成一个 Matrix,rating 相当于访问次数,其它则是 url,组成一个 matrix,这样就和 Netflix 的 Matrix 差不多,然后用 SVD 分拆,省略部分 column 后,用一个新的用户,对其作 cross product 运算,计算夹角大小,夹角最小的,就是对应口味最相近的用户,找到相近用户后,取其用户的网址就是推荐网址

user_id, url, rating 1, www.google.com, 113 1, www.gmail.com, 110 2, www.ruby-china.com 119 2, www.stackoverflow.com 120

Ruby 版代码在这里

http://www.igvita.com/2007/01/15/svd-recommendation-system-in-ruby/

补充一下楼主,linalg 这个库一直在 Mac 下装不了,如果你成功装了,麻烦告之步骤,谢谢

关注,不知道有没有后续?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号