introduce soft_topic_assign!