11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

0.2 秒计算 680 亿条路径,揭秘京东 CV/NLP 在智慧零售领域的探索与实践

  • 2019-07-31
  • 本文字数:6013 字

    阅读完需:约 20 分钟

0.2秒计算680亿条路径,揭秘京东CV/NLP在智慧零售领域的探索与实践

人工智能发展至今,已经成为新一轮科技革命的核心动力。过去的 AI 技术驱动重在算法模型的比拼,如今则更依赖场景化的技术实践与应用落地。


京东作为全球最大零售商之一,涵盖线上、线下实体、虚拟等多元化交易场景。目前京东每日产生相关日志和内容已经达到 PB 级,通过算法的驱动,将这些海量数据与自然语言处理和计算机视觉技术相结合,为多场景的用户体验和交易提升带来巨大改善。


2019 年 7 月 20 日,“云中生智,智创未来——京东人工智能技术应用实践”京东云开发者社区技术沙龙在北京举办,来自京东的四位技术专家为参会者带来了一场知识盛宴,他们是:


京东 AI 事业部视觉研发部内容零售组负责人 王林芳


京东 IoT 事业部高级算法架构师 石海龙


京东 AI 事业部语音语义及对话研发部语音合成组负责人 张政臣


京东 X 事业部无人仓产品研发部负责人 刘旭


本期沙龙以计算机视觉、语音合成、NLP 等技术为基础,京东云+ AI 在智慧零售、智能物流等领域的应用;揭秘京东无人仓如何利用 AI 指导分拣、识别等一系列生产活动;语音合成技术如何服务于京东内部场景和外部用户以及计算机视觉在智慧零售的实践。此外,我们的讲师还在现场带领开发者深入学习 NLP 模型算法,提供优质的实战经验与解决方案。


见微知著,计算机视觉之细粒度图像识别

众所周知,商品识别技术被认为是线上、线下智能零售的重要基础。然而,商品数目繁多、不同类别外观混淆度高,如何让机器识别趋近乃至超过人眼判定的精准度?这是许多计算机视觉科学家们一直致力解决的问题。在计算机视觉技术(以下简称为“CV”)研究中有个专门的研究方向“细粒度图像识别”(Fine-Grained Object Recognition)。


相比于传统的图像识别或分类任务,细粒度图像识别是对某一大类的不同小类进行类别的判断,例如不同型号的飞机,不同型号的车辆,不同的鸟类等。由于需要判别的类别都属于一个大类,使得分类难度大大提升,很多类别之间的差异凭借全局的特征信息已经很难判断,所以细粒度的图像识别算法往往偏向于关注图像的细节信息,需要网络能够依据细节进行类别的判断。


目前主流的细粒度识别方法主要分为两种。一种是基于检测的方法,包括关键区域检测和关键点检测。这种方法通过对关键区域特征的提取或者对关键区域进行类别的判断来提高分类的准确度。但是这类方法大多需要使用额外的关键区域的标注信息,并且添加相应的检测网络。另外一种是基于注意力的方法,相比于基于检测的方法,这类方法往往不需要额外的标注,但是在实际使用时,需要注意力网络的辅助,使得细粒度的图像分类网络相比于传统的分类网络需要更多的计算开销。


基于对细粒度图像识别本质的分析,京东 AI 提出了基于打乱和重构的细粒度识别方法(Destruction and Construction Learninng),简称 DCL,如图所示。



首先,为了增加网络对于细节特征的表达能力,京东 AI 事业部将原始的图像区域进行打乱,然后同时将原始图像和“打乱”后的图像输入网络进行训练。这样,原先全局的结构信息将不复存在,如果要同时同时识别原始图像和“打乱后”的图像,网络只能依据更为细节的特征。但是打乱带来了两个问题,一个是打乱带来的区域边缘的噪声,这将对网络性能带来负面的影响;另外一个是全局信息的丢失,虽然细粒度识别任务中存在大量只能依据细节判断类别的样本,但是还是存在外貌差异较大的样本,比如麻雀和海鸥,所以不能让这个信息完全丢失。为了解决这两个问题,京东 AI 分别使用了对抗学习和重构网络。对抗网络的作用是帮助网络判别由于打乱带来的边缘噪声。观察打乱前后的图片,其中最明显的差异是打乱的图片会存在大量的边缘跳变,通过使用一个二分类来对打乱前后的图片进行识别,可有效降低对于边缘噪声的关注度。重构网络作用于特征图,首先对特征图进行降维,然后通过一系列数学变换将其转变为一个位置矩阵,矩阵上每一个节点包含两个值,分别表示网络预测的该区域在原图之中的位置,基于该预测结果和真实的位置扰乱情况计算位置重构损失。


