​导读:高德地图拥有几千万的POI兴趣点,例如大厦、底商、学校等数据,而且每天不断有新的POI出现。为了维持POI数据的鲜度,高德会通过大量的数据采集来覆盖和更新。现实中POI名称复杂,多变,同时,名称制作工艺要求严格,通过人工来制作POI名称,需要花费大量的人力成本。

因此,POI名称的自动生成就显得格外重要,而机器对商户挂牌的语义理解又是其中关键的一环。本文主要介绍相关技术方案在高德的实践和业务效果。

一、背景
现实世界中,商户的挂牌各式各样,千奇百怪,如何让机器正确的理解牌匾语义是一个难点。商户挂牌的文本种类有很多,如下图所示,我们可以看到一个商户牌匾的构成。

结合POI的名称制作工艺,我们目前将POI的牌匾的文本行分为4大类:主名称、经营性质(包括经营范围,具体的进行项目)、分店名、噪声(包括非POI文字,地址,联系方式),前面3个类别会参与到POI名称制作中。如上图所示的牌匾,它输出的规范名称应该是“世纪宏图不动产 (兴业路店)”。其中“世纪宏图”是主名称,“不动产”是经营范围,而“兴业路店”是分店名。

从牌匾中找出制作名称所需要的文字,不仅仅需要文本行自身的一些特征,还需要通过结合牌匾上下文,以及图像的信息进行分析。单纯的文本行识别会遇到下面的问题,如下图,在两个牌匾中都提到了“中国电信”,但是它们的意义是不一样的,这时必须结合上下文的理解。

二、技术方案

单纯从文本的语义理解的角度出发,那么这个应该是一个文本分类问题。但是直接的分类效果不佳。现实中在理解牌匾文本行语义的时候,需要结合图形,位置,内容,以及上下文关系综合来判断。为此,我们将商户挂牌理解的这个问题分解成两个子问题来解决,1.如何结合图像、文本、以及空间位置;2.如何结合上下文关系。因此,我们提出了Two-Stages级联模型。

2.1 Two-Stages 级联模型

Two-stages级联模型分为两个主要的阶段:第一阶段提取单文本信息特征,包括文本位置和文本内容等,第二阶段提取牌匾中文本行上下文关系特征,消除只用单个文本识别容易造成的歧义,准确识别出该文本属性。

2.1.1 Stage One 单文本行特征提取

单文本行特征可以分为词性结构(token level)特征和句子语义(sentence level)特征。除此之外,位置信息(PV)也是比较重要的信息,需要进行特征提取和编码。将以上特征进行融合,得到了单文本行特征。

token level层的特征提取方面,结合名称的构成以及名称工艺,我们定义了三种词性: 核心词(C)、通用词(U)、结尾词(T)。在这里我们使用LSTM网络来学习名称的词性序列。

sentence leve层的特征提取方面,由于我们的标注量相对比较少,采用了具有大量先验知识的BERT模型。同时,为了更好的符合当前业务场景的需求,我们结合业务中POI的数据集合,在原来Google官方提供的预训练模型基础上继续pre-training,得到新的模型BERT-POI。

预训练的POI文本语料没有太多的上下文环境,在构造样本时,我们将两个POI名称串起来或是同一个POI随机切分,中间都用SEP隔开,进行多任务学习:缺字补全和预测两个文本行是否属于同一POI。经过实验发现,在POI数据上预训练模型BERT-POI 比Google发布模型BERT-Google,缺字补全和同一POI判定两项任务上名,正确率高20%左右。

此外,将预训练的模型用于下游属性识别任务上,BERT-POI与BERT-Google相比,提升主名称,分店名,营业范围的召回3%~6%。

下图展示了我们预训练的过程图: 

随后,我们对预训练好的BERT-POI在进行了finetune,提取出sentence leve层的特征。

2.1.2 Stage-Two 文本相互关系提取

Stage One提取到了单文本行的特征,那如何去实现上下文的关联,我们加入了Stage Two的模块,模型结构如下:

Stage Two最主要是用BILSTM(Bidirectional LSTM)处理stage one输出特征,能够将当前文本特征和牌匾内其他文本特征进行学习,消除歧义。

三、业务效果

牌匾通过语义理解后,会根据具体的输出类型来制定名称生成的策略。例如:对于单主+噪声牌匾,我们直接将主名称作为POI名称,而对于单主+分店名+经营性质+噪声的牌匾,我们会分析主名称的结构,看是否需要拼接经营性质。

下图展示了当前我们牌匾语义理解和名称的部分拼接策略:

图3.1单主+噪声场景

图3.2 单主+分店名场景

图3.3单主+经营性质场景(主名称中有经营性质)

