AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

京东 618:机器学习与商品数据挖掘和知识抽取

  • 2017-06-17
  • 本文字数:3698 字

    阅读完需:约 12 分钟

ArchSummit 全球架构师峰会深圳站将于 2017 年 7 月 7 日~8 日在深圳·华侨城洲际酒店召开,大会设置了相关专题来深入解读电商大促背后的技术故事,大会还邀请了 eBay、WalmartLabs 等国外顶尖技术专家,分享 AI 促销、搜索引擎、异地多活、库存物流等核心架构实践。

近年来人工智能成为了科技的热潮,AlphaGo 的卓越战绩、各大科技公司蜂拥进入自动驾驶领域等消息吸引着民众的目光。但其实严格意义上这些工作统一归属于同一个学科——机器学习。

人工智能的目的是教会计算机完成现在人类做得更好的事,而机器学习可以说就是其中最重要的事情,因为它是实现人工智能的一种方法。没有学习,计算机就永远无法跟上人类的步伐;有了学习,一切都与时俱进。目前机器学习成为了一个巨大的中心,通过这个中心,多个领域里积累的经验被建模,从而获得更为快捷广泛的应用。

深度学习则是一种实现机器学习的技术。其基础人工神经网络是早期机器学习中一个重要的算法,最初受到人类大脑生理结构中互相交叉的神经元启发。随着无数科研工作者的投入,目前人工神经网络已经可以达到一个极高的层数和亿万计数的神经元,在某些领域做得比人类更好,例如围棋领域。

作为国内最大的自营电商,京东也积极应用深度学习技术在各个业务线,优化用户体验。本文将着重介绍京东如何运用深度学习技术去优化商品数据,构建智能的商品生态来提升多业务用户体验。

京东商品基础数据主要由自营品牌录入,第三方商家录入,用户反馈组成。这些数据直接被多个核心业务所使用。因此如何利用机器学习技术去保障这庞大的涉及数亿商品的海量数据质量尤为关键。

同时商品工业属性的主要组成部分:标题、图片、销售属性、扩展属性、类目。但是由于各种各样的因素,例如:抢占搜索命中的几率,商品上架的随意性等。商品数据存在商品类目错误绑定、图片与文本属性不一致、商品标题短语堆砌等各类问题。

为了实现对于商品数据的理解和修正,京东机器学习团队做了很多工作。下面将从信息合规、商品图文不一致校验、商品类目自动识别、电商标题理解、评论知识抽取来描述这一过程。

信息合规

目前京东每天图片增量约为 5000w 张,而文本信息增量也以 PB 计算。海量的数据难免有一些违规信息,技术专家利用机器学习算法,训练了色情图片检测模型,价格 OCR 识别模型,违禁词语义理解模型,自适应二维码检测模型等实现实时的信息合规。

之前,诈骗分子利用京东图片系统上传图片的功能,上传含有非法链接的二维码图片,诱导用户转账及骗取用户账号及密码信息,给用户带来财产上的损失。利用自适应的二维码识别技术在用户上传图片的时候进行检测,不仅能识别图片中是否包含二维码、条形码,还对二维码指向的链接进行分析,筛选出高危图片,屏蔽上传。识别准确率达到 99.9%,即使如图所示的二维码只占图片很小的比例也能精确识别。

在电商,商品促销具备高时效性,如何保证促销信息与商品实时价格真实匹配,提升用户体验是一个难题。实际过程中,许多商家经常只修改了单品页价格,而忘记对店铺页上海报的商品价格进行修改,这就造成了店铺页价格和单品页价格不一致的情况,直接影响到了用户体验。

京东基于深度学习的价格合规检测,在商品价格变更的时候,自动对店铺页宣传图片进行理解,检测其中是否包含活动价格,并对价格进行识别,并与单品页价格对比,如果不一致,实时自动下架该店铺活动页的促销活动,整个过程在秒级完成。在算法上,通过不断的迭代优化,实现了端到端的价格数字串识别系统,能够避免传统方法单独字符分割过程中引入的错误,即使在压缩失真、复杂背景干扰等情形下,也能够达到很高的检测精度。

图文不一致校验

图文不一致性是由于商品图片与商品文字描述的不一致导致的,这可能是由于图片和某一个或者多个文本属性冲突导致。这表明商品的基础数据存在错误,通常情况下会导致搜索的错误,影响用户的体验。

