写点什么

京东 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:304352

评论

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

Elasticsearch 可搜索快照技术原理及最佳实践

腾讯云大数据

Elastic Search

28《重学JAVA》--注解

杨鹏Geek

Java25周年 28天写作 12月日更

从翻硬币游戏看敏捷开发

华为云开发者联盟

敏捷 敏捷开发 软件开发 团队 开发

走访数年,编撰3年:你能看到的互联网企业案例最多的一本书

博文视点Broadview

价值

搬砖的周狮傅

价值观

架构实战营 第 4 期 模块三作业

架构实战营 模块三 构架 「架构实战营」

我的2021之感谢有你们(上篇)

坚果

年终总结 28天写作 12月日更 盘点2021

持续集成背后的思考

夏兮。

ci 方法论 持续集成 jenkins

seata入门介绍与seata-service部署与验证(一)

恒生LIGHT云社区

架构 分布式 seata

给弟弟的信第27封|学会说不,别让面子害了你

大菠萝

28天写作

SRE实战(03)|Clickhouse在好大夫服务治理中应用

方勇(gopher)

大数据 APM Clickhouse 构架

知识回顾:抽象类与抽象方法

喵叔

28天写作 12月日更

低代码行业浅析

凹凸实验室

前端 低代码

【CSS 学习总结】第八篇 - CSS 布局-居中布局-垂直居中布局

Brave

CSS 12月日更

Golang的通道基础(一)

liuzhen007

28天写作 Go 语言 12月日更

27《重学JAVA》--反射

杨鹏Geek

Java 25 周年 28天写作 12月日更

LabVIEW机器视觉系统图像畸变、校准和矫正(基础篇—3)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 系统图像畸变、校准和矫正

netty系列之:好马配好鞍,为channel选择配套的selector

程序那些事

Java Netty 程序那些事 12月日更

HarmonyOS(鸿蒙)——启动流程

李子捌

鸿蒙 28天写作 21天挑战 12月日更

年终加薪

张老蔫

28天写作

Flink 实践教程-进阶(5):排序(乱序调整)

腾讯云大数据

流计算 Oceanus

Java序列化与反序列化

编程江湖

AI实战分享 | 基于CANN的辅助驾驶应用案例

华为云开发者联盟

目标检测算法 CANN 昇腾 辅助驾驶 AscendCL

消极自由 与 积极自由

mtfelix

28天写作

SRE02|管中窥豹,微服务可用性监控之道

方勇(gopher)

微服务 SRE 微服务治理 构架

如何监控测量你的代码

耳东@Erdong

监控 Prometheus

流计算 Oceanus | 巧用 Flink 构建高性能 ClickHouse 实时数仓

腾讯云大数据

flink Clickhouse 流计算 Oceanus

资料分享|kafka学习推荐书籍

Kafka中文社区

怎么组织一场活动

圣迪

活动 SOP

目标加个零(28/28)

赵新龙

28天写作

Golang的通道入门(二)

liuzhen007

go语言 28天写作 12月日更

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