【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching
【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching
最近到了研一下学期,很多身边的同学也开始有了成果,但本菜鸡一点成果都没有【大哭】所以也没什么好写的。虽然菜鸡口头上不说,但内心也感受到非常之焦虑。最近读论文系列也没有很好的更下去,心里一直在想着五一要去哪里玩,菜并焦虑并摆烂,主打一个啥也干不好。所以这周要打起精神,好好的更新博客。
这篇文章是ACL2022的一篇关于跨域命名实体识别的论文,创新点主要是对源域和目标域标签不匹配问题提出一种将标签建模为标签图,并通过将源域和目标域的标签图进行图匹配来提升模型的预测性能。
背景
下面我们先来看一下这篇论文的提出背景:
- 跨域NER是一个实际但具有挑战性的问题,由于现实场景中的数据稀缺,获得足够的特定领域的数据通常是昂贵和耗时的。常见的做法是首先在丰富资源的一般领域学习NER模型,然后将模型适应特定领域。由于跨域实体类型之间的不匹配问题,一般领域的广泛知识不能有效地转移到目标域NER模型。
- 为此,我们将标签关系建模为一个概率分布,并在远标签控件和目标标签空间中构造标签图。为了增强标签结构的上下文表示,我们将标签图融合到BERT的单词嵌入输出中。通过将标签关系表示为图,我们将跨域NER表示为一个图匹配问题。
- 据我们所知,我们是第一个捕获跨域NER的标签图结构的人。在本研究中,我们专注于提高基于预训练-微调训练范式的跨域能力,只有目标域标记数据进行域适应。
下面我们先来看一下这个模型是如何通过标签图之间的图匹配来提高模型的性能,以下面这句“David was a member of both ACL and ICCL”为例
在本例中,“ACL”是目标域中的一个“会议(conference)”命名实体。当源域和目标域之间的标签集完美匹配时,源NER模型自然地以最高的概率预测“会议”。然后,目标模型直接从源域学习这个属性。当两个标签集不匹配时,源NER模型可以将“ACL”预测为一个“组织(organization)”,因为标签“组织”可以在源域中看到。通过源域中“ICCL”和“David”的得分分布,我们可以将它们与“ACL”的关系建模为图结构。然后,目标模型通过图匹配来学习标签结构,并正确的将“ACL”预测为“会议”。这样,即使当两个域的标签集不同时,也可以学习标签关系。
给定一个在源数据集上预训练的模型f0,在实验中假设只有目标数据集和模型f0可用,因为源数据集通常是非常大的。
接下来,我们来看一下完整的模型结构:
由于源标签集Ys和目标标签集Yt可能不匹配,所以f0不能直接应用于目标数据。一种常见的做法是将f0分为两部分:用于学习一般表示的主干网络(backbone)和用于将表示映射到标签空间的任务特定层(classifier)。在整个研究过程中,我们采用BERT作为我们的主干模型,而全连接(FC)层作为任务特定层。
Label Graph Construction
我们分别用源模型和目标NER模型的概率输出来构造源图和目标图。
我们将每个目标标签映射为源标签的概率分布。获得这个映射(即条件分布)的一种简单方法是对每个目标实体类型的所有样本的源数据的预测进行平均。
ys/yt为源/目标标签,T为平滑概率分布的温度参数,|Dt|为具有标签y的目标域训练样本数。预先训练好的模型f0被认为是一个近似于源标签ys上的概率分布p的概率模型。
接下来,我们构造源图Gs(Vs,Es),其中节点表示目标标签,边表示节点之间的语义相似性。为了消除不同维尺度的影响,我们将节点对的平均距离除以后对图节点进行归一化,以l2距离作为距离度量。
|Yt|为目标标签的数量,l2为距离函数。
然后当且仅当两个节点的距离小于阈值时,我们在两个节点之间加边。
与源图类似,我们通过微调模型f构造目标图Gt(Vt,Et)。在目标图中,节点表示目标标签,边表示在目标标签空间中度量的语义相似度。
Label Semantics Fusion
通常在NER中,一个命名实体的真实标签与上下文有关(例如,标签“研究者(researcher)”可以通过标签“会议”来推断)。在这一部分中,我们将学习到的图结构融合到BERT提供的单词上下文嵌入输出中,以建模句子的标签语义关系。
给定一个具有标签序列Y的句子X,通过主干网络可以得到每个token的上下文表示hj(第j个token的上下文表示hj)。然后,我们在微调之前随机初始化标签表示ci(第i个标签的标签表示ci)。
标签表示ci表示每种实体类型的语义含义,并在微调过程中进行学习。对于句子X,我们应用一个标签引导的注意机制来提取特定于标签的成份如下:
aij表示第j个token对第i个标签的信息丰富程度。对于每个句子,ui建模其与每个实体类型的语义相关性。这里我的理解是通过将句子中所有token与标签的相关性累加起来,可以看做是一整个句子与标签的相关性也就是可以看作一个多标签分类任务,看这句话中可能包含哪几个命名实体也就是标签。
接下来,我们利用GCN,通过在相邻节点之间传播消息,来增强每个标签特定组件的表示。
最后,我们利用token引导的注意机制,将聚合的标签特定组件融合到每个单词的上下文表示中:
我们将u的加权和映射到hi的相同空间,并将它们加在一起,允许信息融合。
根据特定任务的FC层,可以计算出NER任务的分类损失:
此外,我们还引入一个辅助任务,以确保label-specific components专注于正确的实体类型。具体地说,该模型预测了句子中出现的实体类型,这是一个多标签分类任务。辅助任务的损失计算为BCE是二进制-交叉熵的损失
Graph Structure Matching
由于源图Gs是由预先训练好的LM(预训练模型)f0构造的,因此他自然地包含了来自丰富资源领域的先验知识。在本部分中,我们利用不同标签空间中构造的标签图进行图匹配,利用源图中标签之间的语义关系。
实验
相关文章:

【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching
【菜鸡读论文】Cross-domain Named Entity Recognition via Graph Matching 最近到了研一下学期,很多身边的同学也开始有了成果,但本菜鸡一点成果都没有【大哭】所以也没什么好写的。虽然菜鸡口头上不说,但内心也感受到非常之焦虑。最近读论…...

代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
文章目录 860.柠檬水找零406.根据身高重建队列452. 用最少数量的箭引爆气球:star: 860.柠檬水找零 链接:代码随想录 5美元相当滴珍贵 解题思路: 情况一:账单是5,直接收下。 情况二:账单是10,消耗一个5,增加…...

爬虫为什么需要多线程
多线程爬虫是一种同时运行多个线程来提高爬取速度的爬虫方式。通过将大量的工作分配给不同的线程,可以减少爬虫的运行时间,提高效率。不过需要注意的是,在爬取过程中需要合理的管理线程数,以避免对被爬取的网站造成过大的负荷。 …...

下一代智能座舱风口下,“超级”Tier 1强势崛起
智能座舱进入全新周期,强者愈强的趋势会快速显现。 可以观察到,智能座舱功能日趋多元化。从多屏互动到舱内全场景多元交互,到更多娱乐平台的上线,智能座舱已经从最初的重多功能转变成重体验。 从架构层面来看,各个功…...

第 三 章 UML 类图
文章目录 前言一、依赖关系(虚线箭头)二、泛化关系:继承(实线空心箭头)三、实现关系(虚线空心箭头)四、关联关系(一对一为实线箭头,一对多为实线)五、聚合关系…...

java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…...

内网穿透实现在外远程连接RabbitMQ服务
文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 转载自远控源码文章:无公网IPÿ…...

抖音数字人主播app
抖音数字人主播app是指一款利用计算机生成的虚拟数字人,在抖音平台上进行实时音视频传输和互动的应用程序。该软件可以让用户创建自己的虚拟数字人,并在抖音平台上进行实时互动和交流。 抖音数字人主播app通常需要包含以下功能: 3D建…...
亚马逊平台使用API接口通过关键字搜索商品
亚马逊公司(Amazon,简称亚马逊;NASDAQ:AMZN),2022年营收为5140亿美元, 是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图。是网络上最早开始经营电子商务的公司之一ÿ…...

《花雕学AI》用ChatGPT创造猫娘角色:人工智能角色扮演聊天对话的风险与对策
出于好奇心,我以“ChatGPT,调教猫娘”为题,开始了解ChatGPT角色扮演提示语的用法。ChatGPT给出的介绍是,调教猫娘是一种利用ChatGPT的角色扮演功能,让模型模仿一种类似猫的拟人化生物的行为和语言的活动,并…...

软件测试常规测试过程模型——V模型与X模型
一、V模型简单介绍及讲解 V模型是软件测试过程模型中最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它的模型。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过…...
feign-starter
使用说明 功能 自动装配 设置客户端不主动重试日志打印客户端负载均衡json 转换使用 JacksonUtil 如何引入 com.hete.support xx-feign-starter 如何配置 超时时间 ⚠️ 默认值比较大,需要手动根据实际场景设置 feign: client: config: # 默认配置,…...

FVM初启,Filecoin生态爆发着力点在哪?
Filecoin 小高潮 2023年初,Filecoin发文分享了今年的三项重大变更,分别是FVM、数据计算和检索市场的更新,这些更新消息在发布后迅速吸引了市场的广泛关注。 特别是在3月14日,Filecoin正式推出了FVM,这一变革使得Filec…...

对比度亮度调整与通道分离合并
对比度亮度调整与通道分离合并 对比度亮度调整: 1)原理介绍: g’ g * Mult Add ⚫ g 表示原图像像素 ⚫ g’ 表示输出图像像素 ⚫ Mult 被称为增益(gain), 通常用来控制图像的对比度 ⚫ Add 通常被称为偏置(bias), 通常用来控制图像的亮度 g’(i,j) Mult * g(i,j) Add …...
Java终止线程
1、正常运行结束 程序运行结束,线程自动结束。 2、使用stop方法强制终止 不安全,不建议使用: 调用 stop() 方法会立刻停止 run() 方法中剩余的全部任务,包括在 catch 或 finally 语句中的,并抛出ThreadDeath异常&a…...
Qt的Qss用法
Qt 的 Qss 是一种用于定义用户界面的样式表语言。它可以用来定义控件的颜色、字体、边框、背景等样式,可以很方便的实现自定义的样式效果。 Qss 的基本语法和 CSS 类似,主要是由选择器和样式属性构成。 选择器 选择器用来指定要样式化的控件ÿ…...
数塔dp -A
文章目录 数塔dp -A程序设计程序分析数塔dp -A 【问题描述】 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点, 则经过的结点的数字之和最小是多少? 已经告诉你了,这是个DP的题目,你…...

Spring MVC 接收 json 和返回 json (14)
目录 总入口 测试case 源码分析 1. 针对RequestBody的参数解析 2. 针对 ResponseBody 的返回值处理 总入口 通过上一篇Spring MVC 参数解析(13)_chen_yao_kerr的博客-CSDN博客的说明,相信大家对Sping MVC的参数解析有了一定的了解&…...
注释和关键字
注释 注释概念 ●注释是在程序指定位置添加的说明性信息 ●简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码 例如: public class HelloWorld {//这是通过class定义了一个类,类名叫HelloWorld public static voi…...

第一次参加CSDN周赛,这体验很难说···
👨💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSDN周赛】 本篇文章目录 🌏前言🌏一、勾股数🌸题目描述🌸题解 &a…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...