caishiqing / joint-mrc

机器检索阅读联合学习,莱斯杯:全国第二届“军事智能机器阅读”挑战赛 rank6 方案
126 stars 25 forks source link

关于模型架构的理解 #4

Open FankLi opened 4 years ago

FankLi commented 4 years ago

你好,非常感谢你的这个非常棒的项目! 关于检索和mrc两个任务,具体怎么融合的,想确定一下,不知道我的理解是否有误?

  1. nsp = keras.layers.Dense(1, activation='sigmoid', name='nsp')(h_cls) 这个就是检索模型吗?
  2. h_context = MaskQuest()([hidden, seg]) 这层的输入为什么是[hidden, seg],这样输入[h_cls, seg]是否也是可以的呢?
  3. 这个模型是做什么的呢? start = keras.layers.Input(shape=(config.seq_maxlen,), dtype='float32') end = keras.layers.Input(shape=(config.seq_maxlen,), dtype='float32') decoded = Answer(config.ans_maxlen)([start, end]) self.decoder = keras.models.Model([start, end], decoded)

期待并感谢你的回复!!!

caishiqing commented 3 years ago

问题1就是检索模型; 问题2,MaskQuest层的作用是在拼接后的上下文中屏蔽问题,因为答案是在篇章中判断首尾位置,所以需要把拼接在前面的问题的所有token位置mask掉,就是根据seg来mask; 问题3,Answer层是问题解码层,根据答案起点位置的概率分布和结束位置的概率分布选择概率最高的片段(即首尾位置的组合),是一个无参数的网络层,在首尾组合矩阵的合法元素中提取最大概率的元素。