ABSA-PyTorch
ABSA-PyTorch copied to clipboard
RAM 和 TNET 跑出来的ACC和给的数据差2-3个点左右
RAM 和 TNET 用default的值跑出来的ACC和给的数据差2-3个点左右,请问是hyper parameter的原因么? 哪些parameter会对结果影响比较大
100个epoch, batch size 16, lr 0.001,hidden dim =300,ram loss 大概停留在0.3-0.4, acc: 0.7866, F1 0.6724, tnets loss 大概在0.1, acc: 7902, F1 0.6705
有出入是正常的,因为小数据集的确对超参数比较敏感,尤其是非BERT的模型,对num_epoch、dropout、random_seed都比较敏感。 建议新做模型的话,用10折交叉验证版本的train文件,结果不是那么高,但会稳定一些,随机性会小一些。
没有记错的话,原文中batch_size=64
试了下batch size 64, 没什么提高。所以这种非bert的模型的结果,是需要跑很多组random seed才能复现结果么?
ABSA这个小邻域,确实有不少复现方面的问题
IAN,RAM这些模型的结果都比较差,与原论文 相差3,4个点,这是我的参数设置100个epoch, batch size 16, lr 0.002 batchsize:32, 64个epoch RAM在rest14上的结果 test_acc: 0.7866, test_f1: 0.6694 与论文的F1相差更大,IAN结果也比不上原论文。想请问一下,之前在实现这些模型的时候,有达到原论文结果吗?还是数据集划分和原论文不同的原因或者参数设置的原因?请问最好的参数设置或者模型您有保留吗?
是的,同楼上,可能需要一套最好的参数。比如隔壁的ABSA_Keras就有相应的数据。我感觉这个蛮重要的。如果能调到原文,对我们follow是特别有好处的。
@peaceminumi RAM和MemNet的确存在一些复现上的问题,但是IAN按照原文设置还是能到文中的结果的
是的,RAM和MemNet在memory那里复现有点问题。对于RAM或许可以尝试一下不要直接调用BiLSTM,而是自己写。