当前位置: 代码迷 >> 综合 >> 【论文阅读】Learning to Extract Attribute Value from Product via Question Answering: A Multi-task Approach
  详细解决方案

【论文阅读】Learning to Extract Attribute Value from Product via Question Answering: A Multi-task Approach

热度:95   发布时间:2023-12-12 19:31:10.0

写在前面

本文是Google Research发表在kdd2020上的一篇文章,主要是利用问答系统的算法来解决属性值提取的问题。
论文地址
本文主要从背景、算法、实验和总结几部分来讲解。

一、背景

1、任务和示例

Attribute value extraction: The task of identifying values of an attribute of interest from product information.
属性值提取,即识别为商品中的属性信息

如上示例,文本是商品信息,Attributes对应的属性信息,文本中相同颜色的内容对应着属性和属性值。需要注意的是:Product 2的属性“model number(型号)”,文本中是缺失这个属性对应的属性值的。

属性值提取广泛应用于信息检索、推荐、商品排序等场景中。

2、相关工作

早期解决这一问题主要使用基于规则方法,但是这些发现强依赖于专家领域知识,且存在一些问题:如,当属性数目量级非常大时,基于规则的方法不是很适用。其次,基于规则的方法对于一些同义词的处理比较繁琐。
随着深度学习的发展,将这一问题建模成NER(命名实体识别)成为主流,其主要模式为下图所示(图片来自《A Survey on Deep Learning for Named Entity Recognition》):

但是,这种方法仍然存在以下问题:当属性值较多时,输出类别较多,效果可能不好,比较适用于属性较少的场景。 另外,文中提到一些方法,针对每一个属性建模一个模型,因此,当属性数目较多时,基本不适用。

3、现有工作弊端

  • 可扩展性较差。当前电商系统的属性较多,如AliExpress包含上千个商品类目,仅休娱运动类的标签8900个,当前一些方法,每一个属性构建一个模型,这种是不可行的,可扩展性较差。
  • 可泛化性较差。当前方法不能很好地适用于新出现的属性,当新的属性出现时,可能需要重新训练模型等,可泛化性较差。

二、算法

针对上述问题,本文提出了一个提取特征值的方案,将这一问题建模成一个问答系统的问题。

1、算法定义

其中,属性值V为从文本C中提取。

2、算法架构

  • 上面是文章的整体算法架构:Embedding layer + Bert Contextual Layer + Output Layer
  • 下面看一下这个架构是如何解决上述提到的两个不足的:

    Scalability 可扩展性不足的问题: 针对不同的属性,该架构都是通用的,Embedding Layer层的A向量记为Attribute的向量,无论是哪一个属性,都可以喂进去,不需要针对不同的属性训练不同的模型。(不同的属性共享权重)
    Generalizability 可泛化性不足的问题: 本文设计了Distilled MLM loss用来解决该问题,该模块的主要思想为:因为可能会有一些训练集中没有出现的属性,我们无法得知这部分属性对应的属性值,但是借助bert的预训练向量,可以将Mask的内容不断拟合学习到本应有的一些语义特征。(虽然训练集数据有限,但是可以利用预训练的强大语义特征,让自训练的内容去拟合bert预训练的内容),以此解决新出现的属性的问题,从而提高模型可泛化性。

  • 损失函数是QA损失+DMLM损失+NA损失求和,模型joint learning

3、算法细节

1)Embedding Layer

  • Embedding Layer是trainable的,其每一个输入向量由word embedding + char embedding + position embedding + segment embedding得到
  • word embedding和char embedding是使用的bert预训练的向量。
  • positional embedding: the absolute position of the words in the sequence.
  • segment embedding: indicate which segment the word is from, i.e., CLS, context or question
  • CLS代表了整体的attribute+context的语义特征,最终用于分类,表示attribute value是否在context中能提取到。

2)BERT Contextual Layer

该层主要用于编码输入的内容,这部分主要借助bert的思想,包括N个multihead+FFN层,具体如下:

3)QA loss

QS loss的设计如下: H L H_L HL?为最后一层输出, H L i H_L^i HLi?为最后一层第 i i i个位置的向量,首先求得attribute value的起始index,而后基于起始index学习得到结束index,最终的损失函数为预测位置和真实位置的距离。

4)Distilled Masked Language Model

借助Bert的MASK思想,在bert中,目标函数是预测mask的内容。而在本文中,为了提高泛化性,希望拟合mask内容和真实内容的差异(基于大量语料库的bert预训练向量包含更多语义内容,更符合真实世界,以此更好作用于未出现的属性),让mask内容包含一些训练集没有的语义特征,因此,目标函数是求模型训练得到的mask内容对应向量和bert预训练向量之间的交叉熵,公式(8)是数据的平滑化处理。

5)No-Answer Classification

是否包含属性值分类器就是一个常规的二分类,其中 H L c l s H_L^{cls} HLcls?是对应学习到的包含attribute和context的特征向量,有一个全局的概念在里面。

三、实验

1、数据集

基于AE-pub数据集:

  • Contains over 110k examples, i.e., product triples of (context, attribute, value)
  • More than 2.7k unique attributes and 10k unique values
  • There are 21.6k no-answer examples within this dataset.

2、评估指标

  • Precision, Recall and F1-score
  • Repeat each experiment 10 times and report the metrics based on the average over these runs.

3、基准方法

  • BiLSTM: applies BiLSTM to produce the contextual embedding.
  • BiLSTM-CRF: uses a CRF layer on top of the BiLSTM layer to model the association of predicted tags
  • OpenTag: adds a self-attention mechanism between the BiLSTM layer and the CRF layer
  • SUOpenTag: uses one BiLSTM to produce the contextual word embedding for the context, and another BiLSTM to produce a single embedding for the attribute. A cross attention layer is applied between the context word embedding and the attribute embedding to join the outputs, followed by a CRF layer.

4、性能比较

上面的第一个表格是整体的性能结果,第二个表格是4个类别的对比结果,实验说明AVEQA去得到SOTA的效果,embedding layer+bert contextual layer学习到了较多的信息。

4、Zero-shot结果

当测试集中出现训练集不包含的attribute时,这种叫做zero-shot问题,DMLM的设计便是为了解决这个问题,为了证明DMLM的有效性,本文实施了Zero-shot的实验,从上述可以看出,DMLM对于Zero-shot的问题贡献是比较大的,且从下面的损失值实验可以看出,DMLM的设计在一定程度了防止了模型的过拟合,提高了泛化能力。

4、参数实验

上面一张图是training batch和learning rate的实验图,因为本文使用了bert预训练向量,因此模型很快便可以收敛,且当training batch和learning rate值较大时,模型会过拟合。

上图是对 α \alpha α β \beta β值的实验,当 α = β = 0.5 \alpha=\beta=0.5 α=β=0.5时效果最好。

四、总结

本文提出了一种属性值提取的方法,将其建模成QA问题,且引入了DMLM和No-answer分类器,解决了可扩展和可泛化性的问题,取得了SOTA的性能。本篇论文对于个人的成长在于提供了一种优化和解决的思路:

  • 优化问题可从目标函数入手,这对于解决bad case可能很重要。且在实际中,因为业务不同,可能需要对论文的方法做出一些变动,这时候,可以从目标函数入手。
  • 当出现属性/目标频繁变动时,考虑类似的方式,引入预训练的语义特征,且针对每一个属性/目标共享权重, 从而避免短期内需要持续变更模型。
  相关解决方案