图3.4 单主+经营性质场景(主名称中无经营性质)

四、小结

目前商户牌匾语义理解模块的准确率在95%以上,在POI的名称自动生成中起到的重要的作用。商户牌匾的语义理解模块只是POI名称自动化的一部分内容,在POI名称自动化中还会涉及到噪声牌匾过滤、牌匾是否依附建筑物、敏感类别、文本的缺失、名称生成、名称纠错等模块。我们会在图文多模态这块更深入的探索,更多地应用于我们现实场景中,生产更多、更高质量的数据。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

深度学习在商户挂牌语义理解的实践相关推荐

  1. DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算

    在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...

  2. 深度学习技术在机器阅读理解应用的研究进展

    深度学习解决机器阅读理解任务的研究进展:https://blog.csdn.net/malefactor/article/details/52832134 深度学习技术在机器阅读理解应用的研究进展:h ...

  3. 点云上的深度学习及其在三维场景理解中的应用————PointNet(一)

    最近在学3D方向的语义分析. 师兄推荐了一个哔哩大学的将门创投 | 斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用!的宝藏视频,我会多看几遍,并写下每次观看笔记. 下文的截图 ...

  4. 动手深度学习13:计算机视觉——语义分割、风格迁移

    文章目录 一.语义分割 1.1 语义分割简介 1.2 Pascal VOC2012 语义分割数据集 1.2.1下载.读取数据集 1.2.2 构建字典(RGB颜色值和类名互相映射) 1.2.3 数据预处 ...

  5. 应用于语义分割问题的深度学习技术综述(语义分割综述)

    应用于语义分割问题的深度学习技术综述 基本介绍 摘要 1 .引言 2.术语及背景概念 2.1 常见的深度网络架构 2.1.1 AlexNet 2.1.2 VGG 2.1.3 GoogLeNet 2.1 ...

  6. 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  7. 深度学习高遥感影像语义分割

    深度学习遥感影像语义分割 深度学习大家都知道,在计算机视觉领域取得了很大的成功,在遥感影像自动解译方面,同样带来了快速的发展,我在遥感影像自动解译领域,也做了一些微薄的工作,发表几篇论文,我一直关注遥 ...

  8. 深度学习高分辨率遥感影像语义分割

    深度学习大家都知道,在计算机视觉领域取得了很大的成功,在遥感影像自动解译方面,同样带来了快速的发展,我在遥感影像自动解译领域,也做了一些微薄的工作,发表几篇论文,我一直关注遥感影像自动解译领域, 在北 ...

  9. 【深度学习】Transformer在语义分割上的应用探索

    [深度学习]Transformer在语义分割上的应用探索 文章目录 1 Segmenter 2 Swin-Unet:Unet形状的纯Transformer的医学图像分割 3 复旦大学提出SETR:基于 ...

最新文章

  1. 都说百度前端牛,来看看百度前端工程化之H5性能优化
  2. 解读《德勤2017年全球CIO报告》:顶级CIO的炼成之道
  3. 从源码分析DEARGUI之add_menu
  4. python安装cv2模块_pythonimportcv2importError:DLLloadfailed:找不到指定模块
  5. 图解WindowsXP修改MAC地址
  6. ACE的接受器(Acceptor)和连接器(Connector):连接建立模式
  7. 基于 HTTP 协议的几种实时数据获取技术
  8. IDEA入门之web项目导入jar包
  9. numpy的基本使用2
  10. Servlet使用适配器模式进行增删改查案例(Dept.java)
  11. 如何用短信完成XSS?
  12. mysql多语言运营设计_多语言系统的数据库设计
  13. 第10课 skymvc 企业网站制作
  14. 学python能做什么-学Python后到底能干什么?网友:我太难了
  15. 关于C++ const成员的一些细节
  16. 物流管理毕业论文题目【510个】
  17. 可以测试流放之路伤害的软件,流放之路DPS面板计算方式_流放之路怎么看自己的伤害_52PK...
  18. android自动计步_Android计步模块(类似微信运动)
  19. Java 基础知识总结—ArrayList
  20. delphi信封打印程序

热门文章

  1. Java的文件流操作
  2. java开发中spring常用的工具类
  3. python输入float_python – 在tensorflow中创建一个float64变量
  4. java substring截取字符串_lt;12gt;深入了解字符串
  5. python基本判断语句_python基础4 - 判断(if)语句
  6. server 群辉emby_群晖容器中搭建支持硬件编码的Emby Server教程及注意事项
  7. 计算机网络项目——最小网元设计(阶段二)
  8. 这七种回归分析技术,学了不后悔~
  9. 深度学习“奠基人”特伦斯:人工智能算法框架可被科学家掌控
  10. 工信部:我国半导体设计水平已达7nm