2021年B站-主站技术中心-算法开发岗面试题5道

这篇博客介绍了B站主站技术中心算法开发面试的五个问题,涉及word2vec的负采样细节、fasttext的改进、用rand2实现rand5的方法、Bert模型及其下游任务,以及除Bert之外的预训练模型拓展如RoBERTa。深入探讨了词向量表示、NLP模型和随机数生成策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1:介绍word2vec,负采样的细节

word2vec是google于2013年开源推出的一个词向量表示的工具包,其具体是通过学习文本来用词向量的方式表征词的语义信息,即通过一个低维嵌入空间使得语义上相似的单词在该空间内的距离很近。有两种模型:CBOW和skip-Gram,其中CBOW模型的输入是某一个特征词的上下文固定窗口的词对应的词向量,而输出就是该特定词的词向量;Skip-Gram模型的输入是特定的一个词的词向量,输出就是特定词对应的上下文固定窗口的词向量。

现在我们看下Word2vec如何通过Negative Sampling负采样方法得到neg个负例;如果词汇表的大小为V,那么我们就将一段长度为1的线段分成V份,每份对应词汇表中的一个词。当然每个词对应的线段长度是不一样的,高频词对应的线段长,低频词对应的线段短。

每个词w的线段长度由下式决定︰
在这里插入图片描述
在word2vec中,分子和分母都取了3/4次幂如下:
在这里插入图片描述
在采样前,我们将这段长度为1的线段划分成M等份,这里M>>V,这样可以保证每个词对应的线段都会划分成对应的小块。而M份中的每一份都会落在某一个词对应的线段上。在采样的时候,我们只需要从M个位置中采样出neg个位置就行,此时采样到的每一个位置对应到的线段所属的词就是我们的负例词。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值