DP-NLP-Lesson1(阅读材料)

2017-08-20  本文已影响0人  J_Y_Peng

总述:首先介绍了NLP是什么,以及NLP所面临的问题。讨论了用将单词表征为数字向量的概念,最后介绍了构建词向量的比较著名的方法。

课堂笔记:
1.NLP有什么特别的?
1.1 人类的语言特别之处在于:是一个传递信息的系统,不是由任何具体实例表示而成。这也是与视觉等其他方法的区别(自然语言是离散的,象征性的,明确的系统)
比如,rocket可以指火箭这个概念,也可以指火箭这个实例。语言符号可以被编码成不同的方式(声音,手势,书写)
1.2 NLP的应用举例
NLP的应用范围及广,从语音处理到语义解释和语篇加工(semantic interpretation and discourse processing),NLP的目的是:能够设计一套算法,该算法可以使得电脑“理解”自然语言,进而处理某些任务。
简单任务:拼写检测,关键词搜索,寻找同义词(synonyms)
中级任务:分析(parsing)互联网,文件中的信息
困难任务:机器翻译,语义分析,代指(Coreference,给定一个文档‘她’和‘它’的指的是什么?),问答系统
1.3如何表示单词
作为我们NLP模型的输入,单词要如何表示?早期的NLP工作,将单词当做原子符号(atomic symbols)。利用词向量(word vectors),我们可以在向量中简单快速编码(使用类似于Jaccard,Cosine,Euclidean等距离度量)。

2.词向量
英语中大概有1300W个表示,而且互相关联。 因此,我们希望将单词表示为某种向量,这类向量在某种“词汇”空间中表示一个点。假设实际存在一个N维度空间,空间可以有效的将语义进行编码,每一个维度可以将某些意义进行编码。例如一个语义的维度也许包含时态(现在,过去,将来)、计数(实数和复数)、性别(男和女)。相似度可以用两个向量之间的点乘代替。

3.SVD(singular Value Decomposition,奇异值分解)
首先用matrix来表示整个dataset,然后利用奇异值分解整个matrix得到USV.T(左奇异值向量u ,dialog matrix S,右奇异向量 V),将U当做整个文本的词嵌入。
3.1初步打算
读取数亿的文档,构建文档矩阵|V|×M(V是词汇表的维度,也就是词的个数;M是文档的个数)Xij(i代表word,j代表文件)

3.2 基于窗的共生矩阵(co-occurrence matrix)
对于在特定大小的窗中每个单词出现的数目进行计数 ,计算集合中所有单词的频次。
举例:三句话,窗口的大小为1(每次仅仅考虑两个单词),显然矩阵是对称的。

Ps:有点像speech recognition里的language model中的N-gram。NN-based language model。
3.3 在共生矩阵中使用SVD
类似于特征值分解
分解后的问题:1.矩阵维度变化快(新词加入)2.矩阵稀疏3.总体上维度很高4.Requires the incorporation of some hacks on X to account for the drastic imbalance in word frequency(这句什么意思)
解决方法:1.删除某些单词(词频高)2.使用Pearson correlation或者负数来表示0

4.迭代word2vec
4.0发展历程
1986年,backpropagating 的方法
2011年,Entity Rcognition方法训练模型参数和向量
2013 word2vec,包含2种算法continuous bag-of-words和skip-gram,2种训练方法negative sampling和hierarchical fotmax

4.1 language models

4.2continuous bag of words model
从周围的词向量预测中心词





个人感觉词嵌入的过程好像N-gram模型的实现(或者说这两个本来就是一个东西)
CBOW利用多个
输入V输出U
损失函数:交叉熵可以良好的反应概率密度
4.3 skip-gram模型
利用中心词去猜测周围词汇的概率和CBOW相接近,将输入与输出对换。计算损失函数(强独立分布假设 )

4.4负采样
词表的数据量大,更新词表的代价高。对于每一次训练,不需要循环整个词表,仅仅需要对于负样本采样。
为了包含负样本需要做的更新:目标函数,梯度,更新法则。

负采样基于Skip-Gram,目标函数变化为最大化数据集中单词和上下文在数据集的概率,同时最大化非数据中的词和上下文不在数据集的概率。假设(w,c)为成对的单词和上下文,
为在数据集中的概率,

为不在的概率。P采用sigmoid函数

4.5 Hierarchical softmax(分层softmax)
实际运用中,分层softmax趋向于在罕见词少时表现好,在常见词和低维数据时negative sampling表现更好。
分层softmax利用二叉树来表示在词汇表中的单词,每一个叶节点是单词。在输出单词中词的概率表示为从根节点到达该叶节点的随机路程。



好吧这个地方我完全没看懂

上一篇下一篇

猜你喜欢

热点阅读