运维开发网

中科院信工所雏鹰团队在SemEval上大显神威

运维开发网 https://www.qedev.com 2020-09-15 09:44 出处:51CTO 作者:天琼智能
道翰天琼认知智能机器人平台API接口大脑为您揭秘。目前国内外的AI开源框架领域,以TensorFlow、PyTorch、MindSpore等为代表,正处于一种群雄林立、七国八制的状态,但也增加了AI应用的平台移植成本,所以TensorLayer的问世难能可贵,它基于各个主流的开源框架,提供了一个统一的AI算法模型接口,不仅稳定了AI应用层,也促进了各开源框架的良序竞争。同时令人称道的是,Tenso

中科院信工所雏鹰团队在SemEval上大显神威

道翰天琼认知智能机器人平台API接口大脑为您揭秘。国际语义评测研讨会(International Workshop on Semantic Evaluation, SemEval)是由ACL下属的SIGLEX主办,是全球范围内影响力最强、规模最大、参赛人数最多的自然语言语义评测竞赛。

在本届SemEval-2020国际语义评测大赛中,中国科学院信息工程研究所胡玥老师带领的参赛团队雏鹰团队(系统名:III-ENLP-NUT)(团队成员:邢璐茜、谢玉强、彭伟)在Task4: Commonsense Validation and Explanation (常识验证与解释, 子任务A-常识验证及子任务B-常识解释选择上均取得了Top-3的好成绩。https://competitions.codalab.org/competitions/21080

论文链接:https://arxiv.org/abs/2007.00924以下胡玥团队将为大家带来详细的大赛分享。

1

任务介绍&分析

任务介绍

SemEval-2020 常识验证与解释任务由西湖大学博士生王存翔、 SUTD博士生梁帅龙、西湖大学张岳教授和Queen’s University 朱晓丹教授共同举办。该赛题进一步划分为三个子任务,分别是a) Commonsense Validation,b) Commonsense Explanation(Multi-Choice),c) Commonsense Explanation(Generation)子任务A: Commonsense Validation常识验证子任务中,输入为两个有相似结构的陈述,要求系统判断出哪个陈述是符合常识的,哪个陈述相对不符合常识。评价指标采用准确率。子任务B: Commonsense Explanation (Multi-Choice)常识解释选择子任务中,输入为子任务A中不符合常识的错误陈述,以及三个可能为不符合常识陈述的解释选项,要求系统从候选选项集合中,选出最能够解释不符合常识陈述出错的原因。评价指标采用准确率。子任务C: Commonsense Explanation (Generation)常识解释生成子任务中,输入同样为子任务A中不符合常识的错误陈述,要求系统⽣成可以解释不符合常识陈述的原因。评价指标采用文本生成的评价指标BLEU以及人工评价。

任务分析

子任务A的目标是检验模型是否具有区分违反常识的自然语言陈述的能力。子任务A的主要挑战在于,违反常识的陈述在句法层面通常是符合语言学结构的,但是在语义层面上,其含义是不符合通常的常识知识,考验模型所具备的常识知识。子任务B的目标是通过选择合适的解释的方式,检验模型是否真正地理解了一个陈述为什么是违反常识的。子任务B的挑战在于,尽管所有的候选解释都与违反常识陈述的内容有关,但是有些候选项并不包含解释不符合常识的主要原因,反而由于在内容上存在关联,会分散模型的判断能力。近期一些工作表明,预训练语言模型除了在语言理解上具有很好的性能之外,通过在大规模语料上进行学习,其内部已经习得了某些常识知识。因此,我们不仅仅将预训练语言模型看做上下文编码器,用以产生句子的表示,同时,我们还把预训练语⾔模型看做知识存储器,希望在问答过程中可以隐式地利用预训练语言模型提供常识知识。针对上述挑战,我们从以下两个主要指导意图出发,以多选型问答的式设计两个⼦任务的解决方法:(1)意图1:如何“唤醒”并利用预训练语言模型内部的隐式知识来帮助完成常识验证和解释任务?(2)意图2:丰富违反常识陈述的上下文是否能够/如何帮助系统更好地选择正确的解释?针对第一点,我们设计了一种基于提示模板(prompt template)的方法,用于重构子任务输入以适用于问答任务。针对第二点,我们为子任务B构建了一个提示问题(prompt question),并且利⽤额外的信息对其进行扩展,以提供对比信息,帮助模型能够定位到造成违反常识的原因。此外,我们还探索了基于预训练语言模型打分的方法来完成常识验证子任务,并探索了预训练语言模型内部隐含的常识知识能够在多大程度上帮助常识验证子任务。

