在一次会议上得到了这样一个观点说深度学习和本体是同一个方向的两条不同的路径。但是觉得这个两个东西是完全不相关的东东么怎么能扯到一起去呢?后来读了一些语义角色标注的文章发现这种观点确实有些意思。本文结合自己一些对深度学习极为浅显的了解和对本体、机器学习的粗浅理解浅谈一下深度学习和本体的关系。
在这里先要谈一下分类问题如羊是属于动物的,小明是属于人的等等。分类问题在人工智能领域一直占有极重要的地位。那么从统计角度的机器学习是怎么分类呢?大部分的分类器过程都是先找到这个实例的特征,如我对一句话:我爱北京天安门。来进行语义角色标注。其中我被标注为动词主语,名词天安门被标注为动词的宾语。语义角色标注完成后,原来的句子则变成如下的形式:我[arg0] 爱[vb] 天安门[arg1]。从人的角度来看这样的标注非常简单,但是从机器的角度来看就十分困难了,所以我们需要使用一些已知的数据和这些数据的特征对这个分类问题进行训练。最简单的方法就是训练数据里面如果有:我[arg0] 爱[vb] 天安门[arg1] 这样一个训练数据,这时候当有相同的测试数据来的时候那么自然就会将测试数据分成跟训练数据一样的语义角色。但是这样细粒度的特征会造成极大的稀疏性也就是说大量的测试数据是无法在训练数据中找到相同的样例的,这样分类的效果就不会太好。为了解决这个问题人们就会进一步考虑更粗粒度的特征如:我爱北京天安门 根据词性可以变成NP VB NP(名词 动词 名词)这样符合这个更粗粒度模板的句子就可以得到跟 我[arg0] 爱[vb] 天安门[arg1] 相同的语义角色标注。因此我们为了提高分类的效果会尽可能用多个维度,多个不同粒度的特征来归纳总结事物属于某个类别。
而深度学习的思路则是一个更细的分类过程,在传统的机器学习过程中如果训练数据已知NP VB NP中第一个NP是arg0(既主语)第二个NP是arg1(既宾语)那么当来一个句子我爱北京天安门 这样一个具有相同模式的句子时我们会自动将我标注为arg0,天安门标注为arg1。而深度学习则更像一个更细化的机器学习(这里理解比较肤浅)既我第一步先分类判断“我 ”是一个词语w,第二步判断w是一个名词NP,第三步,判断NP后面有一个动词vb,第四步得到NP是arg0。它的区别就是不像传统的机器学习一步得到分类结果而是通过每一步得到一个最小粒度的分类然后这个分类作为下一层分类的特征进而得到更粗粒度的特征。从另一个角度看他把特征从一个词”我“转换到”NP“的过程自动化了。
而本体天然就是一个描述类别层级和类别见关系的逻辑描述。如小孩是人的一个子类,通过规则我们可以知道小孩是一个人。从本质上看他与深度学习的分类方法类似,深度学习的方法是自动的通过统计的而本体的分类规则则是手工的,而深度学习每一层的分类特征是隐含的本体则是有明确的语义关系。单纯从分类的角度来看这两个学派的关系更像以前Yahoo和Google对网页分类的看法。