MRC4ERE_plus
MRC4ERE_plus copied to clipboard
关于relation prediction模块的实现
关于论文中提到的relation prediction模块,我在代码中似乎没有找到对应的部分。 我注意到代码中在BertTagger类中,仅进行了标签的分类,在测试的时候似乎是基于entity_relation_map词典进行关系query的构建。 所以想请教一下代码中对于relation prediction是如何实现的?是不是我没找到对应的代码~
relation prediction具体是以[CLS]的hidden state作为输入,经过一个线性变换,进行relation set上的多分类。 代码后续会更新,感谢关注!
非常感谢您的回复,我会持续关注一下~ 此外还有几个问题想要请教一下~ (1)论文中公式3计算的是不同query的权重,为什么要在sigmoid函数的基础上乘T?乘后似乎就不能保证权重属于[0,1]区间了。 在提供的代码中,计算权重时似乎更像一个softmax操作,ent_weight = (np.exp(ent_p_list) / sum(np.exp(ent_p_list))) * len(ent_p_list),我也认为softmax似乎更合理,是不是论文的公式有点问题?
(2)论文公式4中a_{t,i}代表什么?根据上文描述,a_{t,i}似乎表示MRC预测的标签,如果是标签的话如何做到加权求和呢?我注意到论文中,似乎是将权重乘100,再计次,进而选择最终的标签。
for i in mask_index: # vote on every token answer = [every_pred_label[j][i] for j in range(num_ques)] answer = [] for j in range(num_ques): if every_input_type == "entity": answer.extend([every_pred_label[j][i]] * int(ent_weight[j]*100)) elif every_input_type == "relation": answer.extend([every_pred_label[j][i]] * int(rel_weight[j]*100)) final_answer = Counter(answer).most_common(1)[0][0]
(3)论文中实验部分,MRC4ERE和MRC4ERE_{N}的区别是什么呢?根据表2的描述,MRC4ERE没有采用DQA和RP。而MRC4ERE_{N}也仅使用了一个自然语言问题。
(4)论文中relation的性能是如何评估的?评估的是三元组的性能么?
期待您的回复!
我打算自己加上关系预测模块,但是遇到了一些困惑:在训练之前,训练feature已经构建完了,并且进去了,我该怎么一边训练一边把筛选后的问题加进去?训练后在下一个epoch加进去吗?
relation prediction具体是以[CLS]的hidden state作为输入,经过一个线性变换,进行relation set上的多分类。 代码后续会更新,感谢关注!
请问预测这部分代码更新了么 谢谢
我觉得没有……