Я прочитал следующее сообщение в блоге и попытался реализовать его через Keras: https://andriymulyar.com/blog/bert-document-classification
Теперь я новичок в Керасе, и я не понимаю, как использовать «нейронные сети seq2seq» для сжатия последовательности подразделов (предложений) в глобальный вектор контекста (вектор документа). - через LSTM. .
Например: у меня есть 10 документов, каждый из которых состоит из 100 предложений, и каждое предложение представлено вектором 1x500. Итак, массив будет выглядеть так:
X = np.array(Matrix).reshape(10, 100, 500) # reshape to 10 documents with 100 sequence of 500 features
Итак, я знаю, что хочу обучить свою сеть и взять последний скрытый слой, потому что он представляет вектор моего документа / вектор глобального контекста.
Однако самое сложное для меня - представить выходной вектор ... я просто перечисляю свои документы
y = [1,2,3,4,5,6,7,8,9,10]
y = np.array(y)
или мне нужно использовать выходные векторы с горячим кодированием:
yy = to_categorical(y)
или еще что-то ..?
Насколько я понимаю, итоговая модель должна выглядеть примерно так:
model = Sequential()
model.add(LSTM(50, input_shape=(100,500)))
model.add(Dense(1))
model.compile(loss='categorical_crossentropy',optimizer='rmsprop')
model.fit(X, yy, epochs=100, validation_split=0.2, verbose=1)