知识累积
知识累积
word2vec
原理
核心:将词变为向量,来源是网络中每个词的参数
方法:hierarchic softmax,negative sample
训练:逻辑回归+极大似然
文本处理方式:CBOW多对一,Skip-gram一对多
参考资料:
比较详细的说明:
https://www.cnblogs.com/peghoty/p/3857839.html
我看这个看懂的:
http://www.cnblogs.com/pinard/p/7243513.html
源码阅读
关于Word2vec的c源码,其中有一些细节,除了上面两篇,下面这个也有说明:
文本词嵌入(Word Embeddings)的方法
参见:https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/
2.1 Frequency based Embedding
2.1.1 Count Vectors
2.1.2 TF-IDF
2.1.3 Co-Occurrence Matrix
关于这节将的不是特别清楚,参考另一篇文章,
2.2 Prediction based Embedding
2.2.1 CBOW
2.2.2 Skip-Gram
GloVe
概览:作者想利用LSA中的全局矩阵信息和Word2Vec中的局部向量信息来得到每个word的向量表示v。作者首先假设得到了这个向量表示,然后通过开脑洞的方式想办法将这个向量中包含的规律与(共现概率比)保持一致来拼凑出函数表示。
GloVe和其他方法的联系
其他方法(Skip-gram)可以表示为一个softmax回归问题,对该公式进行修改后可以表示为的带权交叉熵,把交叉熵损失更换为均方损失就可以得到GloVe的优化公式
共现矩阵权重计算方式
对于窗口内的单词对,考虑利用两者的间隔距离来设置权重,如果两者相隔的距离远,那么共现次数就少于1,论文中按两个单词的间隔d来设置,若单词对中两个单词相隔d-1个单词,那么他们的权重计算为
NCE噪声对比估计
fasttext
概览:基于word2vec, 利用Word2vec原有的词袋特征,加上ngram特征,训练网络
对句子的意思表示是通过所有的词向量的求和取平均。
trick:
利用hash减少n-gram的存储
参考资料:
学习词向量的两个模型族
主要是Matrix Factorization和Shallow Window-Based Methods。前者主要是LSA, pLSA, LDA系列,后者是Word2Vec系列
LSA潜在语义分析
基于global matrix factorization
首先对文档统计次数,计算Count Vector或者TFIDF Vector创建单词m-文档n矩阵,然后利用SVD,然后降维
Am×n=Um×mΣm×nVTn×n≈Um×kΣk×kVTk×n
Uil 是第i个文本与第l个主题的相关度,Vjm 是第j个单词和第m个主题的相关度,Σlm 是第l个主题和第m个主题的相关度。
LSA优势:
首先文章和单词都映射到同一个语义空间。在该空间内即能对文章进行聚类也能对单词进行聚类。重要的是我们能通过这些聚类结果实现基于单词的文献检索,反之亦然。
语义空间的维度明显明显少于源单词-文章矩阵。更重要的是这样经过特定方式组合而成维度包含源矩阵的大量信息,同时降低了噪声的影响。这些特性有助于后续其他算法的加工处理。
最后,LSA 是一个全局最优化算法,其目标是寻找全局最优解而非局部最优解,因此它能求出基于局部求解算法得不到的全局信息。有时LSA会结合一些局部算法,如最近领域法,使得LSA性能得到进一步提升
LSA缺陷:
首先LSA是假设服从高斯分布和2范数规范化的,因此它并非适合于所有场景。例如,单词在语料库中服从的是Poisson 分布而不是高斯分布
LSA不能有效处理一词多义问题。因为LSA的基本假设之一是单词只有一个词义
LSA的核心是SVD,而SVD的计算复杂度十分高并且难以更新新出现的文献。不过最近已经出现一些有效的方法用于解决SVD的基于文献更新问题。
LSA的升级版PLSA
Probability Latent Semantic Analysis, 基于LSA定义了概率模型
LDA
LSA可以寻找文本的主题分布,可以产生文本对应的向量。在主题分布的范围内,也有LDA的方法:
LDA是一种文档生成模型,给定k个主题,
local context window局部窗口
skip-gram和CBOW
encoder-decoder seq2sekeyword
q模型
attention
xgboost&lightGBM
两者分布式的实现,相互有什么区别
第二篇文章,其中对分布式的实现做了综述
分布式通信模型的区别
主流的分布式通信模型有四个:
- MapReduce
- AllReduce
- Parameter Server
- Reduce-Scatter
原理待学习
xgboost分布式
xgboost的分布式实现在陈天奇的一篇文章中说初版的XGBoost分布式实现是Allreduce
相关阅读
lightGBM分布式
HMM - 生成模型
CRF - 判别模型
推荐相关 FM FFM
比赛总结 - 腾讯广告大赛
检索算法BM25
对文本语义理解的办法
对字、词、短语、句子、段落、文章的理解难度依次递增,对语义理解方向,有Extraction和Abstractive两种方法。Extraction是抽取式的,基于对单词短语的重要性排序而来,可以通过TFIDF、Word2Vec来展现。排序算法有Textrank、TextTeaser
为什么神经网络需要初始化权重
- 不能全为0,因为梯度更新依赖权重的值,如果权重为0,会导致所有的bp误差为0,无法更新
- 不能初始化为相同值,因为前向后所有的节点值一样,bp时所有的误差都一样,导致所有的权重变化都一样,导致节点没有差异性
- 初始化差异不能过大,否则在某些节点误差更新过大,某些节点误差更新过小,累积下来会导致梯度问题(弥散或者爆炸)
- 每一层输出的方差尽量相等,xavier(随机均匀分布)可以保证此条件
- 随机高斯分布
ROC曲线的物理意义以及计算方法
- AUC的含义是任选一个正样本和负样本,正样本预测值大于负样本预测值的概率
- 计算方法,先对所有样本预测值排序,由原点开始,有正样本沿y方向走,有负样本沿x方向走,画出一条锯齿形的曲线
随机森林的采样极限
假设数据量为m,分别为,有放回的均匀采样,每次拿一个出来,每次取不到A的概率是
,经过n次抽样后,每次都取不到A的概率为
,当m,n都趋于无穷时,公式趋于
,结果为36.8%,这部分没有被采样到的数据,我们称之为袋外数据