当前位置:网站首页>【字节面试】word2vector输出多少个类别
【字节面试】word2vector输出多少个类别
2022-08-03 08:51:00 【凝眸伏笔】
背景:
我是推荐算法方向的面试,在面试的时候,使用word2vector的方法生成item的向量,来计算行为序列中的item跟待预估的item的相似度,来作为一维特征。
问题:word2vector输出多少个类别?
这个问题,其实想问,有多少个item,只不过面试官稍微的那啥了一些,于是就出现了【word2vector输出多少个类别】这样一个问题。
答案:有多少个item ,word2vector的输出类别就有多少个。
原理解释:
word2vector: 自动学习向量之间的相似性表示,用更低维度的向量来表示每一个单词。
word2vec是一个简单的神经网络,有以下几个层组成:
(1)1个输入层:输入使用的是one-hot编码。即:假设有n个词,则每一个词可以用一个n维的向量来表示,这个n维向量只有一个位置是1,其余位置都是0。
(2)1个隐藏层:隐藏层的神经单元数量,代表着每一个词用向量表示的维度大小。对于输入层和隐藏层之间的权值矩阵,它的形状应该是[vocab_size, hidden_size]的矩阵。
(3)1个输出层:输出层是一个 [vocab_size] 大小的向量,每一个值代表着输出一个词的概率。所以word2vector的类别有[vocab_size]个。
其他问答:
(1)Word2Vec两个算法模型的原理是什么?
①CBOW(continuous bag-of-word): 给定上下文,来预测当前值。
②Skip-gram:给定当前值来预测上下文。
(2)网络输入输出是什么?隐藏层的激活函数是什么?输出层的激活函数是什么?
网络的输入是One-Hot向量 ,隐藏层无激活函数,输出层有Softmax函数,输出的是概率分布。层与层之间采用全连接方式,并用反向传播训练网络。
(3)Word2Vec如何获取词向量?
通过训练浅层神经网络获得词向量。
(4)Word2Vec的两个模型哪个效果好哪个速度快?为什么?
速度:我觉得Skip-Gram的速度慢可能是因为其预测值比较多需要分别计算多个Softmax,时间复杂度为O(kn),而CBOW虽然也有多个输入,但我们求其质心简化了操作,时间复杂度为O(n)。
(5)Word2Vec加速训练的方法有哪些?
主要有两个:
①Negative Sample(负采样):以一定概率的选取负样本,使得每次迭代时只需修改一小部分参数,这是典型Categorical Distribution Sampling分布问题。即给定一些变量及其概率,随机采样使其满足变量出现的概率。
②Hierarchical Softmax(层次softmax):是一种非常高效的训练方法,模型使用Huffman二叉树的叶节点来表示语料库的所有单词。
(6)介绍下Negative Sampling,对词频低的和词频高的单词有什么影响?
词典D中的词在语料C中出现的次数有高有低,高频词被选为负样本的概率比较大,低频词被选中的概率比较小。
(7)介绍下Hierarchical Softmax的计算过程,怎么把 Huffman 放到网络中的?参数是如何更新的?对词频低的和词频高的单词有什么影响?为什么?
Hierarchical Softmax利用了Huffman树依据词频建树,词频大的节点离根节点较近,词频低的节点离根节点较远,距离远参数数量就多,在训练的过程中,低频词的路径上的参数能够得到更多的训练,所以效果会更好。
(8)Word2Vec有哪些参数,有没有什么调参的建议?
①Skip-Gram 的速度比CBOW慢一点,小数据集中对低频次的效果更好;
Sub-Sampling Frequent Words可以同时提高算法的速度和精度,Sample 建议取值为 [10−5,10−3] ;
②Hierarchical Softmax对低词频的更友好;
③Negative Sampling对高词频更友好;
④向量维度一般越高越好,但也不绝对;
⑤Window Size,Skip-Gram一般10左右,CBOW一般为5左右。
(9)Word2Vec有哪些局限性?
Word2Vec作为一个简单易用的算法,其也包含了很多局限性:
①Word2Vec只考虑到上下文信息,而忽略了全局信息;
②Word2Vec只考虑了上下文的共现性,而忽略了彼此之间的顺序性。
参考:
边栏推荐
- 多媒体数据处理实验3:图像特征提取与检索
- Eject stubborn hard drives with diskpart's offline command
- The display of the article list and the basics of creating articles and article details
- Using pipreqs export requirements needed for the project. TXT (rather than the whole environment)
- redis stream 实现消息队列
- 【LeetCode】101. Symmetric Binary Tree
- 110 MySQL interview questions and answers (continuous updates)
- Mysql的in和exists用法区别
- Laya中关于摄像机跟随人物移动或者点击人物碰撞器触发事件的Demo
- MySQL-TCL语言-transaction control language事务控制语言
猜你喜欢
响应式布局经典范例——巨幅背景大标题
英文语法-状语从句
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
浅析什么是伪类和伪元素?伪类和伪元素的区别解析
HCIP练习(OSPF)
【网络安全】Kail操作系统
【无标题】
LINGO 18.0软件安装包下载及安装教程
随机推荐
【TPC-DS】25张表的详细介绍,SQL的查询特征
dflow入门5——Big step & Big parameter
二进制日志过期时间设置expire_logs_days
CSP-S2019 Day2
QImage的指针问题
长短期记忆网络 LSTM
Exception: Dataset not found. Solution
Unity编辑器扩展批量修改图片名称
【LeetCode】101. Symmetric Binary Tree
flush tables
gpnmb+ gpnmb-AT2 cell idling mapping Epithelial cell idling mapping
English Grammar - Adverbial Clauses
多媒体数据处理实验3:图像特征提取与检索
Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选,搜索下拉框内容
Redisson实现分布式锁
【LeetCode】226.翻转二叉树
Exch:重命名或删除默认邮箱数据库
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
WPS EXCEL 筛选指定长度的文本 内容 字符串
LeetCode 每日一题——622. 设计循环队列