在整体的网络训练时,通过同时考虑分类损失、对抗损失和位置重构损失,使得 backbone 网络既能关注局部细节,又能有效对抗边缘噪声,同时又能一定程度的保留全局信息,从而获得较好的细粒度特征表达能力。


该方法在训练时不依赖额外标注信息(如特定位置标注),在测试时不增加额外的计算开销即可显著提升分类准确率,同时增加参数量仅为 ResNet50 的 0.034%,即在新增加非常少量参数的情况下就可以较大提升分类模型性能,可以有效应用到包括 ResNet,ResNeXT, SENet,VGGNet 在内的多种主流分类模型。该方法在 CUB-200-2011,Stanford Cars,FGVC-Aircraft 等几个主要的细粒度图像识别数据集上都取得了领先的指标。同时这个算法有非常好的推广性,在不同的数据集上都有非常好的性能,在今年 CVPR 的 iMat Challenge(商品识别)、Fieldguide Challenge(蝴蝶和飞蛾识别)比赛中均取得第一名的成绩。目前,这项技术已经应用于京东菜品识别、商品识别、人员的身份识别、时尚标签识别等场景中。相关代码也已开源在 [1] https://github.com/JDAI-CV/DCL


语音识别交互技术原理及优化方法

通常来说,一个传统的对话系统由五个主要部分组成:


  • 语音识别(ASR)将原始的语音信号转换成文本信息;

  • 自然语言理解(NLU)将识别出来的文本信息转换为机器可以理解的语义表示;

  • 对话管理(DM)基于对话的状态判断系统应该采取什么动作,这里的动作可以理解为机器需要表达什么意思;

  • 自然语言生成(NLG)将系统动作转变成自然语言文本;

  • 语音合成(TTS)将自然语言文本变成语音输出给用户。


上图所示为语音交互系统的整体流程。图中分别为刚刚介绍的对话系统中的五个模块。这个架构图能更清晰地看到每个模块的输入输出,以及各模块之间的协作关系。


其中,NLU 是非常重要的模块之一。NLU 的目标是将文本信息转换为可被机器处理的语义表示。其涵盖领域非常广泛,包括句子检测,分词,词性标注,句法分析,文本分类/聚类,文字角度,信息抽取/自动摘要,机器翻译,自动问答,文本生成等多个领域。NLU 有三个基本功能,即领域分类和意图识别、槽填充。


业界实现 NLU 的一种基础做法是将基本分类和意图分类两个模型组合起来。常规的优化方法包括 Single-Label 和 Multi-Label。在工业界最常用的是 Single-Label,但其实 Multi-Label 是相对来说更合适的做法。同时还包括 Multi-model、Multi-Cast、Big-model 与 Small-model。


目前,基于 RNN 的深度学习模型在意图识别和槽位填充领域得到了大量的应用, [2] 《Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling》中介绍了使用 Attention-Based RNN 模型进行意图识别和槽位填充的方法,作者提出将“alignment information”加入 Encoder-Decoder 模型,以及将“alignment information”和“attention”加入 RNN 这两种解决槽位填充和意图识别问题的模型。


实体抽取则可以描述成一个序列标注问题,输入是文本特征,输出是每个词或每个字属于实体的概率。传统的机器学习模型,如 HMM、CRF 都可以用来解决该问题。如果数据量够大,也可以使用基于神经网络的方法来做意图识别和实体抽取,通常可以取得更好的效果。


