从隐藏层到输出的Softmax层的计算有哪些方法?

  • 层次softmax
  • 负采样

层次softmax流程?

  • 构造Huffman Tree
  • 最大化对数似然函数输入层:是上下文的词语的词向量投影层:对其求和,所谓求和,就是简单的向量加法输出层:输出最可能的word沿着哈夫曼树找到对应词,每一次节点选择就是一次logistics选择过程,连乘即为似然函数
  • 对每层每个变量求偏导,参考sgd

采样流程?

  • 统计每个词出现对概率,丢弃词频过低对词
  • 每次选择softmax的负样本的时候,从丢弃之后的词库里选择(选择是需要参考出现概率的)
  • 负采样的核心思想是:利用负采样后的输出分布来模拟真实的输出分布

word2vec两种方法各自的优势?

  • Mikolov 的原论文,Skip-gram 在处理少量数据时效果很好,可以很好地表示低频单词。而 CBOW 的学习速度更快,对高频单词有更好的表示
  • Skip-gram的时间复杂度是o(kv),CBOW的时间复杂度o(v)

怎么衡量学到的embedding的好坏?

  • 从item2vec得到的词向量中随机抽出一部分进行人工判别可靠性。即人工判断各维度item与标签item的相关程度,判断是否合理,序列是否相关
  • 对item2vec得到的词向量进行聚类或者可视化

word2vec和glove区别?

  • word2vec是基于邻近词共现,glove是基于全文共现word2vec利用了负采样或者层次softmax加速,相对更快glove用了全局共现矩阵,更占内存资源
  • word2vec是“predictive”的模型,而GloVe是“count-based”的模型

你觉得word2vec有哪些问题?

  • 没考虑词序
  • 对于中文依赖分词结果的好坏
  • 新生词无法友好处理
  • 无正则化处理

详述LDA原理?

  • 从狄利克雷分布α中取样生成文档i的主题分布多项式分布的共轭分布是狄利克雷分布二项式分布的共轭分布是Beta分布
  • 从主题的多项式分布中取样生成文档i第j个词的主题
  • 从狄利克雷分布β中取样生成主题对应的词语分布
  • 从词语的多项式分布中采样最终生成词语
  • 文档里某个单词出现的概率可以用公式表示:
  • 采用EM方法修正词-主题矩阵+主题-文档矩阵直至收敛

LDA中的主题矩阵如何计算?词分布矩阵如何计算?

