【EMNLP 2023】面向垂直领域的知识预训练语言模型

近日,阿里云人工智能平台PAI与华东师范大学数据科学与工程学院合作在自然语言处理顶级会议EMNLP2023上发表基于双曲空间和对比学习的垂直领域预训练语言模型。通过比较垂直领域和开放领域知识图谱数据结构的不同特性,发现在垂直领域的图谱结构具有全局稀疏,局部稠密的特点。为了补足全局稀疏特点,将垂直领域中分层语义信息通过双曲空间注入到预训练模型中。为了利用局部图结构稠密特点,我们利用对比学习构造图结构不同难度的正负样本来进一步加强语义稀疏的问题。

论文:

Ruyao Xu, Taolin Zhang, Chengyu Wang, Zhongjie Duan, Cen Chen, Minghui Qiu, Dawei Cheng, Xiaofeng He, Weining Qian. Learning Knowledge-Enhanced Contextual Language Representations for Domain Natural Language Understanding. EMNLP 2023

背景

知识增强预训练语言模型(KEPLM)通过从大规模知识图(KGs)中注入知识事实来提高各种下游NLP任务的性能。然而,由于缺乏足够的域图语义,这些构建开放域KEPLM的方法很难直接迁移到垂直领域,因为它们缺乏对垂直领域KGs的特性进行深入建模。如下图所示,KG实体相对于纯文本的覆盖率在垂直领域中明显低于开放域,表明领域知识注入存在全局稀疏现象。这意味着将检索到的少数相关三元组直接注入到PLM中对于领域来说可能是不够的。我们进一步注意到,在垂直领域KGs中,最大点双连通分量的比率要高得多,这意味着这些KGs中同一实体类下的实体相互连接更紧密,并表现出局部密度特性。因此,本文研究是基于上述领域KG的数据特性提出了一个简单但有效的统一框架来学习各种垂直领域的KEPLM。

算法概述

为了解决上述垂直领域知识增强框架的问题,KANGAROO模型分别通过双曲空间学习垂直领域图谱数据的分层语义信息来补充全局语义稀疏模块Hyperbolic Knowledge-aware Aggregator,通过捕捉领域图谱稠密的图结构构造基于点双联通分量的对比学习模块Multi-Level Knowledge-aware Augmenter,模型框架图如下所示:

Hyperbolic Knowledge-aware Aggregator

Learning Hyperbolic Entity Embedding

首先,欧几里得空间中的嵌入算法由于嵌入空间的维度而难以对复杂模式进行建模。受庞加莱球模型的启发,由于重建的有效性,双曲空间对层次结构具有更强的代表能力,为了弥补闭域的全局语义不足,我们采用Poincaréball模型来同时学习基于层次实体类结构的结构和语义表示。两个实体(ei,ej)之间的距离为:

我们定义D={r(ei,ej)}是同义实体。然后我们最小化相关对象之间的距离以获得双曲嵌入

Domain Knowledge Encoder

该模块设计用于对输入token和实体进行编码,并融合它们的异构嵌入,包含两部分:Entity Space Infusion 和 Entity Knowledge Injector。

Entity Space Infusion

为了将双曲嵌入集成到上下文表示中,我们通过级联将实体类嵌入注入到实体表示中:

Entity Knowledge Injector

它旨在融合实体嵌入{hej}m的异构特征。为了匹配来自领域KGs的相关实体,我们采用重叠单词数量大于阈值的实体。利用M层聚合器作为知识注入器,能够集成不同级别的学习融合结果。在每个聚合器中,两个嵌入都被输送到多头注意力层:

我们将实体嵌入注入上下文感知表示中,并从混合表示中重新获取它们:

Multi-Level Knowledge-aware Augmenter

它使模型能够学习注入的知识三元组的更细粒度的语义关系,利用图谱局部结构特征来进一步纠正全局稀疏性问题。我们着重于通过点双连通分量子图结构构造具有多个难度级别的高质量正样本和负样本。示例构造流程如下图所示。

Positive Sample Construction

我们提取目标实体的K个相邻三元组作为正样本,它们在相邻候选子图结构中最接近目标实体。这些三元组中包含的语义信息有利于增强上下文知识。为了更好地聚合目标实体和上下文标记表示,将K个相邻三元组转换后拼接到一个句子中。通过共享的文本编码器(例如BERT)获得统一的语义表示。由于来自离散实体和关系的不同三元组的采样之间存在语义不连续性,我们修改位置嵌入,使相同三元组的标记共享相同的位置索引,反之亦然。例如,上图中输入标记的三元组位置(e0,r(e0、e1)、e1)均为1。为了统一表示空间,我们采用[CLS](即BERT中的输入格式的token)表示为正样本嵌入以表示样本序列信息。

Point-biconnected Component-based Negative Sample Construction

