我正在尝试用云ML引擎构建上下文感知推荐系统,它使用context prefiltering方法(as described in slide 55, solution a),我正在使用这个Google Cloud tutorial (part 2)来构建一个演示。出于本演示的目的,我将数据集按时间戳划分为工作日和周末上下文以及中午和下午上下文。
在实践中,我将学习四个模型,以便我可以按工作日-未知、周末-未知、未知-正午、未知-下午、平日-下午、平日-中午……进行上下文过滤。诸若此类。其思想是使用用户对所有相关模型的预测,然后根据对上下文的已知情况对结果推荐进行加权(未知含义,即使用所有上下文模型并给出加权结果)。
我需要一些快速响应的东西,如果我不想在前端进行加权,我似乎很不幸地需要一些中间件。
我知道,AppEngine有预测模式,它将模型保存在内存中,这保证了快速响应,因为您不必引导预测模型;然后解析上下文将会更快。
然而,会不会有更简单的解决方案,也能保证在Google Cloud中的类似性能呢?
我使用Cloud ML Engine的原因是,当我以这种方式执行上下文感知推荐系统时,超参数调优的数量会大幅增加;我不想手动完成这项工作,而是使用Cloud ML Engine Bayesian Hypertuner来完成这项工作,这样我只需要为每个上下文模型调整参数范围一到三次(使用自动化脚本);这节省了数据科学家在重复数据集时的大量开发时间。
发布于 2018-09-07 14:44:29
有四种可能的解决方案:
选项1涉及更多的编码,并且很难正确处理。
选项2将是我的选择,尽管它改变了您所希望的模型公式。如果您采用这种方式,下面是您可以适应的MovieLens示例代码:https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/movielens
由于额外的网络开销,选项3会引入更多延迟
选项4从#3开始减少了网络延迟,但您失去了并行性。您必须在选项3和选项4之间进行试验,在这两个选项上可以提供更好的整体性能
https://stackoverflow.com/questions/52200348
复制相似问题