Skip to content

Commit

Permalink
更新lda知识点,新开相似度计算的坑
Browse files Browse the repository at this point in the history
  • Loading branch information
沙韬伟 committed Aug 6, 2020
1 parent 32a87b4 commit e5ac7e9
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 5 deletions.
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Reflection_Summary

1. 以下内容为我作为面试管的提问,以及陪伴实习生同学@[tcandzq](https://github.com/tcandzq)参加2020届校招面试各类算法问题及个人理解的汇总
2. 各种解答均为我的理解和看法,一定有存疑和不完善的地方,欢迎大家补充和质疑打脸
3. 另外,恭喜[tcandzq](https://github.com/tcandzq)收割到腾讯UGC,阿里算法中台,头条广告推荐offer,:clap:
4. 部分内容为**手记**pdf内容,因为公式实在太多,手写比较快,笔记潦草,见谅
1. 以下内容为我作为面试管的提问,以及陪伴实习生同学@[tcandzq](https://github.com/tcandzq)参加2020届校招面试各类算法问题及个人理解的汇总,另外,恭喜[tcandzq](https://github.com/tcandzq)收割到腾讯UGC,阿里算法中台,头条广告推荐offer,:clap:
2. 部分内容为**手记**pdf内容,因为公式实在太多,手写比较快,笔记潦草,见谅,内容部分会引用第三方的观点,但是一定会结合自己的感受和体会,**一定有存疑和不完善的地方**,欢迎大家补充和质疑打脸
3. 现在算法工程师的面试以下内容都不会直接提问,而是以项目交流的方式去挖掘在一个问题上的理论理解的深度,建议大家结合实际工作中的case去思考
4. 另外,打个广告,南京蓝厂nlp/推荐均有坑位,做的方向是资讯的信息流推荐和短/小视频推荐,欢迎勾搭,广告完

***
# 基础概念
Expand Down Expand Up @@ -327,6 +327,8 @@
- [怎么确定LDA的topic个数](自然语言处理/LDA.md#L164)
- [LDA和Word2Vec区别?LDA和Doc2Vec区别](自然语言处理/LDA.md#L164)
- [LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?trick?](自然语言处理/LDA.md#L164)
- [使用过LDA,你有什么问题?](自然语言处理/LDA.md#L164)
- [你用真实用过吗?对比过效果吗?](自然语言处理/LDA.md#L164)
- LSTM
- GRU
- Bert:[实现/使用的代码](https://github.com/sladesha/deep_learning/tree/master/Bert)
Expand All @@ -345,6 +347,8 @@
- [平时用官方Bert包么?耗时怎么样](自然语言处理/Bert.md#L164)
- [你觉得BERT比普通LM的新颖点](自然语言处理/Bert.md#L164)
- [elmo、GPT、bert三者之间有什么区别](自然语言处理/Bert.md#L164)
- 文本相似度计算
- [有哪些常用的方法](自然语言处理/文本相似度计算.md#L164)

# 推荐
- DIN:[实现/使用的代码](https://github.com/sladesha/deep_learning/tree/master/DeepInterestNetwork)
Expand Down
25 changes: 24 additions & 1 deletion 自然语言处理/LDA.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,27 @@
- alpha越小,文档属于某一个主题的概率很大,接近于1,属于其他主题的概率就很小,文章的主题比较明确
- beta同理,但是一般不会刻意去改beta,主要是压缩alpha到一定小的程度
- chucksize大一些更新的过程比较平稳,收敛更加平稳
- 迭代次数一般不超过2000次,200万doc大约在2300次收敛
- 迭代次数一般不超过2000次,200万doc大约在2300次收敛

# 使用过LDA,你有什么问题?

- 这个算法本身的一些问题,比如
- LDA 产生的主题往往被高频词占据,这种现象导致低频词在实际应用中的作用非常有限
- 词袋模型的通病,顺便还可以考一下词袋模型有哪些
- 泛化能力差,对新词的接受程度不如一些字级别的算法强
- 实际使用的时候要注意的问题,比如
- 短文本效果差。lda用的是近似统计推断的方式,通过观察单个词所属的主题分布推断整句所属的主题,短文本中的词个数少,观测结果少,得到的结果不置信,也就是数据sparisty问题
- 主题个数太黑盒,连预估的搜索区间都没办法很好给出,取决于文章属性,文章质量,以及最后想得到的主题粗细力度
- 对通识性的内容效果好,对突发性的内容效果差。可以识别法律相关的内容,因为它们不咋变化,聚出来的可以长时间复用;但是对热点资讯就不好,因为热点是一阵一阵的,很难长久化复用

# 你用真实用过吗?对比过效果吗?

我觉得gensim和sklearn里面的两个我就不说了,gensim里面的可以做困惑度gridsearch,比较舒适;sklearn的便捷性高,计算速度相对于gensim的,我个人感觉更快,而且参数解析更加清晰。



除此之外,个人强推warplda,这个模型的计算是用的吉布斯采样替代了以上两种模型的变分推断,理论上效果更好,(小声bb,其实没有很大差异),速度也是o(1)的,主要是还方便集成到familia的框架下。



另外就是lightlda,这个没用过,但是业界传的还行,也可以试试,综合建议lightlda或者warplda吧。
3 changes: 3 additions & 0 deletions 自然语言处理/文本相似度计算.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 有哪些常用的方法

今晚没空了,待补充

0 comments on commit e5ac7e9

Please sign in to comment.