在领域KGs中,由于具有有利于图的局部稠密性质,节点与相邻节点是稠密连接的搜索。因此,我们搜索大量距离目标实体更远的节点作为负样本。

  • 第一步:以起始节点Estart(即e0)为中心点,沿着这些relation向外进行搜索,我们得到了具有不同hop(P(G,estart,eend))的端节点Eend,其中hop(·)表示跳距,P(G,ei,ej)表示图G中实体之间的最短路径。例如,路径3中的跳跃点(P(G,e0,e10))=2,路径6中的跃点数(P(G,e0、e11))=3
  • 我们利用跳跃距离来构建具有不同结构难度水平的负样本,其中,对于1级样本,hop(·)=2,对于n级样本,hop(·)=n+1。我们假设跳跃距离越近,就越难区分三元组与起始节点之间包含的语义知识。
  • 负样本的构造模式类似于正样本,正样本具有相同距离的路径被合并成句子。注意,当节点对包含至少两条不相交的路径(即点双连通分量)时,我们选择最短路径(例如,路径4)。对于每个实体,我们构建k个级别的负样本。
Training Objectives

我们模型的损失函数主要包含了两个部分,一个是普通token级别的MLM掩码任务,另外一个是基于点双联通分量的对比学习任务。

算法精度评测

为了评估KANGAROO模型在垂直领域预训练模型的效果,我们选取了金融和医疗等领域的各种下游任务的全数据量和少样本数据量场景进行评测。

  • 全数据量微调实验结果

  • 少样本数据微调数据结果

为了比较不同图谱数据表示方法的效果不同,我们对比了欧式距离和双曲距离之间的结果如下:

为了更好地服务开源社区,KANGAROO算法的源代码即将贡献在自然语言处理算法框架EasyNLP中,欢迎NLP从业人员和研究者使用。

EasyNLP开源框架:GitHub - alibaba/EasyNLP: EasyNLP: A Comprehensive and Easy-to-use NLP Toolkit

参考文献

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  • Zhengyan Zhang, Xu Han, Zhiyuan Liu, Xin Jiang, Maosong Sun, and Qun Liu. 2019. ERNIE: enhanced language representation with informative entities. In ACL, pages 1441–1451.
  • Xiaozhi Wang, Tianyu Gao, Zhaocheng Zhu, Zhengyan Zhang, Zhiyuan Liu, Juanzi Li, and Jian Tang. 2021. KEPLER: A unified model for knowledge embedding and pre-trained language representation.Trans. Assoc. Comput. Linguistics, 9:176–194.
  • Yusheng Su, Xu Han, Zhengyan Zhang, Yankai Lin, Peng Li, Zhiyuan Liu, Jie Zhou, and Maosong Sun. 2021. Cokebert: Contextual knowledge selection and embedding towards enhanced pre-trained language models. AI Open, 2:127–134

论文信息

论文标题:Learning Knowledge-Enhanced Contextual Language Representations for Domain Natural Language Understanding
论文作者:徐如瑶、张涛林、汪诚愚、段忠杰、陈岑、邱明辉、程大伟、何晓丰、钱卫宁
论文pdf链接:https://arxiv.org/abs/2311.06761

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue+SpringBoot的教学资源共享平台

文末获取源码,项目编号: S 068 。 \color{red}{文末获取源码,项目编号:S068。} 文末获取源码,项目编号:S068。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…

虹科Pico汽车示波器 | 汽车免拆检修 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车,搭载LTG发动机,累计行驶里程约为10.7万km。车主反映,车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车,起动发动机,组合仪表上提示“前照灯水平调节…

windows10安装MongoDB的入门简易教程【学习自用】

一、下载安装包 下载地址 https://www.mongodb.com/try/download/community 因为我是在windows上安装,所以下载windows版本的压缩包格式 二、下载后解压到要安装的目录里去 我这里在D盘装,所以就解压到D盘中我自己建的的mongoDB文件夹中。 三、在解…

02-Nacos和Eureka的区别与联系

Nacos和Eureka的区别 联系 Nacos和Eureka整体结构类似: 都支持服务注册, 服务拉取, 采用心跳方式对服务提供者做健康监测的功能 区别 Nacos支持服务端主动检测服务提供者状态: 临时实例采用心跳模式,非临时实例采用主动检测模式但对服务器压力比较大(不推荐) 心跳模式: 服务…

.net 安装Postgresql驱动程序ngpsql

.net 安装Postgresql驱动程序ngpsql 最近搞一个物联网项目,需要采集fanuc数控机床的数据,厂家提供的API只支持windows,所以就决定C#开发,数据库用postgresql, 安装数据库驱动一波三折。 作为一个讨厌微软的老程序猿&…

静态链接库和动态链接库(隐式载入显式载入)