2

摘要&介绍

摘要本文介绍了针对SemEval Task4的前两个子任务的系统:常识验证和解释。为了阐明判断的意图并注入对比信息以供选择,我们提出了带有模板的输入重建策略。具体来说,我们将子任务形式化为多项问题,并使用提示模板构造输入,然后,将最终回答预测视为子任务的结果。实验结果表明,与基准系统相比,我们的方法具有显着的性能。我们的方法在前两个子任务的两个正式测试集中都获得了第三名,其准确度分别为96.4和94.3。介绍自然语言理解(NLU)要求系统不仅能够弄清文本的语义,而且能够在现实世界的常识知识的约束下理解文本。识别无意义的自然语言陈述,并产生对无意义的文本的解释的能力是实现对自然语言理解的基础。SemEval-2020任务4提供了结构良好的评估任务,旨在评估基于常识验证和解释的系统能力。常识验证和解释(ComVE)任务分为三个子任务:验证、解释选择、解释生成。我们主要关注并参与前两个子任务。第一个子任务(subtaskA)的目标是检查系统区分区别于常识的自然语言语句(即,无意义/错误语句)的能力。第二个子任务(subtaskB)的目标是测试系统是否可以正确理解造成反事实的原因。在子任务A中,区分无意义的陈述所面临的挑战在于,这种陈述通常在句法层面上符合语言结构,但其含义却不符合语义层面上的一般常识。在子任务B中,为虚假陈述选择适当的解释的困难在于,尽管候选解释与虚假陈述的内容相关,但它们可能不包含解释虚假陈述的主要原因,并且会分散系统的注意力。为了解决上述挑战,我们首先将两个子任务形式化为一种多选问答(QA)任务。此外,我们将PLM用作上下文编码器来生成句子的表示形式,还通过两阶段的预训练将PLM视为知识存储,可以在回答问题时隐式提供常识知识。为了应对前面提到的挑战,我们设计了多选QA方式解决两个子任务的方法,具有以下两个指导意图:(a)如何唤醒和利用PLM的隐性知识进行常识验证和解释 。(b)上下文的扩展将如何帮助系统为错误陈述选择正确的解释。对于第一点,我们探索了一种基于模板的方法来重建编码器的输入。在子任务A中,我们设计了一个提示性问题,并将此子任务转换为多项选择QA样式格式,其中将语句用作候选答案。在子任务B中,我们将带有提示模板的错误陈述重新格式化,比如A陈述是反事实的,是因为B解释。提示模板旨在激活预训练模型内部的常识知识,并且可以将其视为查询以检索PLM中的常识知识。另外,提示模板丰富了PLM的输入,以明确表达子任务的意图。对于第二点,我们建议在子任务B中用更多上下文扩展prompt question,带有更多文本信息,比如正确和错误陈述的对比信息。

3

方法

任务定义 :5个元素 ${S^1, S^2, O^1, O^2, O^3}$分别表示两个陈述和三个解释。${S^1, S^2}$ 一个是真实事实。一个是反事实。$O^i$ 只有一个是正确的解释原因。我们把两个子任务转成多选问题,包含一个PLM的编码器和一个任务确定的分类层。对于每一个问题答案对,我们可以得到下面的计算公式。inp,表示的是经过重构的输入 。$C^i$表示的是陈述的First Token,即[CLS]。拥有打分更高的候选答案将会被视为最后的预测。

 Sense-Making 陈述验证方法

