nlpjoe / CCF-BDCI-Automotive-Field-ASC-2018

CCF-BDCI 2018年汽车行业用户观点主题及情感识别挑战赛 第6名解决方案
141 stars 47 forks source link

模型实现细节问题 #4

Open 2013303386 opened 5 years ago

2013303386 commented 5 years ago

最近Fork了楼主的代码,楼主实力确实强,顶礼膜拜。下面有几点实现细节问题想问下楼主,烦请回答下。

  1. Aspect Embedding初始化问题。 我看了实现代码,发现Aspect Embedding是随机初始化的,通过模型自主进行学习。我也看到楼主用预训练的表示进行初始化,代码被注释掉了。我想问下楼主,这两者在实际情况下的效果差别?另外,还有,楼主采用了两次Aspect Tile,Attention之前一次,Attention之后一次,我想问下楼主这样做的原因是什么?
  2. Early Stop与Learning rate decay问题 我看代码中其实采用了Early Stop及Learning rate decay,但是代码被注释掉了,我想问下前后的差别有多少?
  3. dev 验证及batch扩充问题 最后一个是小问题,我看代码中将dev放在train的batch遍历中,采用step进行控制,传统的我见过的,都是先训练完train,然后进行dev,我想问下这两者哪一个是标准的? 对于batch扩充问题,楼主采用对不足的部分进行复制,以前看有的代码采用对于整个数据进行随机扩充为batch_size的整数倍,另外想问下对于TF的动态batch_size的实现问题(采用assign?),楼主有好的思路?
nlpjoe commented 5 years ago

注释掉的代码是因为效果没提升,甚至效果更差了,具体差别多少忘了。

在我的理解,batch_size只是批量随机梯度下降算法的一个超参数,根据batch_size条数据的loss更新一次权重,填充成整数倍和随机打乱并无差别。如果要数据加强,可以随机打乱句子顺序或者删词或者翻译。动态batch_size不知道数学依据是啥

2013303386 commented 5 years ago

非常感谢!