Achieving Human-Like Chatbots From Reasoning And Optimization Perspectives