nlp:
1. word2vec原理(word2vec中CBOW和Skip-Gram训练模型的原理 word2vec 中的数学原理详解)
功能:将corpus(语料库)的one-hot向量(模型的输入)转换成低维关联词向量。
分为两种训练模式,CBOW和skip-gram,CBOW是根据上下关联词来预测中心词,skip-gram是通过中心词预测上下文的词。
两个模型。
有两种加速算法,一是Hierarchical Softmax(层次 Softmax),构建哈弗曼树(单词都在叶子节点上),通过将多分类变成2分类,复杂度从O(n)变成了O(logn)。
二是通过负采样,降低其它单词的预测概率。负采样中单词作为负样本的概率应该和其词频正相关,所以词频越高被抽到的概率越高,
(随机权重矩阵)
比较常见的组合为 skip-gram+负采样方法。
Q1. word2vec和one-hot的区别
one-hot编码将每个词都表示为一个R|V|×1R|V|×1的向量,该词在词表中索引的位置是1,其他位置都是0。任意两词向量都正交。word2vec可以生成关联的词向量,在向量空间相似词的余弦距离小。
Q2.负采样加速的原理?
负采样中认为,单词作为负样本的概率应该和其词频正相关,所以词频越高的越大概率被抽到。
Q3. word2vec和word embedding的区别
简言之,word embedding 是一个将词向量化的概念,中文译名为"词嵌入"。
word2vec是谷歌提出的一种word embedding的具体手段,采用了两种模型(CBOW与skip-gram模型)与两种方法(负采样与层次softmax方法)的组合,比较常见的组合为 skip-gram+负采样方法。
Q4. fastText的原理和使用,训练词向量有两种吗?跟word2vec的区别
功能:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。
(使用词embedding而非词本身作为特征,这是fastText效果好的一个原因;另一个原因就是字符级n-gram特征的引入对分类效果会有一些提升。fastText原理及实践)
区别:FastText模型架构和word2vec的CBOW模型架构非常相似,不同的是:
① CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征,这些特征用来表示单个文档;
② CBOW的输入单词被onehot编码过,fastText的输入特征是被embedding过;
③ CBOW预测中间词,fastText预测是文档对应的标签。
Tomas Mikolov论文简评:从Word2Vec到FastText
3. LSTM原理和使用
LSTM的公式推导详解 简单理解LSTM
原理:描述一下三个门。
LSTM(长效短期记忆神经网络)是一种特殊的RNN,它能够学习到长的依赖关系。
细胞状态和三个门结构,遗忘门,输入输出门。
第一步是决定从细胞状态中丢弃什么信息(图一),由“忘记门”的Sigmoid层实现(0代表不通过任何信息,1代表全部通过)。
下一步决定我们要在细胞状态中存储什么信息。具体操作分为两部分,一是决定在细胞中更新哪些值,产生it和Ct两个新向量(图二),然后进行计算,即上一个状态值Ct乘以ft,再加上it*Ct,得到新的候选值(图三);
最后输出为Ct(单元格状态)通过tanh(将值规范化到-1和1之间),并乘以Sigmoid门输出到下一个单元。
LSTM学习笔记
Q1. Siamese LSTM
Siamese LSTM孪生神经网络,第一层由两个平行的双向LSTM构成的特征提取部分,第二部分由单层或单层全连接层构成的分类/拟合层,最后使用距离公式来对比Gw(X1)Gw(X1)与Gw(X2)两个向量的距离(可以使用欧式距离,余弦距离)。
总之,用来对比两个input的相似程度,(0,1]代表完全不相似到非常相似。
改进:1. 单选可以选择GRU,训练速度会更快。
2.可以在全连接层输出做降维。
note: 训练时两个单元权重不共享(权重共享需要统一两个句子的长度),则全连接层需要使用加和取平均的方式,若只是采用全连接,则Q1Q2交换位置后,与输入Q1Q2结果不一致。
用于文本相似的Siamese Network
Q2. 知道GRU嘛
GRU则是LSTM的一个变体,GRU只有两个门了,分别为更新门和重置门。
更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。
5. lightGBM的原理和使用
6. pageRank top-n的问题
统计词频
7. RF的特征为什么要随机?
保证每一个基分类器都是弱分类器,防止过拟合现象。
步骤:
优点:
缺点:
项目:
tf搭建的模型,是cnn还是rnn,哪个效果更好点。为啥
灵魂拷问,词向量就是fastText训练的?
反垃圾项目
code:
python中的近似问题
动态规划(八皇后,匹配括号,0-9出现次数,两个字符串的编辑距离,走方格,滑动窗口)
re,前后项匹配。
项目详细介绍(短文本匹配用的什么算法)