和基于规则的 NLU 相比,基于统计的方法完全靠数据驱动,数据越多效果越好,同时模型也更加健壮。缺点是需要训练数据,尤其是如果使用深度学习,需要大量的数据。在实践中,京东将这两种方法通常结合起来使用:1)没有数据的时候先基于规则,有数据了逐渐转为统计模型;2)基于统计的方法覆盖绝大多数场景,在一些极端的场景下用基于规则的方法来保证效果。


人类对话与对话系统一个重要区别是它是否与现实相结合。结合外部知识库是一种有可能弥补对话系统与人类之间背景知识差距的方法。


常用的深度学习模型引入知识有三种方法:第一种是将文本向量和知识向量拼接到一起然后做分类;第二种是将知识向量通过门控控制文本向量的输出;第三种是将前两种方法结合,不仅用门控引入文本向量,同时引入知识向量。基于此,根据数据的不同,京东 IOT 做了不同的尝试。例如在 Memory Network 方面,京东 IOT 将普通的文本向量直接做预测输出,将(B)与向量相乘形成一个权重,通过权重加权求和引入知识。


除此之外,京东 IOT 利用“召回+排序”的方法,包括文本召回、语义召回以及 ANN 召回,以及基于表达和和基于交互的排序,增强面向大规模文本库纠错系统/文本匹配的性能。


深度学习用于语音合成

语音合成,又称文语转换(Text To Speech,TTS),是一种可以将任意输入文本转换成相应语音的技术。


一个文本转语音的合成系统通常包含三个处理阶段,即文本处理、声学参数预测和声码器。文本处理包括归一化、分词、多音字等;声学参数预测将文本特征转换成声学特征;声码器则是把声学特征返合成声音。



文本处理将输入的文本转换成细粒度的文本特征。它包括文本归一化、分词、词性标注、Grapheme to Phoneme(G2P)和多音字处理等环节。其中,文本归一化解决了文本中的词例还原及汉语文本同形异义词的排歧等问题;分词将汉语文本切成一个个词语;词性标注会是注明每个词是名词、动词或者形容词等,有助于获取哪里是重音、哪里需要停顿等韵律信息;G2P 则是将汉字变为拼音的过程,其中包括对多音字的处理。通过以上方法提取文本特征,将文本变成一个由文本特征组成的序列。


声学参数预测建立了从文本特征到声学特征的映射。前几年,业内普遍使用“时长模型+声学模型”的方法预测声学参数。随着技术的发展,特别是 Sequence-to-Sequence 模型的出现,使得预测声学模型的技术发生了较大的变革。Sequence-to-Sequence 是学习序列到序列的模型,在机器翻译(NMT)等领域应用广泛。


Tacotron 模型即是在 Sequence-to-Sequence 基础之上发展出来的。Tacotron 目前推出了两代,Tacotron2 是最近主流的一个模型,它对输入要求很低,只需要输入音素序列,即可输出 Mel-Spectrum 序列。结合 WaveNet 声码器,即可合成出高质量的声音。虽然 Tacotron 声称是端到端的语音合成系统,但是我们看到如果没有文本归一化的处理,输入任意字符,合成正确的声音还是比较困难的。下图是 Tacotron2 的系统结构,来源于 [3] 《NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MELSPECTROGRAMPREDICTIONS》



声码器的作用是提取语音信号的特征参量并且有能力恢复出原始语音。业界比较著名的声码器包括 STRAIGHT 和 WORLD 等。此外,近年来出现的基于神经网络的声码器也可以取得较高的重构语音质量,比如 WaveNet,LPCNet 等。


京东的语音合成技术已经在京东读书,京东京鱼座 AI 音箱等产品落地。结合语音识别,语义理解等技术,京东的语音合成技术也已经在客服这个更加复杂的场景落地。今年,京东上线了语音智能客服机器人和物流外呼机器人等项目。语音智能客服机器人在 6 月 18 日当天接待超过两万人次,为用户提供智能语音应答服务,针对性的缓解了顾客电话咨询排队现象。


