bert cnn知识抽取模型_深度学习在苏宁知识抽取领域的尝试与实践

【51CTO.com原创稿件】背景

近几年,随着海量数据的累积、计算能力的提升和算法模型的创新,无论是在学术界还是工业界,深度学习在NLP领域已经得到越来越多的关注与应用,并且有很多可喜的落地成果。知识的抽取和挖掘一直是Data Mining、Knowledge Graph等NLP子领域的重要问题,知识抽取的范围包括实体抽取、关系抽取、属性抽取等,本文主要介绍深度学习在苏宁小店商品标题上的应用,重点挖掘属性词、品牌词、物品词等和业务强相关的实体信息。

知识抽取任务按照文本结构可分为以下几类:

面向结构化数据的知识抽取:比如用D2R从结构化数据库中提取知识,其难点在于对复杂表数据的处理,包括嵌套表、多列、外键关联等;采用图映射的方式从链接数据中获取知识,难点在于数据的对齐。

面向半结构化的知识抽取:使用包装器从半结构化(比如网站)数据中获取知识,难点在于包装器的自动生成、更新与维护。

面向文本的知识抽取:与上面结构/半结构化方式不同,由于非结构文本的知识格式基本上没有固定的规则可寻,业界也缺乏能直接应用于中文的处理工具,所以本文采用深度学习方法,重点关注word embedding质量的角度,从随机初始化向量到主流预训练方法,去有效提升抽取结果的准确率和覆盖率。

B-LSTM+CRF模型

B-LSTM+CRF是2016年卡耐基梅隆大学和庞培法布拉大学NLP组提出的一种解决NER问题的网络架构,并经实验在4种语言(英语、德语、荷兰语、西班牙语)上表现亮眼,其中在德语和西班牙语上取得了SOA效果,所以本文将采用这种网络结构作为苏宁搜索知识抽取任务的关键模型之一,下面先简单介绍这种模型。

模型框架

模型数据的输入采用两种方案,***种不使用任何分词算法,采用BIO的标注方法直接以“字”为单位做序列标注,第二种采用业务自定义的标签集对分词后的word进行标注。利用苏宁搜索平台累积的业务词表对苏宁小店的商品标题做自动标注,经过运营的筛选和剔除,获取干净的数据集。

这里以***种标注方法为例(ATT:属性词,BRA:品牌词,GOD:物品词),以小店商品标题为单位,将一个含有n个字的title(字的序列)记作:

其中 xi 表示标题的第 i 个字在字典中的id,暂不考虑预训练,进而可以得到每个字的one-hot向量,维数是字典大小。

***层:look-up 层,利用word2vec或随机初始化的embedding矩阵将title中的每个字 xi 由one-hot向量映射为低维稠密的字向量(character embedding)xi∈Rd ,d是embedding的维度。在输入下一层之前,设置dropout以缓解过拟合。

第二层:双向LSTM层,自动提取title特征。将一个title的各个字的char embedding序列 (x1,x2,...,xn) 作为双向LSTM各个时间步的输入,再将正向LSTM输出的隐状态序列

与反向LSTM的

在各个位置输出的隐状态进行按位置拼接,

得到完整的隐状态序列

对隐层的输出设置dropout后,再外接一个线性层,将隐状态向量从 m 维映射到 k 维,k 是标注集的标签数,从而得到自动提取的title特征,记作矩阵 P=(p1,p2,...,pn)∈Rn×k 。可以把 pi∈Rk的每一维 pij 都视作将字 xi 分类到第 j 个标签的打分值,如果再对 P 进行Softmax的话,就相当于对各个位置独立进行 k 类分类。但是这样对各个位置进行标注时无法利用已经标注过的信息,所以接下来将接入一个CRF层来进行标注。

第三层:CRF层,进行title级的序列标注。CRF层的参数是一个(k+2)×(k+2)的矩阵A ,Aij表示的是从第 i 个标签到第 j 个标签的转移得分,进而在为一个位置进行标注的时候可以利用此前已经标注过的标签。如果记一个长度等于title

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值