个人观点,现在的NLP文章,有些是在做积木,微创新,有些文章,是可以的,读起来很美,有些,太过逆了,吃起来没味道,反胃。
文章目录
- 1.CODEIE: Large Code Generation Models are Better Few-Shot Information Extractors
- PromptNER: A Prompting Method for Few-shot Named Entity Recognition via k Nearest Neighbor Search
- Improving Contrastive Learning of Sentence Embeddings from AI Feedback
- Word-Level Representation From Bytes For Language Modeling
- SDCL: Self-Distillation Contrastive Learning for Chinese Spell Checking
1.CODEIE: Large Code Generation Models are Better Few-Shot Information Extractors
传统在解决知识抽取问题时,是把任务建模为text2text问题,比如使用GPT、bart、bert 等等模型。
这篇文章是认为: 代码形式的知识抽取效果优于text2text形式
模型对比图如下:
文章task: NER & RE and transform the task format as code generation format
用字典形式表示两个task的output,比如ner:{“text”: “Steve”, “type”: “person”}
RE:{“rel_type”: “work for”,
“ent1_type”: “person”, “ent1_text”: “Steve”,
“Steve”: “person” “Apple”: “organization” “ent2_type”: “organization”, “ent2_text”: “Apple”}
实验对比 在实验对比中,一个是采用open AI的code-davinci-002,一个是采用text-davinci-002
code prompts consistently outperform text prompts
在 error analyse中,一个是生成文本的structure ,一个是生成文本的semantic fidelity。前者是指output的形式不对,后者是指output中语义不对,比如预定义实体类型中不存在的实体类型。
PromptNER: A Prompting Method for Few-shot Named Entity Recognition via k Nearest Neighbor Search
在之前解决few-shot NER 问题时,是通过构建原型学习的方式。
Most of prototypical networks will utilize the entities from the support set to construct label prototypes and use the query set to compute span-level similarities and optimize these label prototype representations.
文中的few-shot NER 任务,是使用query中的relation type计算span-level similarity 然后优化label的prototypes
模型结构:
在training stage:
在预测实体span上,training 阶段是通过 Biaffine deooder 和prompt based 阶段完成的。
第一个baiffine decoder 使用ROPE编码,满足Ri^T Rj = Rj−i
第二个 classification with prompt
首先得到s-e的语义表示,是取的这些tokens的hidden state得到的representation
然后计算概率和损失函数:
最后,在train 阶段的所有损失函数是:
在inference stage: via KNN search
inference 阶段最终的prediction label of span是:
Improving Contrastive Learning of Sentence Embeddings from AI Feedback
使用大语言模型的feedback,构建pairs,用于模型训练。
a two-step sample pair generation method
在第一步,我们用不同的屏蔽率屏蔽句子中的一些词,然后用GPT-3根据被屏蔽句子中的剩余信息生成新的句子。然后,我们将生成的句子和原始句子结合起来,构建句子对。通过这种方式,我们可以利用屏蔽率来控制句对中两个句子的共享信息量,这将产生具有不同语义相似性的句对。
在第二步,我们利用GPT-3来生成句对的语义相似度分数。这些分数是AI对样本相似度的反馈。这些分数是AI对样本相似性的反馈。由于重建一个被掩盖的句子所引起的语义变化很难衡量,我们利用LLM的语言知识来生成语义相似度分数。第一步中的句子对生成过程确保了人工智能反馈相似性分数的多样性。
最后,我们使用我们生成的样本对和相似性分数来训练句子嵌入的模型。
文章对比了几种不同的feedback方式:
Word-Level Representation From Bytes For Language Modeling
子词标记化(sub-word tokenization)仍有一些缺点,如对噪音不稳定,难以推广到新的语言上。
我们通过引入交叉注意力网络,直接从字节中建立词级表示,以及基于词级隐藏状态的子词级预测来避免词级预测的时间和空间要求,从而彻底改变了这种方法.(introducing a cross-attention network that builds word-level representation directly from bytes, and a sub-word level prediction based on word-level hidden states to avoid the time and space requirement of word level prediction)
Byte2Word 的embedding size只占了10%
字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。
字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。
一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。
整体流程:
实验结果-在不同的噪声情况下:
实验结果-在不同的翻译语言下:
实验结果-在不同的embedding size情况下:
SDCL: Self-Distillation Contrastive Learning for Chinese Spell Checking
中文拼写检查模型。
中文中容易出现的两种错误:语音和字形错误
主要模型:
在图的左侧和右侧,分别是wrong和right sentences。
训练阶段使用的对比学习。
MacBERT (Cui et al., 2020) as a strong backbone to extract the semantic features of X and then use dot products with the word embedding W to output the character distribution
第一个loss:
第二个loss:(对比学习损失函数,constractive Loss)
the batch as negative samples
最小化Lc的目的是使被破坏的token的隐藏状态与它们的正确对应部分相似。
第三个Loss (针对teacher bert,使用cross-entropy loss 保证结果准确):
add a cross-entropy loss for the teacher BERT to repeat the inputs.
实验-预训练语言模型的各项异性变化