How does GlobalMaxPooling work on the output of Conv1D? In the field of text classification, it is common to use Conv1D filters running over word embeddings and then getting a single value on the output for each filter using GlobalMaxPooling1D. 

As I understand the process, the convolutional filter is a matrix of the same size as the $$\text{size of filter matrix} = \text{embedding dim}\cdot\text{width of the filter}$$ The filter matrix is then applied to the input embeddings (multiplied element by element) which produces a matrix of the same size for each filter position. Not a single number. 

So how does the global max pooling get a single number on the output? Does it simply take a maximum over all the values in all the output matrices, or is there any other processing?

Please correct me if I'm wrong.
Apparently I forgot how the convolution works. The input is multiplied element wise with the filter weights and the products are then summed. That's how a single value is obtained on the output.