V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
humiaozuzu
V2EX  ›  问与答

如果实现简单的推荐系统

  •  
  •   humiaozuzu · 2013-01-30 00:49:40 +08:00 · 4818 次点击
    这是一个创建于 4106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求是:我在 server 端会接收 ios 客户端的联系人上传,然后 ios 端可以通过 rest 接口获得他可能认识的朋友。

    推荐的算法挺简单的,比如2人有4个以上的共同联系人(电话或者邮箱一样)就可以。

    1. 如果是用 sql 查语言感觉很难写,而且性能问题很大
    2. 如果搭建一个推荐系统框架有什么简单易用的推荐下可以吗,最好是python的。 这个如何和我以后的后端进行通信呢?
    9 条回复    1970-01-01 08:00:00 +08:00
    013231
        1
    013231  
       2013-01-30 03:58:43 +08:00   ❤️ 1
    不知你的用戶群規模有多大.
    在不太大的情況下, 可以把所有聯系人信息裝入內存, 每個客戶的聯系人都是一個集合. 想尋找一個客戶"可能认识的朋友", 就用他的聯系人集合和其他每個人的聯系人集合做並運算, 如果某個並集中的條目數足夠大, 就認為這兩人是"可能认识的朋友".
    yyai3
        2
    yyai3  
       2013-01-30 09:27:04 +08:00
    算法:MinHash--http://en.wikipedia.org/wiki/MinHash
    论文:Google News Personalization: Scalable Online Collaborative Filtering
    sqjs86
        3
    sqjs86  
       2013-01-30 09:41:59 +08:00
    同意 1L, 可以看一下 redis
    HowardMei
        4
    HowardMei  
       2013-01-30 10:20:07 +08:00   ❤️ 1
    可能Bloom Filter更合适,有现成的库:
    https://github.com/jaybaird/python-bloomfilter
    可以把Hash改得更简单点提高性能:
    https://github.com/jaybaird/python-bloomfilter/blob/master/pybloom/pybloom.py
    可用 http://code.google.com/p/pyfasthash/ 里的MurmurHash替代hashlib
    rain
        5
    rain  
       2013-01-30 10:40:13 +08:00
    @013231 是交集吧?
    013231
        6
    013231  
       2013-01-30 10:51:12 +08:00
    @rain 對, 交集, 我說錯了.
    humiaozuzu
        7
    humiaozuzu  
    OP
       2013-01-30 12:51:41 +08:00
    @013231 @HowardMei 非常感谢,有没有什么实际的例子可以参考下呢? 算法可能不太困难,但是使用的工具上感觉有点无从下手。
    stackpop
        8
    stackpop  
       2013-01-30 13:27:34 +08:00
    bloom filter可以
    HowardMei
        9
    HowardMei  
       2013-01-30 14:22:50 +08:00
    @humiaozuzu http://zacharyvoase.com/2012/08/31/m2mbloom/ 这个和你的需求几乎一模一样,实现方法写得很详细(for Postgres)。性能提高了近30倍,不错了,你可以试试看和 @013231 的方法比,哪个更适合。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5469 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 07:54 · PVG 15:54 · LAX 00:54 · JFK 03:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.