使用 TensorFlow 预测产品重量和尺寸

2019 年 11 月 7 日 TensorFlow
客座博文 /  Rodolfo Bonnin, Mercado Libre 机器学习团队
Mercado Libre 是拉丁美洲领先的电子商务平台,每天都有上百万用户在该平台上进行数千万不同产品的交易。 从运输角度考虑,产品最重要的两项信息便是尺寸和重量,因为二者可用于估算配送费用以及物流中心的存储量。 作为用户驱动型市场,我们有时无法向用户提供此类信息,但我们发现可以通过预测尺寸和重量信息来优化我们现有的服务流程。

注:Mercado Libre 链接

https://www.mercadolibre.com/



简介

早期的产品提交页面无需提供尺寸或重量信息


Mercado Libre 属于综合的线上平台,其中的产品既可能是新款手机(重量介于 7 至 14 盎司,大小约为 5 x 5 x 2 英寸),也可能是重达 175 磅、大小为 24 x 24 x 35 英寸的二手洗碗机。


起初,我们实现了一种基于查询的预测方法:先过滤异常订单,然后根据过往订单中的产品尺寸确定尺寸和重量。这些数据源于我们的运营中心、转运流程以及第三方物流。当然,此方法适用范围较小(已测量过尺寸的产品占比较低)。


之后,在第二种方法中,我们根据单个产品特征(如类别和品牌/型号)的统计汇总构建简单模型,并使用产品相似性指标建立新产品到旧产品的映射。这种预测的准确率普遍较低,而且在许多情况下会因样本量不足而无法进行预测。


因此我们需要建立回归模型,以便通过产品名称、描述、类别和一些其他属性等信息推测产品的尺寸和重量。重要的是,这些属性既包括结构化数据,也包括非结构化数据,因此我们很难使用传统统计方法构建模型。该模型在 1 分钟内预测并保存 3000 个结果(一天 400 万次),其 API 每分钟响应 20 万次请求(一天 2.88 亿次,主要为预保存请求)。



数据和特征

当准备下一版预测方法时,我们在回顾商品清单发布流程后,确定模型的关键特征至少需包含:产品名称、产品描述(自由文本)、类别和品牌。当然,这些数据需经清洗和整理才能用于我们的项目。项目 ETL (抽取转化加载。即 Extract, Transform and Load)部分的软件栈基于 scipy、pandas、numpy 和 scikit-learn。在确定特征后,下面我们对数据进行矢量化。

模型的特征联合


为了对文本的两个主要特征进行编码,我们将所有字词转化为 token 并统一为小写格式。接下来,我们需要找到合适的矢量表示法。在项目的首次迭代中,我们决定通过使用关键字和 TF-idf 的方法进行实验(未来我们将探索使用 LSTM 的方法)。TF-idf 是一种向量化手段, 将其应用至文本数据, 便可把它们从转化了的token文档变换为矩阵。



关于模型

我们使用的模型是一个用 TensorFlow Keras 实现的多层感知机(TensorFlow 作为后端)。此外,通过对学习率、丢弃率、层数、内核数和内核大小执行网格搜索,我们找到了最优的模型结构和超参数(现在来看,随机搜索是一种更好的方法)。


至于损失函数,我们则通过多次实验来了解哪一种更为合适:

  • mean_squared_error 提供一种可过拟合异常值的测量方法,即便错误惩罚严重时也不例外。

  • mean_absolute_percentage_error 可以对小件产品与异常值进行很好的区分( 约有 50%的物品重量低于 1 kg)。

  • mean_absolute_error 适用于对所有产品类别进行大量常规优化。

不同损失函数类型的权重误差分布

神经网络模型的整体结构

(título 标题,descripción 产品描述, marca 品牌, otros 其他)



提供预测服务

目前,我们在产品提交页面和物流中心包装计算器使用了该模型,以便预测货架占用率,并在产品包装的最终阶段使用合适的包装。


现在, API 每分钟可提供 3000 次预测(即一天 400 万次预测)。对于配备 6 核 64G RAM 的实例(包含 13 个约 900MB 的  worker),此模型的推理时间为 30 毫秒。


以下是 JSON 响应示例:

 1{
2   “dimensions”: {
3       “height”: 9,
4       “length”: 30,
5       “weight”: 555,
6       “width”: 24
7   },
8   “source”: {
9      “identifier”: “MLM633066627”,
10      “origin”: “high_coverage”
11   }
12}

我们计划日后进行更多实验,以便提高模型质量,并根据物流中心提供的反馈优化预测结果。借助 TensorFlow,我们能够快速设计、迭代模型,并将其部署至生产环境。


致谢

  • Pymes 团队全体成员,尤其是 Mirko Panozzo、Conrado García Berrotarán、Kevin Clemoveki、Diego Piloni、Martín Ciruzzi 和 Esteban Tundidor。

  • 感谢 Francisco Ingham 在语法、样式和内容方面提供的帮助。

  • 感谢 Joaquin Verdinelli 帮助协调与 Google 的编校和沟通。

  • 感谢 Constanza Stahl 在图形方面提供的帮助。

  • 感谢 Cynthia Bustamante 帮助协调整个研究过程



更多案例:

(点击 “阅读原文“,提交案例,我们将尽快和你联系)



登录查看更多
0

相关内容

Google发布的第二代深度学习系统TensorFlow
斯坦福2020硬课《分布式算法与优化》
专知会员服务
121+阅读 · 2020年5月6日
自回归模型:PixelCNN
专知会员服务
27+阅读 · 2020年3月21日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
57+阅读 · 2020年3月6日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
83+阅读 · 2020年1月13日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
推荐 :一文带你读懂特征工程
数据分析
16+阅读 · 2018年8月26日
独家 | 一文带你读懂特征工程!
数据派THU
6+阅读 · 2018年8月23日
快使用TensorFlow,哼哼哈嘿
图灵教育
5+阅读 · 2018年3月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
52 个有用的机器学习与预测API
北京思腾合力科技有限公司
3+阅读 · 2017年10月26日
如何用TensorFlow预测时间序列:TFTS库详细教程
人工智能头条
9+阅读 · 2017年8月30日
Arxiv
5+阅读 · 2020年3月16日
Position-aware Graph Neural Networks
Arxiv
15+阅读 · 2019年6月11日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
12+阅读 · 2018年1月28日
Arxiv
5+阅读 · 2017年11月13日
VIP会员
相关资讯
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
推荐 :一文带你读懂特征工程
数据分析
16+阅读 · 2018年8月26日
独家 | 一文带你读懂特征工程!
数据派THU
6+阅读 · 2018年8月23日
快使用TensorFlow,哼哼哈嘿
图灵教育
5+阅读 · 2018年3月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
52 个有用的机器学习与预测API
北京思腾合力科技有限公司
3+阅读 · 2017年10月26日
如何用TensorFlow预测时间序列:TFTS库详细教程
人工智能头条
9+阅读 · 2017年8月30日
Top
微信扫码咨询专知VIP会员