如何申请免费网站,新乡建设网站公司,唯品会网站开发费用,如何给网站加引导页原文链接#xff1a; https://aclanthology.org/2023.acl-long.698.pdf ACL 2023 介绍 问题 目前将prompt方法应用在ner中主要有两种方法#xff1a;对枚举的span类型进行预测#xff0c;或者通过构建特殊的prompt来对实体进行定位。但作者认为这些方法存在以下问题#xf… 原文链接 https://aclanthology.org/2023.acl-long.698.pdf ACL 2023 介绍 问题 目前将prompt方法应用在ner中主要有两种方法对枚举的span类型进行预测或者通过构建特殊的prompt来对实体进行定位。但作者认为这些方法存在以下问题1时间开销和计算成本较高2需要精确的设计模板难以在实际场景中应用。 IDEA 因此作者提出了一种双插槽的prompt模板来分别进行实体定位和分类模型可以同时处理多个prompt通过对每个prompt中的插槽进行预测来提取所有的实体。 如下图所示a表示根据实体类别构造prompt的方法b表示根据span构造prompt的方法c表示作者所提出的双插槽方法。 方法 整体的结构如下图所示 Prompt Construction 模型的输入由两部分组成M个prompt和句子X。具体的当输入的句子x“Jobs was born in San Francisco”则输入序列就表示为T i表示第i个promptpi和Ti分别表示实体的位置和类别M表示prompt的数量通过对每个prompt中对应的位置进行解码来提取实体。
Prompt Locating and Typing
Encoder 使用bert对T进行编码后通过位置索引得到句子X与两个插槽的编码 这里作者为了对句子进行独立于prompt的编码为啥要进行独立编码好像是为了不让prompt对句子产生影响 实验证明这样的效果会好一点点通过一个n*kk表示prompt序列的长度的左下角掩码矩阵来阻断prompt对句子的注意。 为了增强不同prompt之间的交互作者设计了一个额外的prompt交互层每层中包括插槽之间的自注意力以及句子和插槽的交叉注意力q是插槽key和value是句子即位置和类别两种插槽的最终表示为 Entity Decoding 通过对prompt中的position slot位置插槽和type slot类别插槽进行解码得到最终的实体。 具体的对于第i个prompt将其type slot 送入一个分类器得到其属于不同类别的可能性 对于实体的位置转化为确定第j个词是第i个prompt所预测实体的起始词还是结束词。首先将position slot 送入一个线性层然后与句子中每个单词的表征进行相加得到融合表征对其进行二分类得到第j个词是第i个prompt预测实体的左右边界概率 最后m个prompt所预测出的实体可以表示为 在推理时同一实体跨度选择分数最高的类别。
Dynamic Template Filling 由于prompt和实体之间没有确切的对应关系也就不能提前为其分配标签。因此将插槽视为一个线性分配问题按最小代价原则进行分配。作者提出了一种动态模板匹配机制在实体和prompt之间进行二部图匹配。 gold entity表示为 其中k表示实体的数量分别表示第i个实体的左右边界和类别。即与prompt对应的最佳匹配为 其中第i个实体与第θi个prompt之间匹配的代价为这里没看懂这个计算公式文中也没有进一步说明预测的实体与真实实体相乘 但传统的二方图匹配算法是一对一的即一个实体只能分配给一个prompt这就会导致部分prompt匹配到空集降低了训练效率。因此作者将其扩展到了一对多的情况在预定义好的下限值U下重复gold entity来扩充Y实现一个实体能分配给多个prompt。 模型的loss由以下两部分的loss组成 实验
对比实验 在ACE04、ACE05、Conll03这三个数据集上进行实验结果如下所示 域内Few-shot 领域内few-shot场景下的实验结果如下图所示 对conll03数据集进行下采样使得这四个类别的样本数分别为3763、2496、100、100.
跨域Few-shot 模拟跨领域few-shot的情况进行实验在conll03数据集上进行预训练然后迁移到MIT Movie、MIT Restaurant和ATIS这三个数据集的部分样本上10、20表示每个类别的样本数进行实验结果如下图所示 作者认为由于promptNER分别对位置和类别进行预测适用于语法一致而语义不一致的跨域场景。
消融实验 作者对模型的主要模块进行了消融实验结果如下所示 消融设置 1根据实体出现的顺序来分配给prompt 2不进行标签的扩充比如使用传统的一对一二部图匹配 3使用原始的bert用于对句子和prompt进行编码 对不同的prompt模板也进行了实验结果如下所示 Inference Efficiency 对于有N个单词、C个类别的句子基于实体类型和span的promt方法分别需要运行C和N(N-1)次以自回归生成实体序列的方法需要运行T步实体的长度才能获得所有的实体。 而PromptNER只需要运行一次就能得到所有的实体。在conll03数据集上进行推理速度的实验结果如下所示 总结 之前用在ner上的prompt都是对实体位置和类别分开进行的这是第一篇我读到的 用这种两个slot的方法来对实体及其类别分别进行处理。但是感觉这样没有语义上的可理解性也不太符合预训练任务因为感觉一句话后面也不会直接接上实体第二个创新点感觉标签动态分配那一块没有讲清楚很多方法都是使用这种动态分配标签的方法而去作者扩展为一对多的方式竟然是直接复制有点过于简单了真的。但是作者做的相关实验很充分 另外作者对prompt的模板进行了消融实验其实这三种prompt相差都不大感觉都差不多只是[pi][Ti]这种模板附加信息更少不会超出bert的最大长度。不过可以借鉴作者做的推理效率那一块的实验。