Efficient Algorithms for t-distributed Stochastic Neighborhood Embedding