1.解释 GolVe 的损失函数?
其实,一句话解释就是想构造一个向量表征方式,使得向量的点击和共现矩阵中的对应关 系一致。因为共现矩阵中的对应关系证明了,存在 i,k,j 三个不同的文本,如果 i 和 k 相关,j 和 k 相关,那么 p(i,j)=p(j,k)近似于 1,其他情况都过大和过小。
·如何处理未出现词?
按照词性进行已知词替换,[unknow-n],[unknow-a],[unknow-v]...,然后再进行训练。实际去用的时候,判断词性后直接使用对应的 unknown-?向量替代
2.为什么 GolVe 会用的相对比 W2V 少?
GloVe 算法本身使用了全局信息,自然内存费的也就多一些公现矩阵,NXN 的,N 为词袋量 W2V 的工程实现结果相对来说支持的更多,比如 most_similarty 等功能
3.层次 softmax 流程
构造 Huffman Tree
最大化对数似然函数
l 输入层:是上下文的词语的词向量
l 投影层:对其求和,所谓求和,就是简单的向量加法
l 输出层:输出最可能的 word
沿着哈夫曼树找到对应词,每一次节点选择就是一次 logistics 选择过程,连乘即为似然 函数对每层每个变量求偏导,参考 sgd
4.负采样流程
ü 统计每个词出现对概率,丢弃词频过低对词
ü 每次选择 softmax 的负样本的时候,从丢弃之后的词库里选择(选择是需要参考出现概率的)
ü 负采样的核心思想是:利用负采样后的输出分布来模拟真实的输出分布
5.怎么衡量学到的 embedding 的好坏
从 item2vec 得到的词向量中随机抽出一部分进行人工判别可靠性。即人工判断各维度item 与标签 item 的相关程度,判断是否合理,序列是否相关
对 item2vec 得到的词向量进行聚类或者可视化
6.阐述 CRF 原理
首先 X,Y 是随机变量,P(Y/X)是给定 X 条件下 Y 的条件概率分布
如果 Y 满足马尔可夫满足马尔科夫性,及不相邻则条件独立
则条件概率分布 P(Y|X)为条件随机场 CRF
7.详述 LDA 原理
从狄利克雷分布 α 中取样生成文档 i 的主题分布
多项式分布的共轭分布是狄利克雷分布
二项式分布的共轭分布是 Beta 分布
从主题的多项式分布中取样生成文档 i 第 j 个词的主题
从狄利克雷分布 β 中取样生成主题对应的词语分布
从词语的多项式分布中采样最终生成词语
文档里某个单词出现的概率可以用公式表示:
采用 EM 方法修正词-主题矩阵+主题-文档矩阵直至收敛
8.LDA 中的主题矩阵如何计算
这个问题很难说清楚,一般会揪着细节问,不会在乎你的公式写的是不是完全一致。这部分是 LDA 的核心,是考验一个 nlp 工程师的最基础最基础的知识点。吉布斯采样:
先随机给每个词附上主题;
因为多项式分布的共轭分布是狄利克雷分布,可以根据狄利克雷分布先验分布结合每个词 实际的主题满足的多项式分布得到后验狄利克雷分布分布,从而积分得到一文档的主题条 件分布,词同理,从而得到每篇文章的主题和词的联合概率分布;
有了联合概率分布,去除词 wi 后,就可以得到其他词主题条件概率分布;
根据条件概率分布使用坐标轮换的吉布斯采样方法,得到词对应的平稳矩阵及词对应的主题;
收敛后统计文章的词对应的主题,得到文章的主题分布;统计词对应的主题,得到不同主题下词的分布。
通常会引申出如下几个问题:
ü 吉布斯采样是怎么做的?(基于 MCMC 思想,面对多维特征优化一维特征固定其他维 度不变,满足细致平稳性,坐标变换以加快样本集生成速度)
ü MCMC 中什么叫做蒙特卡洛方法?
ü 通常用于求概率密度的积分
ü 用已知分布去评估未知分布
ü reject-acpect 过程
9.马尔科夫链收敛性质?
非周期性,不能出现死循环
连通性,不能有断点
10.MCMC 中什么叫做马尔科夫链采样过程?
先得到转移矩阵 P 在 N 次迭代下收敛到不变的平稳矩阵
再根据平稳矩阵后的条件概率 p(x/xt)得到平稳分布的样本集(xn+1,xn+2...)
11.给定平稳矩阵如何得到概率分布样本集?
·M-C 采样
给定任意的转移矩阵 Q,已知 π(i)p(i,j) = π(j)p(j,i),近似拟合
π(i)Q(i,j)a(i,j) = π(j)Q(j,i)a(j,i)
根据 Q 的条件概率 Q(x/xt)得到
xt+1u~uniform
u<π(xt+1)Q(xt+1,xt)
则 accept,就和蒙特模拟一样否则
xt+1 = xt
xt,xt+1...)代表着我们的分布样本集
·M-H 采样
左右同乘缩放,更新 a(i,j)的计算公式,加快收敛速度
·Gibbs 采样
同上,差别在固定 n−1 个特征在某一个特征采样及坐标轮换采样
12.什么叫做坐标转换采样?
平面上任意两点满足细致平稳条件 π(A)P(A->B) = π(B)P(B->A)
·从条件概率分布 P(x2|x(t)1)中采样得到样本 x(t+1)2
·从条件概率分布 P(x1|x(t+1)2)中采样得到样本 x(t+1)1
其为一对样本,有点像 Lasso 回归中的固定 n-1 维特征求一维特征求极值的思路
13.变分推断 EM 算法
整体上过程是,LDA 中存在隐藏变量主题分布,词分布,实际主题,和模型超参 alpha,beta,需要 E 步求出隐藏变量基于条件概率的期望,在 M 步最大化这个期望,从而得到alpha,beta
变分推断在于隐藏变量没法直接求,用三个独立分布的变分分步去拟合三个隐藏变量的条件分布
实际去做的时候,用的是 kl 散度衡量分布之间的相似度,最小化 KL 散度及相对熵
EM 过程
E:最小化相对熵,偏导为 0 得到变分参数
M:固定变分参数,梯度下降法,牛顿法得到 alpha 和 beta 的值
LDA 和 Word2Vec 区别?LDA 和 Doc2Vec 区别
LDA 比较是 doc,word2vec 是词 LDA 是生成的每篇文章对 k 个主题对概率分布,Word2Vec 生成的是每个词的特征表示
LDA 的文章之间的联系是主题,Word2Vec 的词之间的联系是词本身的信息
LDA 依赖的是 doc 和 word 共现得到的结果,Word2Vec 依赖的是文本上下文得到的结果
14.Bert 的双向体现在什么地方
mask+attention,mask 的 word 结合全部其他 encoder word 的信息
15.Bert 的是怎样预训练的
MLM:将完整句子中的部分字 mask,预测该 mask 词
NSP:为每个训练前的例子选择句子 A 和 B 时,50% 的情况下 B 是真的在 A 后面的下一个句子, 50% 的情况下是来自语料库的随机句子,进行二分预测是否为真实下一句 在数据中随机选择 15% 的标记,其中 80%被换位[mask],10%不变、10%随机替换其他单 词,原因是什么
mask 只会出现在构造句子中,当真实场景下是不会出现 mask 的,全 mask 不 match 句型了
随机替换也帮助训练修正了[unused]和[UNK]
强迫文本记忆上下文信息
为什么 BERT 有 3 个嵌入层,它们都是如何实现的
input_id 是语义表达,和传统的 w2v 一样,方法也一样的 lookup
segment_id 是辅助 BERT 区别句子对中的两个句子的向量表示,从[1,embedding_size]里 面 lookup
position_id 是为了获取文本天生的有序信息,否则就和传统词袋模型一样了,从 [511,embedding_size]里面 lookup
16.手写一个 multi-head attention
tf.multal(tf.nn.softmax(tf.multiply(tf.multal(q,k,transpose_b=True),1/math.sqr t(float(size_per_head)))),v)