Giter VIP home page Giter VIP logo

diac2019-adversarial-attack-share's Introduction

DIAC2019-Adversarial-Attack-Share

目录

  • 比赛背景
  • 数据
  • 评价指标
  • 资料区
  • Trick区
  • 完整思路区
  • 疑惑区
  • 前排解决方案

如何准确的判别用户的输入是否为给定问题的语义等价问法 是比较有意思的任务,也具有很大的挑战性,感谢主办方提供这一赛道!比赛前期也有参与,个人主要将一些比较传统的模型进行实验对比,但是成绩并不理想(不过80),再加上计算资源紧缺,也就放弃了。相比于传统ESIM模型,裸BERT-Base就可以到86分左右。因此,目前看来,BERT算是一个起跑线了,哭瞎,贫穷的孩子不配玩比赛啊 TT 。引用张俊林老师一句话,快0202年了,放弃幻想,全面拥抱BERT吧。

声明:
本项目主要搬运大佬们的前排解决方案,真的非常感谢 沐鑫hanyan大白pengbo 等大佬们的无私分享!非常感谢!非常感谢!

DIAC2019基于Adversarial Attack的问题等价性判别比赛


比赛背景

虽然近年来智能对话系统取得了长足的进展,但是针对专业性较强的问答系统(如法律、政务等),如何准确的判别用户的输入是否为给定问题的语义等价问法仍然是智能问答系统的关键。举例而言,“市政府管辖哪些部门?”“哪些部门受到市政府的管辖?” 可以认为是语义上等价的问题,而 “市政府管辖哪些部门?”“市长管辖哪些部门?” 则为不等价的问题。

针对问题等价性判别而言,除去系统的准确性外,系统的鲁棒性也是很重要、但常常被忽略的一点需求。举例而言,虽然深度神经网络模型在给定的训练集和测试集上常常可以达到满意的准确度,但是对测试集合的稍微改变(Adversarial Attack)就可能导致整体准确度的大幅度下降。

如以下样例:

origin example -adversarial example
检察机关提起公益诉讼是什么意思 监察机关提起公益诉讼是什么意思
检察机关提起公益诉讼是什么意思 检察机关发起公益诉讼是什么意思
寻衅滋事一般会怎么处理 寻衅兹事一般会怎么处理
什么是公益诉讼 请问什么是公益诉讼

右列数据是左列数据出现一些错别字或者添加一些无意义的干扰词产生的,并不影响原句的意思,但是这样的微小改动可能会导致完全不同结果。从用户的角度而言,这意味着稍有不同的输入就可能得到完全不一样的结果,从而严重降低用户的产品使用体验。


数据

1. 数据详情

本次大赛提供的是一个 法律领域 的问句等价性数据集,该数据集为我们在实际项目中开发系统所使用的数据集。除去该数据集外,参赛选手可以使用数据增强后的数据集或从其他渠道获得的无等价性标注的数据集。 参赛选手不得使用人工进行标注的数据。

训练集根据在实际项目中的数据情况,以问题组的形式提供,每组问句又分为等价部分和不等价部分,等价问句之间互相组合可以生成正样本,等价问句和不等价问句之间互相组合可以生成负样本。我们提供 6000组问句 的训练集, 每组平均有三个等价问句和3个不等价问句 。验证集和测试集则以问句对的格式提供,其中验证集有5000条数据。测试集中除了人工标注的样本外,还会有大量adversarial example。

训练集用于模型的学习,比赛期间选手可以提交验证集的预测结果,但最终成绩由测试集的预测结果决定,由于 测试集中会有大量adversarial example ,因此最终在测试集上的成绩可能会与验证集上不同。(测试集将于比赛结束前24小时发布,具体可参考时间轴页面。)

数据链接: DIAC2019 , 密码:ayvx

2. 数据格式

train_set.xml
训练集以XML文件提供,用于训练模型。XML文件中内容格式如下:
训练集

每一个Questions标签中为一组数据,其中EquivalenceQuestions标签内的问句之间互为等价关系,NotEquivalenceQuestions标签内的问句与EquivalenceQuestions为不等价关系。EquivalenceQuestions之间的问句互相组合可以生成正样本(label为1),EquivalenceQuestions和NotEquivalenceQuestions之间的问句互相组合可以生成负样本(label为0),具体需要生成多少正样本多少负样本由参赛选手自行决定。

dev.set.csv
验证集数据格式如下:
验证集


评价指标

本次比赛的评测标准为 Macro F1 值。Macro F1等于每个类别的F1的均值。
Macro F1 = (F1_正样本 + F1_负样本) / 2


资料区


Trick区

  1. 对抗训练 + fgm + epsilon 1e-6
  2. ZEN模型,score: 89.04
  3. test 数据输入 neo4j 就会发现神奇的图特征 leak
  4. 一种很差的leak,dev_set中,a-b b-c ,像这种左右(即b)都只出现一次的,a,b,c之间都是等价的,那其他和a、b、c在一起的都不是等价的
  5. 对付这种不平衡样本,用凯明大神的focal loss, focal loss直接把正样本召回率拉起来,上92+
  6. 去掉dropout也有提升

完整思路区

思路1: 对应trick 1,2
模型:用chinese-wwm-ext-base
郭大代码:https://github.com/guoday/CCF-BDCI-Sentiment-Analysis-Baseline
加入对抗:代码比较简单加入5行就行,大家可以参考:http://fyubang.com/2019/10/15/adversarial-train/

思路2: score: 89.04
zen模型,中文n-gram:https://github.com/sinovation/ZEN ,中文n-gram
只是用来学习,大佬可以试试,没有调到90,到时可以通知一下,相互学习

思路3: score: 91
图解2018年领先的两大NLP模型:BERT和ELMo这篇文章采用多层cls分类,验证过的单折91,这代码很像bert出来前一个很流行的框架compare-aggregate


疑惑区

  1. 比赛数据中的leak到底是啥?期待比赛结束后大佬们的解释

前排解决方案

未完待续...


留言请在Issues或者email [email protected]

diac2019-adversarial-attack-share's People

Contributors

wenrichard avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.