首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将云ML引擎用于上下文感知推荐系统

如何将云ML引擎用于上下文感知推荐系统
EN

Stack Overflow用户
提问于 2018-09-06 17:01:10
回答 1查看 195关注 0票数 2

我正在尝试用云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来完成这项工作,这样我只需要为每个上下文模型调整参数范围一到三次(使用自动化脚本);这节省了数据科学家在重复数据集时的大量开发时间。

EN

回答 1

Stack Overflow用户

发布于 2018-09-07 14:44:29

有四种可能的解决方案:

  • 学习4个模型并使用SavedModel保存它们。然后,创建一个恢复4个已保存模型的第5个模型。此模型没有可训练的权重。相反,它只是计算上下文,并将适当的权重应用于4个保存的模型中的每个模型,并返回值。这是您要部署的第5个模型。
  • 学习单个模型。将上下文作为分类输入到您的模型中,即遵循https://arxiv.org/abs/1606.07792
  • Use中的方法,AppEngine服务计算上下文并调用底层的4个服务,对它们进行加权并返回结果。
  • 使用用Python语言编写的AppEngine服务加载所有4个保存的模型,并调用4个模型并对它们进行加权并返回结果。

选项1涉及更多的编码,并且很难正确处理。

选项2将是我的选择,尽管它改变了您所希望的模型公式。如果您采用这种方式,下面是您可以适应的MovieLens示例代码:https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/movielens

由于额外的网络开销,选项3会引入更多延迟

选项4从#3开始减少了网络延迟,但您失去了并行性。您必须在选项3和选项4之间进行试验,在这两个选项上可以提供更好的整体性能

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52200348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档