Using Topic Modelling to learn from Open Questions in Surveys

Another presentation I gave at the General Online Research (GOR) conference in March1, was on our first approach to using topic modelling at SKOPOS: How can we extract valuable information from survey responses to open-ended questions automatically? Unsupervised learning is a very interesting approach to this question — but very hard to do right.

In a first proof-of-concept we implemented an extension of the traditional LDA-algorithm by Blei, Ng, and Jordan (2003), namely “Embedding-based Topic Modelling” (Qiang et al., 2016). The algorithm uses the magic of word embeddings to incorporate knowledge about word relationships into the modelling, which seemed like a good idea when we started.

The general idea of ETM is to use word embeddings at two stages: First, the raw texts are clustered based on document distances (Word Movers Distance; Kusner et al., 2015). Second, the LDA model is extended by edges between topic assignments if words are similar, i.e. similar words should more likely be assigned the same topic (effectively performing a MRF-LDA, Xie et al., 2015). Both steps are computationally very expensive — possibly a reason why the algorithm has not yet been used very often.

The presentation very briefly explains the models we used and the shows the results of two example data-sets, one in English (Sentiment140) and a proprietary German one.

In contrast to many machine learning papers, our primary focus was on usefulness: Can we and our colleagues in the project teams work with the results from the algorithm? Bottom line: Without proper finetuning of the hyper-parameters the results were quite unsatisfactory for any practical use.

Not good to see here, but results differed between traditional LDA and ETM (as we hoped they would). But 20 topics were too many for any reasonable results in the 10000 documents we used in the example, so there is a lot of noise…

Learnings and Next Steps

We did we learn from our proof-of-concept and what are we are going to do?

Word embeddings are useful, because they contain pre-trained information which can be used quite efficiently.

Hyper-parameters need careful tuning and we need to find some useful defaults which work across a variety of projects.

The implemented k-Means algorithm is very inefficient and can be improved e.g. by using Mini-Batch k-Means or X-Means.

As I’m primarily interested in using the algorithm in real-world projects, I feel that ETM is not yet useful enough to automate a first look on the texts in an unsupervised way. Using word embeddings, k-Means and simple word extraction using a POS-tagger currently seems more fruitful. Nevertheless, I think it is worthwhile to keep looking at LDA extensions — someone might come up with a bright idea and an efficient algorithm.