点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要12分钟
跟随小博主,每天进步一丢丢
作者:太子長琴(NLP算法工程师)
来自:AINLP公众号
Paper:
http://nlp.csai.tsinghua.edu.cn/~tcc/publications/coling2018_attribute.pdf
code: https://github.com/thunlp/attribute_charge
核心思想:基于类别属性的注意力机制共同学习属性感知和无属性的文本表示。
这是 COLING2018 上的一篇老论文了,最近因为一些事情正好遇上,当时大概看了一下就发现这篇文章正好解决了我之前在做多分类任务时没有解决的问题。所以拿来记录一下,顺便研究下代码。
Abstract
本文主要解决罪名预测(根据刑事法律文书中的案情描述和事实部分,预测被告人被判的罪名)中的两个问题:
数据不平衡问题:有些罪名的 case 太少
标签相似的问题:有些罪名意思过于接近
文章通过提取罪名相关属性作为额外特征,不仅为 case 少的罪名类别提供了信息,同时还可以作为鉴别相似标签的有效信号。结果在 few-shot 场景下比 baseline 取得 50% 的提升。
看到这里当时就有两个反应:卧槽,为啥这么简单我没想到?卧槽,为啥这么简单的方法效果居然这么好?
Introduction
传统的做法是人工设计特征,包括文本相关(字、词、短语)和属性特征相关(日期,位置,条款,类型),目前基本都是用深度学习的方法在做了。
不过依然有两个主要挑战:
Few-Shot Charges:实际场景中,最多的 10 种罪名占了 78.1%,最少的 50 种罪名仅占不到 0.5% 而且大部分就 10 个左右的案例。传统的方法一般忽略少的,深度学习需要一定量的训练样本。所以,这个问题成为决定一个系统鲁棒性和有效性的关键。
Confusing Charges:比如(盗窃,抢劫),(挪用资金,挪用公款),它们的定义仅在验证特定行为时有所不同,对应案例中的条件常常非常相似。
为了解决这两个问题,本文建议考虑具有区别罪名的法律属性,并将这些属性作为犯罪事实描述和罪名之间的映射。具体而言,选中 10 个有代表属性的罪名,然后进行低成本类别级构建:对每个罪名,注释每个属性的值(是,否或不可用)。
有了属性注释后,本文提出一个多任务学习框架来同时预测每个案例的属性和罪名。在模型中,使用属性注意力机制来捕获与特定属性相关的关键事实信息。之后,将这些属性感知与无属性事实表征(文本表征)结合起来,预测最终的罪名。
这样做的两个原因: