3.1.3 语言文本特征表示
语言文本特征表示的目的是把文本转换成计算机可理解的表达方式,将不同语言任务的文本字符特征转换为数学向量。针对自然语言的离散、稀疏特征,设计了两种向量表示方式:符号表示和词嵌入表示。
符号表示将每个字词都看作互相独立的符号,忽略文本中词的出现顺序信息,用词袋模型或向量空间模型表示。符号表示采用独热编码,将文本中出现的字词用字词长度向量表示,每一维度表示一个单独字或词出现的特征(1或0)。比如,一个1000个字词长度的文本,在所有单词序列中,the和claim分别出现的地方为1,其他特征为0。所以独热编码会给出一个文本非常稀疏的高维向量表示。词之间彼此独立,并且无法表征语义信息即无法度量语义亲疏远近。如果词库量非常大,那么高维度、高稀疏性不可避免。词袋模型是向量空间模型的基础,向量空间模型通过特征选择降低维度,通过特征权重计算增加稠密性,最后形成结果特征向量为高维向量的组合。
the(0, 0, 0, 0, ..., 1, ... 0, 0, 0, 0)
claim(0, 1, 0, 0, ..., 0, ... 0, 0, 0, 0)
除了向量空间模型,还有基于潜在语义表示方法,作为文档的主题分布表示。进一步,给出文本分布式词嵌入表示,通过机器学习把稀疏特征表示映射到一个稠密向量表示,也就是将字词特征转换为低维特征空间中一个向量表示。这个维度通常远小于文本字词数目,如下所示。单词“the”还可以用一个100维的稠密向量进行表示。
262579 100
2.141150 2.966304 5.273489 0.087942 0.788931 1.248357 1.970703 0.907184 -0.309722 -0.069649 -1.584630 0.948468 2.030286 1.328332 2.722350 1.281832 1.398007 3.260149 2.314376 1.800922 -1.934146 -0.897449 1.216879 3.877965 1.034054 0.936802 4.588117 -0.525687 -0.179772 4.262709 -1.677746 -2.057961 0.297662 -0.615165 0.977044 -2.269118 -0.525051 -2.486227 0.329995 4.382669 1.789523 1.613611 -1.654858 -2.452849 0.279000 0.519020 1.152899 -0.751449 -2.718634 1.075967 1.337736 -4.595433 0.241776 -1.853499 1.611340 0.283161 2.218777 -1.261066 -3.931067 1.190323 0.470935 3.250207 0.852491 1.277355 -0.037451 0.973341 2.406947 -0.486646 -3.130814 -0.492282 0.186035 1.884254 -0.176160 3.685478 -0.231379 -2.089020 2.542857 4.245094 -0.488270 0.861864 -0.241238 -1.851303 1.371367 2.235868 1.289689 2.321493 2.015684 0.906175 -0.579599 0.050757 1.594811 0.554105 -0.468494 -0.378865 1.595948 1.429974 -1.343866 0.915138 -1.159485 -2.174270
这样的稠密低维向量方便矩阵计算,而且有很强的泛化能力。现有大量工作表明,可训练稠密向量表示所有特征。这里,我们还要强调基于知识的特征表示,也就是知识表示,可解释性很好,第4章会详细介绍。知识表示将实体和关系映射到低维稠密向量空间,旨在习得知识组成元素(节点与边)的向量化表示,使得模型能够充分利用先验知识完成语义理解。