Conll2003相关数据集是基于新闻的(命名实体识别NER和实体识别任务的语料库集合 | INFORX (inforscan.com))
AIM:看改进的transformer的自适应编码
code:https://github. com/fastnlp/TENER.
基于conll2003数据集。
改进两个方面,主要都是在encoder位置。
没理解character-level和word-level的encoder区别,需要check一下。
补充character-level encoder
对比模型,一个是transformer在两个level维度都用到transformer,还一个是利用改进的自适应编码(注意方向和位置的aen),以及利用cnn进行character-level编码,三个对比。
整体还对比了利用ELMO进行embed的F1效果。
主要改进:分word-level和character-level两个维度分别进行encoder的替换改进。
如果要参考加的transformer自适应编码,要再去看他的中间公式计算,暂时没看,只看了大概含义。
AIM:看embedding处加的aen变压器
self-aen的transformer block,结构如下:
其实就是把transformer的encoder单独拆出来了而已....
也是基于中文dataset的,参考价值不大,用的单向lstm,transformer处也没多做修改看起来,position encoder也没变,就这样吧这篇...
AIM:应该是看embedding,charLSTM和wordLSTM
基本模型还是biLSTM-CRF
数据集还是conll2002和conll2003
主要使用的特征是word-level 和 character-level,word-level是用预训练好的词表,进行embed转换,主要改进应该是在character-level,他说的是:非手动添加前后缀,而是在训练过程中生成前后缀,这个前后缀怎么理解?生成过程利用的是biLSTM,bi的forward的输出是后缀,bi的backward输出是前缀。最后这两个embed拼接。
很多对比实验,很多语种的对比实验。
我觉得我需要好好去理解一下character-level还有word-level等这块的区别,还有什么前后缀,还有embed是word转vector,encoder是vector转tensor吗?
# 理解embedding:(44条消息) 深度学习中Embedding层有什么用?_赵大寳Note的博客-CSDN博客_embedding层
词转词向量
# 理解character embedding 和 word embedding
character embedding是将单词的字符当成一个序列,通过如cnn等模型训练得到一个对应的字符向量;word embedding是使用预训练好的模型获取的单词的词向量。
word embedding是将 单词表征成一个特征 。可以分为word based embedding和character based embedding。
word based embedding,比如word2vec,glove。这种方式就是找一个word embedding的矩阵,通过one hot向量相乘得到对应的特征。
character based embedding。是找一个character embedding的矩阵(如已有的word embedding得到初步的表示),然后通过lstm得到word embedding的特征。
AIM:应该是看transformer的改进
general model:embed由word-level和character-level组成,token表示(是否可以理解为,token representation应用一个model,这个model[每个token的输入]的输入是类似glove字符表示[词向量],输出为模型output,整个model里流动的是vector,[参考:(44条消息) 关系抽取RE的一些最新论文解读(三)_BugLess++的博客-CSDN博客_关系抽取最新论文])
数据集conll2003,conll++,ontonotes
在预处理部分加了替换,实体替换和同义词替换,同义词替换我能理解,为什么要实体替换?
做的对比实验,分别用单层biLSTM和双层transformer做encoder,模型中间结构不变。
embed处用的是glove转的word embedding和intnet转的character embedding(intnet基本结构依旧是cnn,但在层数和卷积核size设置上做了调整,intnet使用的是三层conv,[3,4,5]的kernel size设置,应对不同n-grams问题)[#1 论文中提到cnn较transformer比,无法对不同n-grams进行embed,有缺陷,所以使用transformer]
结果上进行了实体替换的transformer模型表现最佳,高于1#论文的效果。
AIM:看组合模型方法
挺无语的...主要是把transformer的encoder改了用bilstm替换原forward,用embedding层代替word2vec,但没有说embedding方法。
AIM:看embedding
应用背景太局限,使用的几个预处理模型都是针对医学领域的,无法迁移。
AIM:看model
也主要针对的是特定医学领域,改动的是几个bert的对比。
可以查一下embedding layer部分的mix feature。
理解token embedding、segment embedding、position embedding。
token embedding:将词转成固定维度的向量。main step。
segment embedding:加入[seg],标识构成是否由多个句子,有点类似mask,句1是一串0,句2是一串1,如果只有单个句子segment embedding为全0。
position embedding:根据每次input_seq决定,是为了确定并区分句子内词的输入顺序,对应不同句子,同样pos的embedding是一样的。