结合京东在零售方面的优势,京东人工智能事业部推出了全链路、跨行业的通用对话技术平台。全链路是指在售前、售中、售后的任何环节,通过任何咨询渠道,通用对话技术平台都可以帮助商家提供更好的服务。在接到客户的咨询后,机器人会首先接待,如果不成功就会转人工客服。人工客服在接待的过程中,通用对话技术平台会对前面的交流进行自动总结,自动将用户的信息查询出来,并且生成用户信息小结,甚至可以帮助生成回复的答案。在接待结束后,会帮助商家检查客服质量,沉淀数据用于对话机器人的再训练等等。目前,京东智能客服已经在商务部、华西医院等政务、医疗行业落地。


AI 在无人仓中的应用实践

在电商领域,由于商品库存数量巨大,订单碎片化,且配送需求多种多样等特点,仓库物流作业难度较其他场景更加复杂,建设无人仓难度非常大。因此,尽管无人化是自动化仓储物流系统的发展方向和目标,但长期以来仅仅停留在概念阶段。但是,京东让这一理想变成现实,实现业内首个全流程无人仓,覆盖货物入库、存储、包装、分拣的全流程无人化作业,该无人仓在“618”期间经受住了海量订单的检验,大幅提升了作业效率及准确率。


无人仓系统支撑了京东物流中小件、大件、冷链、B2B、跨境业务的仓储运营及众包,目前已建设 600 个仓库,服务人数超过 500 万,拥有 20 多座“亚洲一号”,其系统围绕着仓库、货主、商品、库存、单据组成了入库、在库、出库众多形态的业务作业模式。


下图为无人仓系统的整体架构:



最底层是云平台和物联网平台,系统都在京东云平台上运营,物联网平台则传感器、传感网络等;其次是设备控制层,包含各种设备;再往上是调度层,是核心的一层,无人仓的效率主要是调度层;最上面是常规的业务系统,比如说制造业、流通领域、教育行业。


从无人仓的作业流程来看,核心技术主要包括自动存储、混合码垛、视觉检验、自动拣货与分类等。例如,在货物入库、打包等环节,京东无人仓配备了 3 种不同型号的六轴机械臂,应用在入库装箱、拣货、混合码垛、分拣机器人供包 4 个场景下;另外在分拣场景中,京东引进了 3 种不同型号的智能搬运机器人执行搬运任务,包括天狼智能存储系统,地狼货到人系统,AGV“小红人”分拣系统等,可以覆盖仓内作业的绝大部分场景。


除此之外,京东使用了 2D 视觉识别、3D 视觉识别、以及由视觉技术与红外测距组成的 2.5D 视觉技术,打造了“物流视觉智能中心”平台,记录数据,为这些智能机器人安装了“眼睛”,实现了机器与环境的主动交互。目前,该平台可以完成 IoT 集中化、数据管理集中化、计算资源集中化。



基于“物流视觉智能中心”平台,在软件方面,京东物流自主研发了能操控全局的智能控制系统——“仓储大脑”,从仓储到拣货、打包,再到分拣、出仓,所有环节的无人化操作都由“仓储大脑”自主决策与指挥。例如,在上海“亚洲一号”全流程无人仓内,智能大脑能在 0.2 秒内计算出 300 多个机器人的 680 亿条可运行路径,并做出最佳选择。


人工智能算法是无人仓技术的核心,更是京东的优势所在,其在仓储过程的各个环节中助力作业效率的大幅提升。例如,利用算法自动推荐最适合商品的存储货位;平衡拣选区和仓储区的库存量分布,并决定最适合被拣选的货位和库存数量等。而在移动机器人得到大规模应用的无人仓中,京东在算法上的优势更是得到了充分的展示,如机器人调度及路径规划算法等。


当下,京东云作为京东集团各项技术能力的重要输出窗口,正以全新的视角为合作伙伴提供开放、赋能的平台,并开放 23 个 AI 接口,秉承合作共赢的态度,与开发者一起,携手迈向 AI 新未来,点击链接即可 0 元试用京东 AI 接口,获取 PPT 请关注京东云开发者社区


参考资料

[1] https://github.com/JDAI-CV/DCL


[2]《Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling》


