什么?这么多家在做?那谁,微软家的冰姐,怎么拿真人当 logo?
你有没有关心过小爱,问她 “你今天怎么样?”
这后面的相关技术,就是今天的主题。
对话技术分为检索式和生成式。
崔志讲检索式方法。
检索嘛,首先需要准备好语料库。
检索是根据问句 (query) 找到跟它匹配的下一句。既要找到和问句相似的句子,也要找到跟问句匹配的答句(response)。相似度(matching)及匹配度(ranking)需要有对应的距离度量方法。
词向量将词转化成定长向量表达,这是 NLP 中的基本操作单元。
Ranking 方面有基于孪生网络、CNN、RNN的方法,Attention 出来以后,又有了 Attention-CNN 和 Attention-RNN。
RNN 是为了捕捉历史语句间的关联。在 Lowe, et al 2015 的 The Ubuntu Dialogue Corpus 里面,简单粗暴地将所有问句答句都放到网络中,最后计算一个距离。
Wu, et al 2016 的 Sequential Matching Network 的方法复杂一些,将向量匹配对放在矩阵当中,从而进行卷积和 Pooling 的操作,最后计算 loss。
Xu, et al 2016 的 Incorporating Loose-Structured Knowledge 将先验知识融合到 LSTM 网络当中。
建伟介绍生成式方法。
别了,语料库。我要自己造答句。当然,还是要大量的自然语言来喂我。
深度学习用来刻画的基本模型是 LSTM 和 Seq2Seq。Seq2Seq 原本用于语言 A 到语言 B 的转换,从一个序列到一个序列。
这是一个带条件概率的语言模型。但这里有个 bug,语义信息是有损的,最终向量还是无法概括所有信息。基于注意力的方法能够根据一个输入源语句生成特定位置的目标词向量。
另外一篇,Li, et al 2017 的 A Persona-Based Neural Conversation Model,是对单个人的特征属性(性别、所在地等)进行刻画,所以能形成前后合理的上下文。
Xu et al. 2017 的 GAN 方法很优雅(我实在看不懂哎),各部分都是可导的,但是计算复杂度较高。
建伟提到,闲聊机器人面临的很多问题。首先,社区的语料噪声比较大,需要大量清洗工作;还有缺乏公平的自动化评测标准;对上下文中的情感很难数学建模,尽管对词的情感分类有很多相关研究。
发布间今天两个门都开着,后半场时,绿米的门窗传感器两度检测到有人进入,自动亮起了舞台灯,开 PPT 的时候,舞台灯需要关掉,这绝对是一个错误的使用场景。感谢门边帮忙关灯的同学。
问答阶段,大家提问了闲聊的商用场景,语料清洗方法,TTS 的时候怎么加入情感(请 @俊博老师),给用户如何推荐产品等。
想上手试试的同学,这里是主讲给的链接:
谷歌 seq2seq:
https://github.com/google/seq2seq/
微博语料:
http://61.93.89.94/Noah_NRM_Data/
语料较大,需要使用 GPU,推荐使用我们的云上深度平台 CloudML:
https://cloud-platform.d.xiaomi.net/console/#/services/deep-learning/task/list
以上由群主整理,如果有理解错误,还请留言指正。
MIAI 俱乐部
绿米·AQARQ
创米
领取专属 10元无门槛券
私享最新 技术干货