Accumulator has the ability to do the fine-grained updating for LDA parameters. For aggregate, I have to use `mapPartitions` as shown in my previous version of LDA impl [here](https://github.com/yinxusen/lda_spark/blob/mappartition/src/main/scala/org.apache.spark.mllib.expectation/GibbsSampling.scala#L77). However, the previous impl is slower than current version, partly because the serialization of the huge parameters.