以能够在推荐系统中进行模型构建(离线)和预测(在线)的方式收集用户数据的正确方法是什么? 假设:
问题: 该系统应该大规模工作。 可以使用哪些主要技术和主要数据结构?
答案 0 :(得分:0)
我建议使用像Apache PredictionIO和Universal Recommender plugin Engine.
这样的系统PIO实时输入用户行为并告知推荐人在后台进行训练。这通常产生用户行为的“模型”。实际的个人用户行为可以来自实时观察,并且将任何数据视为输入以影响推荐的方式没有区别,所有这些都可以是实时的。因此,模型在批处理模式下在后台创建,实时用户行为用于制定查询,因此实时数据会影响结果。这通常被称为Lambda风格的机器学习。
大多数类型的推荐人不允许您使用多个转化作为用户行为的证据,因此可以作为用户偏好的可能指标。 Universal Recommender是例外,它可以使用任意数量的用户行为。
PIO和UR建立在高度可扩展的服务之上,因此“生产”系统可以水平扩展到任何所需的规模。这些包括HDFS,HBase,Spark和Elasticsearch。 Universal Recommender使用现代Apache Mahout的Correlated Cross-Occurrence(CCO)算法,而不是旧的基于Hadoop的Mahout推荐器。