前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法工程师-自然语言处理(NLP)类岗位面试题目

算法工程师-自然语言处理(NLP)类岗位面试题目

作者头像
用户9925864
发布2022-07-27 09:19:36
9010
发布2022-07-27 09:19:36
举报
文章被收录于专栏:算法工程师的学习日志

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)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档