重磅干货-史上最全推荐系统资源分享_深度学习

作者:grahamjenson

深度学习与NLP编译

参与:lqfarmer,Addis


    推荐系统(或推荐引擎)是非常有用且有趣的软件。原本想比较下不同的推荐系统之间的区别,但却找不到一个合适的列表,所以干脆自己整理了一个,同时,欢迎大家请更正、补充。(文末附带链接版文章下载地址)


软件即服务类推荐系统

    SaaS推荐系统在开发过程中遇到很多挑战,比如必须处理多租户(multi-tenancy),存储和处理大量数据以及其他软件相关的问题,如在远程服务器上保护客户敏感数据的安全。

使用SaaS推荐系统的好处是,可以以较低的开销来获取价值,而不需要大量的前期投入,它们通常具有明确的集成方式提供给用户使用,并且在使用它时,可以对其进行开发和改进。

    SaaS推荐系统有:

    SuggestGrid:改进自Rcmmndr。SuggestGrid是一个通用推荐系统。它基于Apache Spark,但有很多改进。

    Peerius:一个封闭的、专注于产品和电子商务的实时电子邮件推荐系统。非常活跃并且看起来很有趣,尽管关于其实际产品以及它如何工作的信息很少。

    Strands:同样是一个封闭的、专注于产品和电子商务的推荐系统。它可以通过在网站上添加跟踪脚本(Google Analytics)和推荐小部件来工作。但最吸引人的是,Strands发布的他们的研究案例,例如Wireless Emporium和白皮书,如《The      Big promise of recommender system》。虽然这些讨论没有提供的确切解决方案,但他们很好地叙述了他们提出推荐的愿景和目标。

    SLI Systems Recommender:一个专注于电子商务,搜索和移动的封闭推荐系统。

Google Cloud Prediction API:Google提供的云计算预测API

    Using Hadop Google Cloud:一个使用Google cloud的示例,其中包含推荐系统的benchmarks。

    ParallelDots: 工具,用来关联已发布的内容

Amazon Meachine Learning:机器学习平台,用于对数据进行建模并创建预测

    Azure ML:机器学习平台,用于对数据进行建模并创建预测

    Gravity R&D:由2009年Netflix的一些获奖者创建的公司。主要提供解决方案,为网站用户提供有针对性的定制建议。他们有一些非常大的客户,包括DailyMotion和一个描述他们的架构、算法和出版物(publication)列表的技术页面。

    Dressipi Style Advisor:一个与服装相关的推荐系统。它融合了专家领域知识和机器学习,可以找到适合场合或情绪的服装。

    Sajari:一个搜索,推荐和匹配(如约会网站)服推荐系统。在他们的网站上,也汇总了一些有用的数据集。

    IBM Watson:可通过Watson Developer Cloud获得,Watson Developer Cloud提供REST API(Bluemix上的Watson API)以及使用认知计算解决复杂问题的SDK。

    Recombee:提供REST API,多语言SDK和评估结果的图形用户界面。主要功能是实时模型更新,易于使用的查询语言,根据复杂的业务规则和高级功能(如获取多样化或轮流推荐的选项)进行过滤和提升。Recombee提供每月100k免费推荐请求的即时帐户。

    Segmentify:推荐引擎,个性化和实时分析工具。

    Mr.Dlib:数字图书馆和reference manager等学术机构类的推荐系统。Mr.DLib提供“相关文章”的推荐,是开源的,并公布了大部分数据。