在第1个子任务中,模型要求能够去选择一个反事实的陈述。我们把这个子任务转成多选的qa问题。其中问题是我们人工构造的一个prompt question。这个prompt question有两个功能:第一,他能够去检索(激活)预训练语言模型内部的常识知识;第二,扮演一个潜在问题的角色,用有意义的陈述来回答。因此我们直接构造了一个启发式的prompt question,比如:If the followingstatement is in common sense?我们认为这种方式,从语义角度来说,能够包含子任务的背后的意图(验证常识).所以对每一个样例,我们都能够去构造一个这样子的问题和陈述对。然后分别取每一个陈述的cls向量,作为分类层的输入,得到最后的结果。除此之外,考虑到长度的限制以及计算效率,我们用另一个方式去结合问题和陈述。比如:[CLS] If “ Si ” is in common sense? [SEP].解释选择方法对于第二个来说系统需要从三个候选当中去选择最合理的解释。这也是一个很直觉的多选任务,但是we argue:错误的陈述从语法上来说是一个完全正确的自然语言的句子,如果直接把这个错误的陈述和每一个候选解释连接起来,可能会干扰模型的表现。也就是说模型非常容易去关注到陈述和解释之间的相似性,而不是我们所需要的因果关系。基于上述考虑,我们会构造一个prompt template,为了能够让模型去理解作为待回答的问题假陈述。因此我们构造的模板如下:[CLS] Sf is against common sense because Oj [SEP] .下划线会被这个候选的解释去替代。然而如果仅仅是使用这种错误的事实信息是不足够的。他会干扰模型发现在错误事实和候选解释间的因果关系的能力。我们对数据进行了观察,发现 true statement经常会和false statement,共享同一个主题。另外true statement的内容是in come sense的。所以我们重新利用上真实陈述的信息,可以与错误的事实形成了一个对比的信息。因此我们又构造了如下的模板:[CLS] If St is in common sense. [SEP] Sf is against common sense because Oj [SEP]

4

实验&结果

具体的实验设置大家可以移步论文,这里就不作赘述了。下图是我们对两个子任务构造的模板:

主实验

我们在两个子任务上进行了实验。其中omcs是指我们用额外的常识语料对模型进行二阶段训练。P和C表示对应的模板。在子任务一上,我们发现通过增加模板信息能够使模型效果提升,通过额外的语料去预训练语言模型,能够达到一个更好的效果,但是两个模板在子任务一上面的表现并不是很明显,我们认为这个原因是因为这两个模板带来的效果是一致的,即使他们的表现形式有所不同。对于第2个子任务来说,我们的模型通过增加P和增加P+C,模型的效果都在提升,说明这两个模板构造获得的语义信息也是有所差异的。和我们的假设一致,通过增加对比信息,模型的效果能够达到最好。

5

讨论

探索PLM中的常识知识

我们想要去探究预训练语言模型当中是否真的隐含了常识知识。因此我们进行如下的操作:对每一个陈述中的token顺序的mask,然后能够得到每一个token的概率值。所有的token概率值乘起来得到这个陈述的概率。因此我们能够去获得真实事实和错误事实的打分。如果模型足够理想的话,那么真实事实的打分肯定是大于错误事实的。如果模型把真实事实的打分,误判成小于错误事实的打分,那么error+1。因此我们可以计算一个准确率,最后我们发现:RoBERTaLarge 达到79.5%的准确率,RoBERTaOMCS 保持了86.3%的准确率。子任务A上提问模板效果表征RoBERTa的原始输入格式我们在任务a上做了一些case study。对于第1个例子来说,增加模板能够使得模型都判断准确。说明模板能够去对模型有一定的暗示作用。对于第2个例子来说,第1个模板任然不奏效,但是第2个模板提供了一个更好的hint。对于第3个例子来说,所有的模型都做错了。有可能是模型自己的问题,语料当中的偏置或者是TV这个词出现的词频等等。总之,模板能够帮助模型去理解这个任务中的一些对象,但是在数据集里面仍然有一些还未被解决的问题。同时我们在任务b上也做了一些case study的展示,我们发现通过增加p+c这个模板,能够对大部分的数据都预判正确,说明这个模板给模型带来的信息还是比较丰富的,比如说显式给出因果关系,以及真实事实和错误事实的对比关系。除此之外,我们还尝试了数据增强,因为我们发现数据中的错误事实部分是对真实事实进行主语替换,词位置顺序改变等方式,但是增加了部分数据加入训练发现效果并没有带来很大的提升,原因可能是因为模型的效果已经达到了96%+,在通过增加部分数据,效果难以有明显的提升。

团队介绍

中科院信息工程研究所雏鹰团队主要研究方向包括智能对话、机器翻译、阅读理解、跨媒体智能分析等。在ACL,AAAI 、IJCAI、TMM等顶级会议及期刊发表论文70余篇。团队指导老师为胡玥教授,中国科学院信息工程研究所研究员/博士生导师,主要研究方向为人工智能、自然语言处理。

道翰天琼认知智能未来机器人接口API简介介绍

认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。

