使用稀疏y_train数据训练RNN进行抽象文本汇总

时间:2019-05-17 12:27:01

标签: python keras recurrent-neural-network summarization seq2seq

我正在研究一种法律文本摘要问题的抽象解决方案,该问题具有所需的所有训练样本,但没有东西可用作我的“标签”(y_train / y_test)张量。 到目前为止,我的想法是用LSTM层构建一个简单的单发RNN,并使用伪损失函数和无标签张量对其进行训练,以查看仅Embedding能否提供令人满意的结果。 它没有:盯着它看,比使用TextRank的结果差。

我正在考虑的另一种方法是自己准备大约50个摘要,然后将其馈送到网络以“启动”并使用未标记的数据来训练嵌入层。

这可能吗?我已经看到过使用这种方法的提法,但是还没有找到任何例子。 我想我不能仅仅将稀疏标签张量输入模型中,因为零值可能会使实际有用的张量无效?

我的数据集包含伊利诺伊州产生的法律法院意见(10万个样本)。数据集没有其他可用于训练的有用信息(没有流行语,没有关键字)。我使用哈希技巧算法对文本进行标记和矢量化。

我的模型

input_l = 25000 #Padded input length
sum_length = 100 #Summary length
vocab_size_2 = 160000
sample_size = 1000
batch_size = 8

model = Sequential()
model.add(Embedding(vocab_size_2, 128, input_length=input_l))
model.add(LSTM(128))
model.add(RepeatVector(sum_length))
model.add(LSTM(128, return_sequences=True))
model.add(TimeDistributed(Dense(vocab_size_2, activation='softmax')))
model.compile(loss=custom_loss(), optimizer='adam')

model.summary()

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_1 (Embedding)      (None, 25000, 128)        20480000  
_________________________________________________________________
lstm_1 (LSTM)                (None, 128)               131584    
_________________________________________________________________
repeat_vector_1 (RepeatVecto (None, 100, 128)          0         
_________________________________________________________________
lstm_2 (LSTM)                (None, 100, 128)          131584    
_________________________________________________________________
time_distributed_1 (TimeDist (None, 100, 160000)       20640000  
=================================================================
Total params: 41,383,168
Trainable params: 41,383,168
Non-trainable params: 0
_________________________________________________________________

0 个答案:

没有答案