nlp语义理解

给你一篇文章或者一个句子,人们在理解这些句子时,头脑中会进行上下文的搜索和知识联想。通常情况下,人在理解语义时头脑中会搜寻与之相关的知识。知识图谱的创始人人为,构成这个世界的是实体,而不是字符串,这从根本上改变了过去搜索的体系。语义理解其实是基于知识,概念和这些概念间的关系。人们在解答问题时,往往会讲述与这个问题相关的知识,这是语义理解的过程。这种机制完全不同于人对图像或者语音的认识。CNN在图像或者语音领域取得成果是不足为奇的,因为生物学家已经对人脑神经元在图像识别过程中的机制非常熟悉,但是对于人脑如何理解文字的神经元机制却知之甚少,所以导致了目前nlp语义理解方面进展非常缓慢。很多人尝试CNN引入nlp效果不佳,发现多层的CNN和单层的CNN几乎没有差别,原因得从人脑的神经元机制说起。生搬硬套是必然失败的!深度学习的本质并不是神经元层数多这么简单,能够从最基本的特征,逐层抽取出高阶特征,最后进行分类,这是深度学习取得成功的关键。
 有一部分人质疑word2vector不是深度学习,说层数太浅达不到深度的级别,这是一种误解。word2vector是地地道道的深度学习,能够抽取出词的高阶特征。他的成功,关键是基于他的核心思想:相同语境出现的词语义相近。从第一层one-hot到embedding层,就是高阶特征抽取的过程。前面说过,层数多了不一定带来效果的提升。词embedding已经是高阶特征了,文字比图像要复杂很多,目前CNN在nlp中的引入,方向可能是错误的。必须深入研究人脑对文字理解的神经元机制,弄清楚生物学模型,然后才能从中抽象出数学模型,就像CNN一样,否则nlp不会有长足的进展。目前来看,LSTM以及Attention Model是比较成功的,但是仍然基于形式化的,对于深层语义仍然没有解决。
 目前来看,深度学习算法LSTM,Attention Model等在nlp中的应用,仅限于上下文和词,句子向量。计算一下句子相似度,聚类之类的,要想真正让机器理解文字,还达不到。也就是说只在语义表示层做文章是远远不够的,底层的知识图谱是关键。Google提出的知识图谱是一种变革,nlp是一个完整的生态圈,从最底层的存储,GDB三元组(entry,relation,entry),到上层的语义表示(这个阶段可以借助深度学习直接在语义层进行训练),比如(head,relation,tail)三元组表示的图结构,表达了实体与实体间的关系,可以用深度学习训练出一个模型:h + r = t,获取语义表示。这样在预测时,得到了两个实体的语义表示,进行减法运算就可以知道两者的关系。这个不同于word2vector,但是还是有共性的。word2vector的CBOW就是训练x1 + x2 + …… = y这个模型。目前知网也在做这些事情。

转自:https://www.cnblogs.com/txq157/p/7535837.html

猜你喜欢

转载自blog.csdn.net/f156207495/article/details/82929004