这个问题很难说清楚,一般会揪着细节问,不会在乎你的公式写的是不是完全一致。这部分是LDA的核心,是考验一个nlp工程师的最基础最基础的知识点

  • 吉布斯采样先随机给每个词附上主题因为多项式分布的共轭分布是狄利克雷分布,可以根据狄利克雷分布先验分布结合每个词实际的主题满足的多项式分布得到后验狄利克雷分布分布,从而积分得到一文档的主题条件分布,词同理,从而得到每篇文章的主题和词的联合概率分布有了联合概率分布,去除词wi后,就可以得到其他词主题条件概率分布根据条件概率分布使用坐标轮换的吉布斯采样方法,得到词对应的平稳矩阵及词对应的主题收敛后统计文章的词对应的主题,得到文章的主题分布;统计词对应的主题,得到不同主题下词的分布
  • 通常会引申出如下几个问题:吉布斯采样是怎么做的?(基于MCMC思想,面对多维特征优化一维特征固定其他维度不变,满足细致平稳性,坐标变换以加快样本集生成速度)MCMC中什么叫做蒙特卡洛方法?通常用于求概率密度的积分用已知分布去评估未知分布reject-acpect过程马尔科夫链收敛性质?非周期性,不能出现死循环连通性,不能有断点MCMC中什么叫做马尔科夫链采样过程?先得到转移矩阵P在N次迭代下收敛到不变的平稳矩阵再根据平稳矩阵后的条件概率p(x/xt)得到平稳分布的样本集(xn+1,xn+2...)给定平稳矩阵如何得到概率分布样本集?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~uniformuB) = π(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维特征求一维特征求极值的思路
  • 变分推断EM算法整体上过程是,LDA中存在隐藏变量主题分布,词分布,实际主题,和模型超参alpha,beta,需要E步求出隐藏变量基于条件概率的期望,在M步最大化这个期望,从而得到alpha,beta变分推断在于隐藏变量没法直接求,用三个独立分布的变分分步去拟合三个隐藏变量的条件分布实际去做的时候,用的是kl散度衡量分布之间的相似度,最小化KL散度及相对熵EM过程E:最小化相对熵,偏导为0得到变分参数M:固定变分参数,梯度下降法,牛顿法得到alpha和beta的值

LDA的共轭分布解释下?

以多项式分布-狄利克雷分布为例,我们的多项式分布θ先验分布π(θ),及加了多项式分布的样本信息x后的后验分布π(θ/x)都满足狄利克雷分布,则称狄利克雷分布为LDA场景下多项式分布的共轭分布

PLSA和LDA的区别?

  • LDA是加了狄利克雷先验的PLSA
  • PLSA的p(z/d)和p(w/z)都是直接EM估计的,而LDA都是通过狄利克雷给出的多项式分布参数估计出来的
  • LDA是贝叶斯思想,PLSA是MLE

怎么确定LDA的topic个数

  • 对文档d属于哪个topic有多不确定,这个不确定程度就是Perplexity
  • 多次尝试,调优perplexity-topic number曲线困惑度越小,越容易过拟合某个词属于某个主题的困惑度:,某个文章的困惑度即为词的连乘:

LDA和Word2Vec区别?LDA和Doc2Vec区别?

  • LDA比较是doc,word2vec是词
  • LDA是生成的每篇文章对k个主题对概率分布,Word2Vec生成的是每个词的特征表示LDA的文章之间的联系是主题,Word2Vec的词之间的联系是词本身的信息
  • LDA依赖的是doc和word共现得到的结果,Word2Vec依赖的是文本上下文得到的结果

LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?trick?

  • 通常alpha为1/k,k为类别数,beta一般为0.01
  • alpha越小,文档属于某一个主题的概率很大,接近于1,属于其他主题的概率就很小,文章的主题比较明确
  • beta同理,但是一般不会刻意去改beta,主要是压缩alpha到一定小的程度
  • chucksize大一些更新的过程比较平稳,收敛更加平稳
  • 迭代次数一般不超过2000次,200万doc大约在2300次收敛

矩阵连乘问题算法思想_AI自然语言处理算法岗常见面试题(一)相关推荐

  1. NLP算法岗常见面试题梳理

    文章目录 前言 一.Attention相关 1. Bahdanau attention 2. Luong_attention 3. Self_attention 4. 其他attention 二.Be ...

  2. 【算法思想】数学归纳法在算法题中的应用(含例题举例)

    [算法思想]数学归纳法在算法题中的应用(含例题举例) 前言 数学归纳法 应用举例 1. 前n项和 2. 区域计数 3. 着色问题 4. 金字塔求和 5. 简单不等式 6. 欧拉公式 7. 有路可达 8 ...

  3. 算法面试必备-----数据分析常见面试题

    算法面试必备-----数据分析常见面试题 算法面试必备-----数据分析常见面试题 1.统计学问题 问题:贝叶斯公式复述并解释应用场景 问题:朴素贝叶斯的理解 问题:参数估计 问题:极大似然估计 问题 ...

  4. 非常有用的101道算法部分常见面试题

    非常有用的101道算法部分常见面试题 1. Given a rectangular (cuboidal for the puritans) cake with a rectangular piece ...

  5. 算法面试必备-----数据仓库常见面试题

    算法面试必备-----数据仓库常见面试题 算法面试必备-----数据仓库常见面试题 问题:什么叫数据仓库? 问题:数据仓库建模 为什么需要数据仓库建模? 数据仓库建模方法? 1.ER模型 2.维度建模 ...

  6. 算法工程师 -常见面试题

    ▌1. LDA(线性判别分析) 和 PCA 的区别与联系  首先将LDA 扩展到多类高维的情况,以和问题1 中PCA 的求解对应.假设有N 个类别,并需要最终将特征降维至d 维.因此,我们要找到一个d ...

  7. 常见面试题思想方法整理

    最近一直在找工,博客都没怎么更新了,觉得也该总结和思考些东西了,于是便有了这篇文章.谈到面试题,其实它有很多种,有偏技术的(腾讯,淘宝问得多):有偏算法,逻辑和数学的(微软,谷歌,百度,阿里云等问得多 ...

  8. 神奇算式的c语言算法思想6,C语言算法训练题.docx

    C语言算法训练题 C训练题一题1:/problem.page?gpid=T303未名湖边的烦恼每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰 ...

  9. C++常见面试题之数据结构和算法

    1.String原理及实现 string类是由模板类basic_string<class _CharT,class _traits,class _alloc>实例化生成的一个类.basic ...

最新文章

  1. 查看存储过程死锁的存储过程
  2. python学习笔记(开课介绍1)
  3. CelebA数据库转换为VOC、YOLO格式
  4. jpa mysql sql分页查询语句_jpa 中 Query 的分页查询和更新
  5. 设计模式:组合模式(Composite)
  6. Android之BroadcastReceiver 监听系统广播
  7. spring里的controller之间的跳转
  8. recycleview 使用详解,添加头部尾部,混合item,侧滑菜单,跳转到指定位置,实现九宫格布局
  9. 赠书5本包邮:数据思维实践、Cloud Native分布式架构原理与实践
  10. 推荐一个程序员阅读文章资料时的辅助神器
  11. 递归系列——数组和对象的相关递归
  12. 如何将苹方字体写入html,在网页上使用苹方字体
  13. 希尔伯特变换的本质是什么?
  14. 项目管理中如何应对用户频繁的需求变更?
  15. EFCore对数据库增删改查
  16. python爬虫和八爪鱼哪个快_八爪鱼采集器能取代python爬虫吗?
  17. 用平均数和标准差mock数据并保留两位小数
  18. 跨境电商| FaceBook 群发消息
  19. 【物联网】三大厂家NB-IOT卡对比
  20. 我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+

热门文章

  1. 静态资源存储 vs 对象资源存储
  2. ajax存储单个数据_科学家现在可以使用单个原子存储数据
  3. 用Python将音频内容转换为文本格式
  4. Python-使用tkinter实现的摇骰子小游戏
  5. python中静态方法存在的意义
  6. 凸集、凸函数、凸优化问题 概念关联
  7. 网页中播放FLV文件的代码
  8. ASP.NET企业开发框架IsLine FrameWork系列之二--命名空间与契约
  9. Torch 学习总结
  10. 【数据结构、算法】八大排序算法概述(算法复杂度、稳定性)