一、词向量
词向量(word embedding):词的向量表征。
很多初识机器学习、深度学习等的同学,包括我,一定对词向量比较迷惑,为什么说前者之前都要提到词向量?答案:为了将输入数据表示成向量,在向量上进行数学建模。这样把词表示为计算机适合处理的方式。
词向量表示方法:
1)one-hot vector:将所有单词排序,排序之后每个单词就会有一个位置,然后用一个与单词数量等长的数组表示某单词,该单词所在的位置数组值就为1,而其他所有位置值都为0。
例如:
“话筒”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 …]
“麦克”表示为 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 …]
每个词都是茫茫 0 海中的一个 1。
但是,问题在于:a
、这样编码太稀疏了,会导致维度非常高,因为单词的数量级通常在10^6级别,维度高就导致计算困难。b、我们无法简单的从这样的编码中得知单词之间的关系。原因在于:每个词本身的信息量都太小。所以,仅仅给定两个词,不足以让我们准确判别它们是否相关。
2)Distributed representation
其是一种既能表示词本身又可以考虑语义距离的词向量表示方法。
该方法最早由 Hinton在 1986 年提出。它是一种
低维实数向量,这种向量一般长成这个样子:
[0.792, −0.177, −0.107, 0.109, −0.542, …]。
将 word映射到一个新的空间中,并以多维的连续实数向量进行表示叫做“Word Represention” 或 “Word Embedding”。
采用低维空间表示法,不但解决了维数灾难问题,并且挖掘了word之间的关联属性,从而提高了向量语义上的准确度。
二、语言模型
早期的自然语言处理采用硬编码的规则来实现。在上世纪80年代,机器学习被应用于自然语言处理中,统计语言模型被提出来,并广泛应用于机器学习模型中。我们这里的语言模型就是指统计语言模型。我们认识一下什么是一个好的模型?对某个我们认为正确的句子,比如『狗啃骨头』,一个好的模型将能给出很高的概率。而对于不合理的句子,比如『骨头啃狗』它将给出很低的概率。这里面的一个重要的概念就是句子的概率。统计语言模型,简单而言,就是计算某一个句子的概率:P(w1, w2, w3, …)。其中w表示句子中的单词。
1、N-gram neural model。