Distributed Diverging Topic Models: A Novel Algorithm for Large Scale Topic Modeling in Spark