code: private static float calcLearningRate(float initLearningRate, int epochs, long totalProcessed, long vocabWordCount) {
      float rate = initLearningRate * (1 - totalProcessed / (float) (epochs * vocabWordCount + 1));
      if (rate < initLearningRate * LEARNING_RATE_MIN_FACTOR) rate = initLearningRate * LEARNING_RATE_MIN_FACTOR;
      return rate;
    }
docs: Calculates a new global learning rate for the next round
  of map/reduce calls.
  The learning rate is a coefficient that controls the amount that
  newly learned information affects current learned information.