Como a camada de convolução Keras 1d funciona com incorporação de palavras - problema de classificação de texto? (Filtros, tamanho do kernel e todos os hiperparâmetros)

Atualmente, estou desenvolvendo uma ferramenta de classificação de texto usando o Keras. Funciona (funciona bem e eu tenho a precisão de validação de 98,7), mas não consigo entender exatamente como a camada de convolução 1D funciona exatamente com dados de texto.

Quais hiperparâmetros devo usar?

Eu tenho as seguintes frases (dados de entrada):

Máximo de palavras na frase: 951 (se for menor - os preenchimentos são adicionados)Tamanho do vocabulário: ~ 32000Quantidade de frases (para treinamento): 9800embedding_vecor_length: 32 (quantas relações cada palavra tem em incorporamentos de palavras)batch_size: 37 (não importa para esta pergunta)Número de etiquetas (classes): 4

É um modelo muito simples (criei estruturas mais complicadas, mas, estranhamente, funciona melhor - mesmo sem o uso do LSTM):

model = Sequential()
model.add(Embedding(top_words, embedding_vecor_length, input_length=max_review_length))
model.add(Conv1D(filters=32, kernel_size=2, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(labels_count, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())

Minha principal pergunta é: Quais hiperparâmetros devo usar para a camada Conv1D?

model.add(Conv1D(filters=32, kernel_size=2, padding='same', activation='relu'))

Se eu tiver os seguintes dados de entrada:

Contagem máxima de palavras: 951Dimensão de incorporação de palavras: 32

Isso significa quefilters=32 apenas digitalizará as primeiras 32 palavras descartando completamente o restante (comkernel_size=2)? E devo definir filtros para 951 (quantidade máxima de palavras na frase)?

Exemplos em imagens:

Então, por exemplo, estes são dados de entrada:http://joxi.ru/krDGDBBiEByPJA

É o primeiro passo de uma camada de convulsão (passo 2):http://joxi.ru/Y2LB099C9dWkOr

É o segundo passo (passo 2):http://joxi.ru/brRG699iJ3Ra1m

E sefilters = 32, camada repete 32 vezes? Estou correcto? Então, eu não vou conseguir dizer 156ª palavra na frase e, portanto, essa informação será perdida?

questionAnswers(1)

yourAnswerToTheQuestion