将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记

论文题目:Scaling Up Open Tagging from Tens to Thousands: Comprehension Empowered Attribute Value Extraction from Product Title
论文出处: ACL 2019
论文地址:https://www.aclweb.org/anthology/P19-1514

论文概述

这篇文章出自阿里巴巴和华东师范大学的联合团队。由于标题字数限制,翻译可能不那么精准。
这篇文章可以看做是对KDD 2018中open tag 论文中框架的升级和拓展。
可以看我之前的一篇博客了解一下那篇论文。
但其实本文的处理方式和之前open tag的框架有较大区别。
open tag 文章将属性提取任务转化为NER类型的序列标注任务,比如说以商品说明为例,需要提取三种属性 {time,size,flavor},使用{B,I,O}标记方式,则对应输出的标签集为{B-time,I-time,B-size,I-size,B-flavor,I-flavor,O}.
通过这种任务处理方式,可以对各属性中未出现过的属性值有一定的识别效果,但是在出现新的属性时,需要中心定义输出集,重新训练。当面对大规模的属性时,需要定义庞大的输出集。总之,这种方法在属性层面不具有很好的扩展性。
本文提出的方法则在属性层面也具有较好的扩展性。下面具体说明一下论文中任务处理的关键框架。

任务pipeline

将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第1张图片
上面图中涵盖了本论文实现的关键结构。
可以梳理为以下几点:
1.问题定义为从title文本中提取attribute中各属性对应的属性值。
例如:
将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第2张图片
2.对title和attribute分别进行encoding,encoder的基本组成均为BERT+Bi-lstm
3.将attribute集合中的各个属性对应的编码与title的编码进行attention计算,之后经过CRF层输出标签,
注意,这里输出的标签只有三种:{B,I,O},对每一个属性进行以上操作后,根据输出结果的标签,即可提取出对应的属性值,
属性值没有数量限制,可能输出多个值,也可能没有对应值(即所有标签均为O)。

实验结果

论文提出的模型在常用属性的提取上超越了之前的模型,达到sota。

将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第3张图片
模型识别效果与属性出现频率的关系如下:
将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第4张图片
将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第5张图片
模型识别效果与属性出现频率呈正相关。对于出现频率中等的属性,micro-f1分数为66.1

并且在新属性(不存在于训练集和验证集的属性)对应的属性值的提取上取得了一定效果。
将开放标记从数十扩展到数千:从产品标题中提取属性值[ACL 2019]阅读笔记_第6张图片

论文总结

以下仅代表个人观点。
1.这篇文章提供了属性抽取的一个新思路,对源文本与属性序列分别编码处理。基于attention捕捉不同属性与源文本的对应关系。通过这种设计,使模型对属性值与属性都不再具有限制,在理论上可以提取任意属性。在实验中也取得了可观的效果。
2.文中将属性之间也视为序列进行序列化的encoding,这样可能可以捕捉属性之间的关系(比如,属性中包括 颜色 和 风格),同时反映出待提取源文本的一些信息(比如, 属性中 包含 口味,可能是食品类。属性中包含功率,是电器类)。

你可能感兴趣的:(自然语言处理,属性抽取,自然语言处理,NLP)