Non-Keras contributions are also welcome since the question is very concrete already.

Imagine I have a sequence $S_i = s_0, s_1, ..., s_n$, where $s_k$ is the k-th element that represents an element of the sequence $S_i$. Now I want to cluster these sequence elements if they are "similar" (this similitude will be trained with training data).

Here is the structure of a training sample $x_i$ with len=6:

$x_i = s_0, s_1, s_2, s_3, s_4, s_5$

$y_i = y_0, y_1, y_2, y_3, y_4, y_5$

Where $s_k$ are vectors (300 dimensional vectors of Real values) and $y_i$ is the cluster where that vector pertains (e.g. 1).

Here is a possible example of the labels for this sample:

$y_i = 0, 0, 1, 0, 1, 2$

Meaning that:

  • The elements 0, 1 and 3 of the sequence are related (therefore put in the same cluster)
  • Elements 2 and 4 are also related, and
  • Element 5 is put alone in another cluster.

I have 3 questions:

  • How would this prediction be represented? As far as I know, I should return_sequences=True in the LSTM layer so for each input sequence, I have an output sequence, but I do not know what should I do with that output.
  • What would my loss function be like? I guess it would be some kind of clustering metric like V-Measure Score, that gives an error wrt an input label of clusters, but I am not sure what would be the approach to implement a loss like this.
  • What would the final layer of my network be like? Since given a sequence element, my prediction would have to be either to put the sequence element in a new cluster or some cluster where a prior sequence element has been put into, I am not sure how to model this.

Thanks in advance.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.