认知智能CI机器人是杭州道翰天琼智能科技有限公司旗下产品。认知智能机器人是依托道翰天琼10年研发的认知智能CI体系为核心而打造的认知智能机器人大脑,是全球第一个认知智能机器人大脑。具有突破性,创新性,领航性。是新一代智能认知智能的最好的产品支撑。 认知智能机器人技术体系更加先进,更加智能,是新一代智能,认知智能领域世界范围内唯一的认知智能机器人。 认知智能机器人是新时代的产物,是新一代智能认知智能的产物。代表了新一代智能认知智能最核心的优势。和人工智能机器人大脑相比,优势非常明显。智能度高,客户粘性大,客户满意度高,易于推广和传播等核心特点。 依托认知智能机器人平台提供的机器人大脑服务,可以赋能各个行业,各个领域的智能设备,各类需要人机互动的领域等。认知智能机器人平台网址:www.weilaitec.com,www.citec.top。欢迎注册使用,走进更智能机器人世界。

认知智能和人工智能的优劣势对比主要可以分为四大方面: 第一:时代发展不同。人工智能是智能时代发展的第二个阶段,认知智能是智能时代发展的第三个阶段。时代发展上决定了认知智能更显具有时代领先性。 第二:基础理论体系不同。人工智能的基础理论体系以数学为基础,以统计概率体系为基础。认知智能基础理论体系以交叉许可理论体系为基础。包含古今中外哲学体系,心理学体系,逻辑学体系,语言学体系,符号学体系,数学体系等学科。其基础理论体系更加具有创新性,突破性和领先性。且交叉学科理论体系的研究也是未来智能发展的大方向。其具体理论体系,还包含三体论(宇宙,信息,大脑三者关系),融智学,和HNC等。 第三:技术体系不同。人工智能的核心技术体系主要是算法,机器学习,深度学习,知识图谱等。其主要功用在感知智能。感知智能其核心主要是在模仿人类的感知能力。认知智能的核心技术体系是以交叉学科理论体系而衍生出来的。具体包含三大核心技术体系,认知维度,类脑模型和万维图谱。认知智能的技术体系核心以类脑的认知体系为基础。以全方位模仿类脑能力为目标。人工智能以感知智能为基础的体系,只能作为认知智能中的类脑模型技术体系中的感知层技术体系。类脑模型大致包含,感知层,记忆层,学习层,理解层,认知层,逻辑层,情感层,沟通层,意识层等9大核心技术层。因此人工智能的核心只是作为认知智能类脑模型中的感知层。因此在技术体系上,人工智能和认知智能基本上没有太多的可比性。 第四:智能度成本等方面的不同:人工智能产品的综合智能程度,普遍在2-3岁左右的智力水平。认知智能产品其智能程度大致在5-8岁左右。认知智能体系构建的机器人更加智能。且更省时间,更省人力和资金。优势非常多。具体请看下列的逐项对比。

道翰天琼CiGril机器人API

道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:

1.在平台注册账号

2.登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。

3.在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。

开始接入

请求地址:http://www.weilaitec.com/cigirlrobot.cgr

请求方式:post

请求参数:

参数 类型 默认值 描述

userid   String   无 平台注册账号

appid   String   无 平台创建的应用id

key   String   无 平台应用生成的秘钥

msg   String   "" 用户端消息内容

ip   String   "" 客户端ip要求唯一性,无ip等可以用QQ账号,微信账号,手机MAC地址等代替。

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。

示例代码JAVA:

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

public class apitest {

    /*

     Get请求,获得返回数据

     @param urlStr

     @return

     /

    private static String opUrl(String urlStr)

    {        

        URL url = null;

        HttpURLConnection conn = null;

        InputStream is = null;

        ByteArrayOutputStream baos = null;

        try

        {

            url = new URL(urlStr);

            conn = (HttpURLConnection) url.openConnection();

            conn.setReadTimeout(5 10000);

            conn.setConnectTimeout(5 * 10000);

            conn.setRequestMethod("POST");

            if (conn.getResponseCode() == 200)

            {

                is = conn.getInputStream();

                baos = new ByteArrayOutputStream();

                int len = -1;

                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)

                {

                    baos.write(buf, 0, len);

                }

                baos.flush();

                String result = baos.toString();

                return result;

            } else

            {

                throw new Exception("服务器连接错误!");

            }

        } catch (Exception e)

        {

            e.printStackTrace();

        } finally

        {

            try

            {

                if (is != null)

                    is.close();

            } catch (IOException e)

            {

                e.printStackTrace();

            }

            try

            {

                if (baos != null)

                    baos.close();

            } catch (IOException e)

            {

                e.printStackTrace();

            }

            conn.disconnect();

        }

        return "";

    }

    

    

    public static void main(String args []){        

            //msg参数就是传输过去的对话内容。            

            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));

            

    }

}

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号