WuHuRestaurant/xf_event_extraction2020Top1

对于role提取器,Trigger Distance 是可学习的,还是预先设置的

Closed this issue · 7 comments

ksboy commented

对于role提取器,
在这篇文章中,Trigger Distance是相对距离+0/1指示向量,如下图所示:

而在代码中,Trigger Distance 则是可学习的Embedding向量,如下所示:

self.trigger_distance_embedding = nn.Embedding(num_embeddings=512, embedding_dim=embedding_dim)

为什么会产生不一致,以及作者有没有对比过着两种方法?

是可学习的Embedding向量,当时实验是把这个当做一个特征使用,与transformer里面的相对距离向量不一样,transformer里面用的还是绝对距离。

ksboy commented

是可学习的Embedding向量,当时实验是把这个当做一个特征使用,与transformer里面的相对距离向量不一样,transformer里面用的还是绝对距离。

谢谢!那有做对比实验么?我比较好奇第一种方法的实验结果

ksboy commented

另外,我看到你用到了Conditional Layer Norm,请问有参考文献么,我没有找到。
以及加入 Conditional Layer Norm后效果提升了多少?
谢谢

1.你的意思是说用TRM里面的sin/cos的固定的位置编码?那个当时没有想到,对比实验倒是没做。
2.Conditional Layer Norm 是苏建林自己提出的一种结构,博客地址:https://spaces.ac.cn/archives/7124。Conditional LayerNorm 确实是有一定的提升的,但是很小,只有0.几 具体忘记了

ksboy commented

1.你的意思是说用TRM里面的sin/cos的固定的位置编码?那个当时没有想到,对比实验倒是没做。

也不是,就是图中所示的 相对位置编码(红框标出部分):13 12 11 10 ... 3 2 1 0 0 1 2 3 4 5

这个就是代码里面的实现方式,主要想法是红框里面的相对位置表示一个距离特征,这个特征可以被映射到一个可学习的 Embedding 里面,作为特征 concat 到 bert 的输出里面。这个提升算是比较明显 0.5 以上吧

ksboy commented

这个就是代码里面的实现方式,主要想法是红框里面的相对位置表示一个距离特征,这个特征可以被映射到一个可学习的 Embedding 里面,作为特征 concat 到 bert 的输出里面。这个提升算是比较明显 0.5 以上吧

明白了,我之前理解的有问题:我以为是直接使用相对距离向量,不经过Embedding层。
谢谢你!