举一个简单的例子,当我们在京东购物,搜索 “男士 polo 衫 纯色”时,由于一些商品错误的文本信息导致该商品错误的被搜索命中,呈现给消费者。

上图中最右下角的格纹衬衫的扩展属性为纯色。该属性明显与商品图片不一致,错误的数据降低了搜索的准确率,但是增加了商品的曝光率。为此,我们通过自然语言理解和图片识别技术来检测图文不一致现象,对错误数据进行修正和通知商家修改。

高精度的图像识别技术,从商品图片中识别商品主体并抽取商品的特征,为文本属性修正提供高置信度的参照。以衣服的颜色为例,描述衣服颜色的名词数不胜数,以红色为例,就有绯红、桃红、品红、鲜红等等。利用分词抽取,我们获取了近万个颜色字段。

很多颜色的区分度极小,即便肉眼也很难区分,对训练数据的收集带来了很大的困扰。同时由于光照拍摄的问题,如此细分的分类对训练的结果也不一定有益。为此,我们首先对于颜色属性进行归一化,划分出不到 20 个色系,其余的属性也按照类似方法进行归一化。在准备好训练数据后,我们采用了 52 层 resnet 残差网络的 finetuning 实现了多种图片特征 95%+ 的准备率模型。后续,我们会加入我们自己的卷积网络特征去提供准确率。

电商短文本理解 - 商品标题理解

商品的标题由采销人员和第三方商家命名,其中自营商品的命名较为规范。商家命名时,有些标题除了有文本描述矛盾外,还出现了大量词汇堆砌的情况。

从图上可以看到,一个跑步鞋商品的标题上“鞋”出现了 6 次。商家如此命名是为了增加搜索、推荐等系统命中率。然而实际情况上,搜索会对于此类词汇堆砌严重的标题进行降权,使得出现在搜索结果的末端。

为了解决此类问题,提升用户对于标题的信息获取的有效性,我们利用机器学习技术对商品标题进行一系列的处理:分词、实体识别、属性打标、热度计算、中心判定,将商品标题结构化。日后商家录入标题我们会利用模型结构化标题进行打分,对于此类词汇堆砌严重的标题进行结构优化,从源头上优化商品标题质量。

商品类目自动识别

每个电商网站都自己的商品类目定义,同时部分类目在发展过程中的拆分合并使得商品存在类目错绑问题。目前京东有众多的商品三级工业分类,对于商家上架商品选择类目也是一个难题。

由于搜索、推荐、列表页等核心业务线都调用了商品的类目属性数据,为了降低类目错绑对核心业务的影响,优化商家上架商品的体验,我们对 word2vec 的 CBOW 模型进行了创新型改造,构建了 BTC 模型,并加入了 Dropout 层,改造后的模型有效避免了训练过程中的过拟合问题,训练精确度明显提升。模型可根据商家录入的标题,自动推荐所属分类,达到了简化商家上传商品目的同时减轻类目监管的压力,使得运营越来越智能化。模型架构如下图:

在多次迭代之后我们获得了 99% 准确率的预测模型,应用方式如下,比如提交:

标题:leandhome 家纺单品被套天鹅绒保暖被罩

返回 “13818 被套”。

整个类目预测流程如下:

评论信息抽取

商城与用户的交互对于商品的反馈是商品数据的一个重要补充。用户的反馈主要包含商品评论,问答,退换货等信息。京东的理念是客户为先,因此我们对于用户的反馈极为重视。这些信息可以直观的展现用户对于商品的感受和质量的反馈。我们为此构建了多类语义理解模型,利用用户反馈,实现选品、商品质控等。下面我们选择评论的信息抽取着重介绍。

用户在购买商品时,之前用户的评论对用户的购买意愿有极强的影响力。但是在用户海量的评论中存在大量的无意义评论,这就影响到用户获取有效的信息。为此我们通过语言模型,对评论语句打分,将没有实质意义的评论折叠在评论最后。

此外我们会从评论中抽取关键词短语,通过对于短语与短语之间相似度的计算,聚合出出现频次最高的短语及相应的评论内容,展现给用户。此外我们还会分析用户评论的情感,真实展现负向情感关键词,给用户获得一个直观的产品描述,诚信对待消费者。

