随笔记录

文本语义

孟宝亮 附录 218

我们在对文本进行建模的时候,都会生成由 N 个浮点数组成的向量,该向量我们一般都称作某个 token 的语义向量。那么该向量到底表示什么?

晚上突然思考到这个问题,琢磨许久,有了些许感悟。首先,我们要了解两句话:

你说你是谁不重要,重要的是旁边的人说你是谁?

文本 token 的语义就是通过共现关系来表示

我觉得这句话,就能够很好的解释神经网络中生成的各种语义向量。例如:

  1. 假设,我们要判断 A、B 两个人是不是同一种人,我可以比较 A 周围的 5 个人对其的评价,以及 B 周围的 5 个人对其评价,来进行判断。对应神经网络中,就类似于 PV-BOW 这种模型,不停的询问你周围的 5 个人对你什么评价,最终得到对你的一个评价的向量表示。
  2. 有些模型,比如双向 LSTM 通过,上下文的共现关系,来对 token 进行语义表示,只不过该模型不能依赖太长序列。类似于, A 周围有 100 个人,其中距离最近的一些人对其的评价更重要,或者说更能说明这个人是什么样的,更远的人不是不重要,而是贡献较小。
  3. 自注意力机制就是让更多人发言更重要了,但是仍然是经常在 A 附近人的评价更加重要一些,相对 LSTM 提高了更远处人的评价价值

 

在 NLP 任务中,文本的表征方法我的理解主要分为 3 个阶段:

基于统计方法的独热编码、词频向量、词频-逆文档词频等方法;
基于共现矩阵(Glove)、SVD 的一系列词向量的表示方法。
基于浅层神经网络的 word2vec、fasttex、glove 等静态词向量表示方法:
基于深层神经网络的  Elmo、Bertology 等的动态词向量表示方法。

 

 

回复

我来回复
  • 暂无回复内容