英文原文地址:How we built our Model Training Engine

翻译:大魁,时间短暂,翻译的比较粗糙

在Foursquare,我们面临大规模的机器学习任务。例如,要从低质量的GPS信号中确认用户签到的场所;个性化推荐;根据用户或者他们的好友去过的地方来推送打折和促销信息。几乎app的每一个功能都或多或少用到了机器学习。所有这些服务都具有海量的规模:每天一百万发现请求、和六百万次签到。我们必须以比眨一次眼更少的时间来处理每次请求,并且几百万的用户交互也给我们的模型提供了几百万的训练数据。我们必须构建一个模型训练引擎(MTE)来自动化我们的训练过程。

让模型适应数据,而不是让数据适应模型

许多模型是基于线性回归或者类型的方法构建的,虽然这些模型能帮助我们快速使用和理解数据,但便捷性仍不足以抵消模型本身不合理的假设,和有限的学习能力。我们的MTE选择了Boosted Decision Trees 和 Random Forests模型,因为模型更加强大,可以更好的适应数据。并且用scikit-learn和MapReduce实现了2个版本。

确保模型是最新的

由于每天有六百万新的签到数据,模型很快就过时了。MTE自动地利用新数据对模型重新训练。新的数据和旧数据中的变化,都立即被合并到新的模型中。我们会对模型的效果进行监控,一旦新模型胜过旧模型,旧模型就会被替换。

使模型训练适应数据规模和整个系统

由于是一个多模块相互关联的系统,别的模块的一个看似无关的改动,可能会引起模型的需求变化。怎样才能构建一个适应数十亿次签到的系统,并且各个模块之间可以良好的协作?

我们用了online learning算法和巧妙地抽样方法来解决内存中装不下所有数据的问题。我们用了bagging和交叉验证的技术,将不同的样本合并到一个预测器,最大化有效样本的同时,避免过拟合。这意味着添加一个样本,或者搞错一个样本,并不会使弄坏整个模型。例如,如果某个工程师不小心添加了很多随机的噪声样本进来,MTE可以快速的检测出来,这些样本无法进行预测,然后会将这些样本丢弃。这允许我们接纳来自公司同事的任何新的idea和样本集,而不仅限于数据科学家。

除此之外,MET能够适应前端和产品的快速迭代,而不需要人工调整。例如,如果我们的移动开发团队改变了UI,使用户好友过去的签到记录更加重要,MTE可以自动检测出来用户更倾向于社交记录,因此对模型自动地进行调整。我们自动的MTE意味着工程师可以专心构建样本集,放心地将选取最优样本交给模型训练过程。

所有的这些进步都是为了更好地用户体验。

Foursquare: 如何构建我们的模型训练引擎(Model Training Engine)相关推荐

  1. 阿里巴巴稀疏模型训练引擎-DeepRec

    导读:DeepRec从2016年起深耕至今,支持了淘宝搜索.推荐.广告等核心业务,沉淀了大量优化的算子.图优化.Runtime优化.编译优化以及高性能分布式训练框架,在稀疏模型的训练方面有着优异性能的 ...

  2. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  3. 阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec

    简介:经历6年时间,在各团队的努力下,阿里巴巴集团大规模稀疏模型训练/预测引擎DeepRec正式对外开源,助力开发者提升稀疏模型训练性能和效果. 作者 | 烟秋 来源 | 阿里技术公众号 经历6年时间 ...

  4. TensorFlow 2.0 —— 模型训练

    目录 1.Keras版本模型训练 1.1 构造模型(顺序模型.函数式模型.子类模型) 1.2 模型训练:model.fit() 1.3 模型验证:model.evaluate() 1.4 模型预测:m ...

  5. TensorFlow2.0(五)--Keras构建Wide Deep模型

    Keras构建Wide & Deep模型 1. Wide & Deep模型简介 2. Keras实现Wide & Deep模型 2.1 导入相应的库 2.2 数据集加载与处理 ...

  6. TensorFlow2.0学习笔记-3.模型训练

    3.模型训练 3.1.Keras版本模型训练 • 构建模型(顺序模型.函数式模型.子类模型) • 模型训练: model.fit() • 模型验证: model.evaluate() • 模型预测:  ...

  7. Yolov5身份证检测——模型训练

    前言 系统环境是win10,显卡RTX3080;cuda10.2,cudnn7.1;OpenCV4.5;yolov5用的是5s的模型,2020年8月13日的发布v3.0这个版本; ncnn版本是202 ...

  8. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程

    R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录

  9. R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练、通过显著性进行变量筛选(删除相关性较强的变量)、构建多变量模型、转化为分类模型、模型评估

    R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练.通过显著性进行变量筛选(删除相关性较强的变量).构建多变量模型.转化为分类模型.模型评估 ...

最新文章

  1. 网站性能优化之应用程序缓存-初篇
  2. minAreaRect函数
  3. Postman批量跑接口
  4. Spring事务TransactionProxyFactoryBean属性-transactionAttributes的意义
  5. 在Eclipse中运行Nutch2.3
  6. 【转载】徐小平techCrunch演讲:创业者要找到跟你同生共死的伙伴!
  7. Upload-Labs(6-10)
  8. 手机端php mime设置,php,_如何使用MIME协议配合表单在iphone手机上下载文件?,php - phpStudy...
  9. 使用JNI加载JAVA虚拟机
  10. html如何转换成中文,html中文乱码怎么解决怎么造成如何避免中文乱码
  11. 神舟linux装win7教程,神舟战神G70装win7系统及bios设置教程(神舟G70台式机win10改win7)...
  12. vue模板解析——源码演示
  13. window office
  14. [2]rubyruby on rails入门笔记---Ruby中的异常
  15. Bert预训练新法则
  16. 【Uniapp框架】快速开发自己一款APP应用,如何将Uniapp项目快速打包成APP应用
  17. Android学习之——APP番茄工作法——小结(1)
  18. 【闲谈】杀人诛心谈马屁精搬椅子事件
  19. java poi解析excel_Java 利用POI 解析Excel
  20. 码绘——动态图形艺术自画像

热门文章

  1. 网易云信短信接口java,调用网易云短信验证码接口Demo
  2. 一个十分好用的桌面快速预览工具--QuickLook
  3. 考完研的人究竟有多无聊,家用路由器也能给折腾成Web服务器
  4. 海滩上有一堆桃子,五只猴子来分
  5. outlook如何设置定时发送邮件呢
  6. 洛谷 P1498 南蛮图腾
  7. 最小的语言符号是A词B语素C音素D义素,智慧职教: 下列选项中,定义全文索引的字段的数据类型必须是( )...
  8. h5学习笔记之表单类型与属性
  9. CVPR 2020 Modality Shifting Attention Network for Multi-modal Video Question Answering
  10. django+xadmin 在线教育网站(三)