拖了一个多星期了 都快拖到Final Presentation DDL了 我这个懒癌晚期
都看不下去了
好 究竟是道德的沦丧还是人性的扭曲?欢迎来到这一期的「奇葩说之中华田园犬大解密」
在了解了基本的RNN家族之后
我们把步子迈得大一点 直接对准目前检索式
chatbots
研究前沿
首先 QA系统分为任务型
,非任务型
两大类
任务型
就是像Siri这种,需要识别用户派遣的任务,然后完成相应的任务
而非任务
则是主要是闲聊机器人,购物客服机器人
非任务
按Answer的生成方式 又可以分为 检索式
生成式
目前工业上落地的(效果好的)就是检索式
所以我们为了学术 (找工作) 来研究检索式
对话Chatbots
检索式QA
和 生产式QA
最大的区别 就是 检索式 只需要做encode
而生成式不仅仅要encode 还要decode
这个应该很好理解 检索式 只需要 把query+Context encode 到向量 然后计算Similarity,取最高的几个
但生成式 encode计算完之后 还得根据计算值decode成语句 返回给用户
这就是他们最大的区别 当然 我们这里讨论的是检索式
Base mind
检索式对话 顾名思义 就是从一堆语料库中 通过检索
来匹配
到相近的对话 从而输出答案
注意 这里有两个关键词 一个是检索
另外一个是匹配
检索
就是 检查索引 所以 检索的关键就是把词变成词向量 预处理成Index
匹配
就是 根据词向量 计算出一个匹配值 最简单就是计算Cosine Distance 当然这样效果很一般
于是就有一堆学者提出一堆模型
常规的做法有利用RNN家族 获取句、文章粒度的信息
然后 就开始论文串讲了
上古时代
话说 盘古还没开天 女娲还没补石 后裔还没射日
那个时候 还没有Word2vector 更不用说小学五年级就可以学得TF 对词向量的计算 还都是传统的Hash优化思路
这个时候出现了一个名叫DSSM的模型[Po-Sen Huang et al. 2013
] Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
这个模型创新点有
- 利用
wordHash
代替传统词袋模型 从而达到降维效果word Hash
就是用把词前后加上#
,然后每n个词做一个切割,比如说good
->{#go
,goo
,ood
,od#
}- 每个切割分量作为一维向量
- 因为英文中单词数量级远大于n个字母组合的数量级
- 且这种方案的Hash碰撞率较小 3字母表示仅为
0.0044%
- WordHash可以看做是
Word2Vector
早期的方案 - 其基本思想每个词之间并非完全正交 然后应该没有那么多独立的维度 所以就可以压缩词向量大小
- 利用
全神经网络
对句子进行处理得到相对应的句粒度向量- 文章利用三个隐藏层进行训练,第一个隐藏层为WordHash层有30K个节点,第二三层各有300个节点,输出层有128个节点,并使用随机梯度下降SGN训练
启蒙运动
随着word2Vec的提出 再加上NN方法在NLP中进一步运用 检索式QA有了不错的发展
但回顾之前的DSSM模型 在计算出句粒度的向量之后就直接使用cosine distance 进行计算Similarity
直观感觉这样算效果不会太好 于是这个时期就有一些学者提出一些改进Similarity计算方法的模型
MV-LSTM
就有学者提出由构造对齐矩阵 然后再做池化的方式 计算句粒度之间相似度 的MV-LSTM
模型[Shengxian Wan et al. 2015
]
- 计算句子间的两两匹配度存入对齐矩阵 从细粒度描述句子间关系
- 利用
双向LSTM
模型 减少因为RNN时序遍历的特性 导致模型结果更偏向于最后几个单词的现象 - Similarity不只直接做cosine计算 根据模型特性动态调整参数 s ( u , v ) = f ( u T M [ 1 : c ] v +