我们采用了无监督与有监督结合的方式构建关键词抽取模型, 在模型设计中,首先考虑到单独的词汇表达能力有限,不能满足业务需求,比如“声音”、“颜色”、“外观设计”等,而我们更需要的是,“声音大”,“颜色艳丽”,“外观设计时尚大方”等,所以采用了短语向量训练。然后根据业务其他需求加入了语言模型,情感模型,功能词模型等,最终取得不错的成果。我们的模型实现了定期自动更新。

模型会自动把你提交的评论做以上相关分析与处理,返回对应 top 关键词。结果示例:

结语:构建高可用商品知识图谱,营造智慧商家生态

在对商品数据各个维度(标题、销售属性、扩展属性、评论、问答等)完成数据校验和知识抽取的工作,我们利用这些丰富的商品信息构建了一个商品的知识库供核心业务去调用,解除了原有业务系统上的数据枷锁。同时自然语言理解算法模型被封装成一个一个服务去规范商品录入的过程,引导商家健康运营,共同打造良好的商家生态。

作者介绍

刘海锋,京东商城总架构师,基础平台负责人。历任京东第一届架构委员会主任、2016 年京东 6.18 和 11.11 大促技术执行总指挥之一。在京东,刘海锋领导团队持续建设容器集群、中间件、数据库、图片系统、分布式存储、机器学习、应用架构与运维等技术方向。在其带领下,京东商城研发体系基础平台部专注于技术服务建设,自主研发了一系列核心系统并大规模应用至生产环境 ,有力驱动了京东业务发展。

2017-06-17 20:304303

评论

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

《effective-go》 学习笔记

Geek_4z9ami

Go 语言

关于微服务架构思考

Axe

我是如何参与硅谷顶级开源项目并赚得2500美金

阿水

硅谷 Minio

字符串匹配 - Sunday算法

Geek_4z9ami

数据结构与算法 字符串匹配算法

learn go with tests 学习笔记(六)进程同步

Geek_4z9ami

Go 语言

数据采集能力受限?企业数字化运营如何迈出第1步

易观大数据

Java项目如何分层

老胡爱分享

分层架构 项目

政策加持迎来区块链技术应用“红利期”

CECBC

Python爬取微信公众号文章保存到数据库

wjchenge

话题讨论 | 特朗普正式封禁微信,iPhone 和微信二选一?

InfoQ写作社区官方

写作平台 话题讨论

Executor看不懂?教你如何盘它

Edison

后端 线程池

以区块链为基础 通证经济是下一代互联网的数字经济

CECBC

区块链 落地应用

learn go with tests 学习笔记(二) 数组与切片

Geek_4z9ami

Go 语言

learn go with tests 学习笔记(七)反射

Geek_4z9ami

反射 Go 语言

500行代码写一个俄罗斯方块游戏

程序员生活志

消息疯狂堆积!RocketMQ出Bug了?

Edison

RocketMQ 中间件

RocketMQ源码解析-开篇

Edison

RocketMQ 中间件

人生修炼秘籍

xiaoboey

时间管理 人生修炼 知行合一 熵增 时间复利

零代码/无代码 vs 低代码 如何分类?如何区别?到底有什么不同?分析超过20款零代码低代码产品

代码制造者

编程 低代码 行业资讯 零代码

疫情之年 下半年区块链应用落地会加速么?

CECBC

区块链 场景应用落地

MySQL事物-学习笔记

Edison

MySQL 数据库 数据库事务

nested exception is java.lang.IllegalStateException: refreshAfterWrite requires a LoadingCache异常解决

谙忆

learn go with tests 学习笔记(三) 指针和错误

Geek_4z9ami

Go 语言

learn go with tests 学习笔记(四)依赖注入

Geek_4z9ami

Go 语言

用户体验(UX)设计≠用户界面(UI)设计

刘华Kenneth

敏捷 设计 UX 用户体验

企业网站搭建避坑指南

姜奋斗

网站 新手指南 企业 网站搭建 避坑

learn go with tests 学习笔记(五)并发

Geek_4z9ami

Go 语言

“啰嗦”是成事唯一正确的方法

霍太稳@极客邦科技

团队管理 个人成长 团队协作 沟通

Web 开发必须掌握的三个技术:Token、Cookie、Session

华为云开发者联盟

HTTP Token web开发 session Cookie

learn go with tests 学习笔记(一) hello world

Geek_4z9ami

Go 语言

Netty之旅:你想要的NIO知识点,这里都有!

一枝花算不算浪漫

Netty nio

京东618:机器学习与商品数据挖掘和知识抽取_语言 & 开发_刘海锋_InfoQ精选文章