[3]《NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MEL SPECTROGRAMPREDICTIONS》https://arxiv.org/pdf/1712.05884.pdf


2019-07-31 12:216059
用户头像
孙春鹭 InfoQ 编辑

发布了 27 篇内容, 共 99450 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

跳槽入职字节跳动,给到20k*16薪,只因比别人更懂多线程与高并发

Java-fenn

Java 程序员 面试 java面试 Java面试题

干货 | 应用打包还是测试团队老大难问题?

测吧(北京)科技有限公司

测试

名列前茅!亚信科技AntDB入围工信部电信行业数据库场景榜单

亚信AntDB数据库

AntDB AntDB数据库

大数据平台 CDP 中如何配置 hive 作业的 YARN 队列以确保SLA?

明哥的IT随笔

hadoop spark hive YARN CDP

区块链公排互助合约模式系统开发方案

l8l259l3365

阿里官方保姆级Java技术图谱发布,够学到元宵节了,赶紧收藏

Java-fenn

Java 程序员 技术 java面试 Java面经

解密数字时代 AI 加持之道,网易智企联合机器之心发布 AI 应用实践白皮书

网易云信

人工智能 音视频技术

蚂蚁智能容量团队推出 TMaestro 智能参数调节产品

TRaaS

产品 互联网技术

数据中台必备的4个核心能力

阿泽🧸

数据中台 9月月更

干货 | 环境问题还是测试的老大难?两个步骤轻松搞定

测吧(北京)科技有限公司

测试

2022前端面试遇到的手写题总结

helloworld1024fd

JavaScript 前端

阿里巴巴高并发架构到底多牛逼?是如何抗住淘宝双11亿级并发量?

Java-fenn

Java 编程 程序员 面试

MASA MAUI Plugin 安卓蓝牙低功耗(二)蓝牙通讯

MASA技术团队

blazor MASA MAUI Xamarin MASA Blazor

肝完Alibaba这份面试通关宝典,今年的offer我拿手软了

Java-fenn

Java 程序员 面试 java面试 java;

【荣耀帐号服务】手把手教你快速web接入

荣耀开发者服务平台

前端 Web 服务器 安卓 honor

干货 | 原来升职加薪的测试工程师都擅长做接口测试

测吧(北京)科技有限公司

测试

分享面试阿里、京东、网易等大厂后的面经及面试心得—远程面试

Java-fenn

Java 程序员 技术 面试 java面试

干货 | 精准化测试原理简介与实践探索

测吧(北京)科技有限公司

测试

金三银四面试总结篇,汇总2022Java面试突击班后的面试小册

Java-fenn

Java 程序员 面试 java面试 java;

行业规模将达百亿,低代码是 “银弹” 还是 “鸡肋”?

SoFlu软件机器人

工作一年之后,这6个技术栈可以让你平均涨薪50%(涨薪篇)

Java-fenn

Java 编程 程序员 面试 java面试

两年工作经验,三面拼多多,最终获得offer!(面经总结)

Java-fenn

Java 编程 程序员 面试 java面试

阿里云物联网平台架构

阿里云AIoT

大数据 物联网平台 IoT 平台架构 设备管理

【喜讯】亚信安慧通过CMMI5级认证

亚信AntDB数据库

AntDB AntDB数据库

史上最详细的一线大厂Mysql面试题详解

小小怪下士

MySQL 面试 java面试

干货 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink

测吧(北京)科技有限公司

测试

干货 | 移动端App自动化之App控件定位

测吧(北京)科技有限公司

测试

2023第十五届上海国际软件博览会

AIOTE智博会

上海软博会 软件博览会 软件展会 软件展

死熬三天三夜,阿里高工码出Java150K字面试宝典,却遭Github全面封杀

Java-fenn

Java 编程 面试 java面试 java;

程序员该敬畏每一行代码?填好每一个坑才是!

小小怪下士

程序员 架构 java;

MobTech 短信验证 Unity插件

MobTech袤博科技

ios android 短信验证

0.2秒计算680亿条路径,揭秘京东CV/NLP在智慧零售领域的探索与实践_AI_孙春鹭_InfoQ精选文章