文章目录 动态链接库和静态链接库什么是链接库?静态链接库动态链接库动态链接库的俩种链接方式加载时动态链接运行时动态链接 动态链接库和静态链接库 动态链接库和静态链接库都是共享代码的方法,只是二者略有区别。 以C/C为例,一个可执行文…

工作中用到的数通、安全的查询、工具、文档链接

文章目录 一、华为1.设备信息查询华为序列号查询华为设备信息速查 2.维护华为交换机命名规则查看光模块信息交换机ping参数大全 3.实用文档智能升级堆叠重启指定成员设备堆叠主备倒换策略路由实现多出口重定向下一跳vrf与vrf、vrf与public互访路由配置总结 二、奇安信1.授权申请…

四十五----组件库设计

组件库设计主要考虑几点。 有意义: 命名准确,充分表意。参数准确,必要的类型检查。适当的注释 通用性:不要耦合特殊的业务功能。不要包含特定的代码处理逻辑。 ⽆状态,⽆副作⽤:状态向上层提取,尽量少⽤内部状态。解耦IO操作。 避免过度封装:合理冗余。避免过度抽象。 …

Rust 学习

Rust 官网:https://www.rust-lang.org/zh-CN/ 1、Rust 简介 Rust 是一门注重安全(safety)、速度(speed)和并发(concurrency)的现代系统编程语言。Rust 通过内存安全来实现以上目标,但…

LintCode 123 · Word Search (DFS字符处理经典题!)

123 Word Search Algorithms Medium Description Given a 2D board and a string word, find if the string word exists in the grid. The string word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally o…

arcgis api for js4.x 图层要素的增删改---使用服务地址的/applyEdits直接进行删除

添加新要素到图层 _addGeo(){cosnt self thislet url https://......./featurelayer/某某某图层/3let geo 你新绘制的图形let attributes 你新绘制图形的属性信息let addingGraphics Graphic({geometry:geo,attributes:attributes})const pro self._addToLayer(url , JS…

Day57力扣打卡

打卡记录 最小体力消耗路径 链接 Dijkstra 将Dijkstra算法从计算最短路径转化为计算路径最大差值。 class Solution:def minimumEffortPath(self, heights: List[List[int]]) -> int:n, m len(heights), len(heights[0])dist [0] [0x3f3f3f3f] * (n * m - 1)vis set…

iPhone 数据恢复:iMyFone D-Back iOS

iMyFone D-Back iOS 最佳 iPhone 数据恢复,最好的 iPhone 数据恢复软件,恢复成功率最高。 直接从iOS设备、iTunes/iCloud/第三方程序备份快速恢复数据。 有选择地恢复已删除的照片、WhatsApp、消息和 18 多种其他数据类型。 仅通过 iCloud 帐户访问即可从…

关系型数据库-SQLite介绍

优点: 1>sqlite占用的内存和cpu资源较少 2>源代码开源,完全免费 3>检索速度上十几兆、几十兆的数据库sqlite很快,但是上G的时候最慢 4>管理简单,几乎无需管理。灵巧、快速和可靠性高 5>功能简…

如何设定一个N层CNN的Layer,CNN初始化

如何设定一个N层CNN的Layer,CNN初始化 前言干货代码解释 结语 前言 目前人工智能已经融入到我们的生活,大数据模型也是层出不穷。那我们就学习一些简单的模型设置。 干货 代码 # This is the original CNN layer setup, def build_cnn(input_layer):…

Vue router深入学习

Vue router深入学习 一、单页应用程序介绍 1.概念 单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现 2.具体示例 单页应用网站: 网易云音乐 https://music.163.com/ 多页应用网站:京东 https://jd.co…

springboot打成war包及VUE打成war包放入tomcat启动

1.springboot打成war包步骤 首先在springboot启动类中继承SpringBootServletInitializer,重写configure方法,如下: SpringBootApplication() public class StartApplication extends SpringBootServletInitializer {public static void main(String[] …

Java与.Net的区别

Java 和 .NET 是两个不同的软件开发平台,它们在语言、生态系统、跨平台性和开发工具等方面有着不同的特点。 1. 语言:Java 使用 Java 编程语言,而 .NET 使用 C#、VB.NET、F# 等多种编程语言。Java 是一种面向对象的编程语言,它强…

在gen_server使用ets实例演示

Erlang的ETS(Erlang term storage)是一种在内存中存储数据的结构,类似于其他语言中的数据库。它允许你在Erlang程序中存储和检索数据。gen_server是Erlang中用于创建服务器的一种模式,它能够处理并发的客户端请求。 以下是在gen_…

大数据技术10:Flink从入门到精通

导语:前期入门Flink时,可以直接编写通过idea编写Flink程序,然后直接运行main方法,无需搭建环境。我碰到许多初次接触Flink的同学,被各种环境搭建、提交作业、复杂概念给劝退了。前期最好的入门方式就是直接上手写代码&…