WuHuRestaurant / xf_event_extraction2020Top1

科大讯飞2020事件抽取挑战赛第一名解决方案&完整事件抽取系统
536 stars 123 forks source link

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

Closed ksboy closed 3 years ago

ksboy commented 3 years ago

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

而在代码中,Trigger Distance 则是可学习的Embedding向量,如下所示: https://github.com/WuHuRestaurant/xf_event_extraction2020Top1/blob/156b2fd429c3a752134b4050f97db7a06ea38c24/src_final/utils/model_utils.py#L200 为什么会产生不一致,以及作者有没有对比过着两种方法?

WuHuRestaurant commented 3 years ago

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

ksboy commented 3 years ago

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

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

ksboy commented 3 years ago

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

WuHuRestaurant commented 3 years ago

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

ksboy commented 3 years ago

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

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

WuHuRestaurant commented 3 years ago

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

ksboy commented 3 years ago

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

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