开源的推荐系统

    大多数的非SaaS推荐系统都是开源的。这是因为这些推荐系统被简化,更适用于client,因此不容易制作成产品。

    开源推荐系统有:

    PredictionIO:基于Apache Spark,Apache      HBase和Spray技术构建。一个机器学习server,可用于搭建推荐系统。Github地址,看起来非常活跃。

    Raccoon Recommendation Engine:是一款基于Node.js的开源协同过滤器,使用Redis作为存储。

    HapiGER:一个开源的Node.js协作过滤引擎,可以使用内存,PostgreSQL或rethinkdb。

    EasyRec:基于Java和Rest的推荐。已被弃用。

    Mahout:Hadoop /线性代数的数据挖掘

    Seldon:基于Apache Spark的技术构建的Java预测引擎。提供了一个演示电影推荐应用:在这里。

    LensKit:一个基于Java的推荐系统,适用于中小规模。

    Oryx v2:用于机器学习和预测的大型架构(由Lorand提出)

    RecDB:一个PostgreSQL扩展,用于将推荐算法(如协作过滤)直接添加到数据库中。

    Crab:基于热门软件包NumPy,SciPy,matplotlib的python推荐系统。已经被弃用。

    Predictor:一个基于Ruby的推荐系统。

    Surprise: 用于构建和分析(协作过滤)推荐系统的Python scikit。内置各种算法,重点是评级预测。

    LightFM:基于Python实现一系列基于协作和基于内容的,从学习到排名的推荐算法。使用Cython,可以轻松扩展到多核机器上,处理非常大的数据集,包括Lyst和Catalant在内的许多公司,用于实际生产。

    Rexy:一个基于一般用户-产品-标签概念和灵活结构的开源推荐系统,该结构已被设计为可与多种多样的数据模式相匹配。Rexy由Python-3.5,以高度优化的Pythonic和全面的方式编写而成,使其对非常灵活。使用Aerospike作为高速,可扩展,可靠的NoSQL数据库的数据库引擎。

    QMF:用于隐式反馈矩阵分解模型的快速且可扩展的C++库。

    tensorrec:Python语言的TensorFlow推荐算法和框架。

    hermes:PySpark中协作过滤和基于内容的算法的推荐框架。已被放弃。


非SaaS产品的推荐系统

    非SaaS非开源推荐系统并不常见。主要是    Dato:

    Dato:一家提供用于商业机器学习的python包和服务器的公司,其中包括许多用于推荐的预测算法。他们还与Apache Spark集成,并且有很棒的博客文章,比如为什么构建自定义推荐系统很难?它必须是?。他们的客户包括Pandora和StumbleUpon,必须是一个好产品。


学术型的推荐系统

    推荐系统在学术界是一个非常活跃的研究领域,尽管很多系统主要在实验室使用,很少用于工业生产。

    Duine      Framework:已被放弃的基于Java的推荐系统

    MyMediaLite:基于C#的内存推荐系统。已被放弃

    LibRec:一个基于Java的推荐引擎,带有大量的算法实现。

    RankSys:Java编写的推荐系统,非常新颖性和多样。

    LIBMF:推荐系统的矩阵分解库

    proNet-core:一种通用网络嵌入框架,为推荐系统提供了几种基于分解的模型。


Benchmarking类推荐系统

    构建推荐系统的benchmarking是非常困难的,这不仅因为获得好的数据集很难,而且不同的方法和算法具有难以揭示的不同的优缺点。

    以下是一些benchmarking工具列表:

    TagRec:标签推荐基准框架

    RiVaL:推荐系统评估的开源工具包。一些结果发布在这里。

    Idomaar:推荐算法测试的参考框架。它是在CrowdRec项目的框架内开发的。


媒体类推荐系统

    除了通用推荐系统之外,这里还添加一个应用列表,其中推荐是核心产品,特别是在媒体推荐领域:

    Yeah,Nah:基于GER的电影推荐应用

    Jinni:电影推荐网站

    Gyde:流媒体推荐

    TasteKid:电影,书籍,音乐推荐。

    Gnoosic:音乐推荐系统。

    Pandora:基于喜欢或不喜欢的歌曲推荐系统

    Criticker:游戏和电影协作推荐。

    movielens.org:电影和书籍推荐系统。

    MAL:基于用户协同过滤推荐系统。


书籍

    Practical Recommender Systems:由Kim      Falk编写(曼宁出版社)。第1章

    由Ricci,F等人撰写的Recommender Systems Handbook

    带链接版文章下载地址

    链接: https://pan.baidu.com/s/1WjGjEy1Jf07GoeeoaV6rYA 

    密码: m93n


重磅干货-史上最全推荐系统资源分享_推荐系统_02