《隐含主题分析和大规模机器学习》由会员分享,可在线阅读,更多相关《隐含主题分析和大规模机器学习(42页珍藏版)》请在金锄头文库上搜索。
1、隐含主题分析和大规模机器学习Zhihui JIN2011-4-26提纲o什么是 Latent Topic Analysis (LTA)oLTA 简史和各种方法比较oLDA 模型介绍oLTA 在目前互联网产品中的应用o实际产品中的 LTA 问题什么是LTAo从文本相关性中的问题说起:n给定一个短文本(比如query),信息量太少,机器常常误解。n无法从字面(word)上正确判断相关性!梦想什么是LTAo短文本信息量不够怎么办?o使用机器学习技术从大量训练文本中总结知识,帮助理解短文档o“知识”应该是什么样子的?o表示同一个主题的词聚为一类(topic);知识=topicso例子:ntopic 1
2、 = apple, tree, pie, fruit, etcntopic 2 = computer, iphone, ipod, applen“apple pie” topic 1: 99%, topic 2: 1%n“iphone crack topic 1: 1%, topic 2: 99%n“Apple Computer” topic 1: 1%, topic 2: 99%n“The apple is ” topic 1: 99%, topic 2: 1%什么是LTAoLTA的两个功能部件n训练算法(training algorithm):o输入:训练文档(每个文档是一包词)o输出:模
3、型(topics以及topic和word之间的关系)o训练算法是离线的,挑战在于使用并行计算技术,从海量数据中获得搜索用户可能关注的所有topics。n推演算法(inference algorithm):o输入1:一个文档(一包词)o输入2:模型o输出:输入文档的意思(和那些topics相关)o推演算法有在线的、也有离线的。在线算法用于理解query;离线算法用于理解文档。挑战在于快速且准确。什么是LTAnLTA不仅仅能处理文本,只要是一包xx就行o一次购物=一包货品o一个用户=一包浏览记录o一个被点击的URL=一包导致点击的querieso一个mp3文件=一包音频featureso一个视频文
4、件=一包视频featuresnLTA在实际互联网产品中的应用oBlog categorizationoNews recommendationoFriends suggestionoSearch matching and rankingoAds targetingLTA 的发展和方法比较oLatent Semantic Analysis (1990) Singular Value DecompositionoNon-negative Matrix Factorization (2005)oProbabilistic LSA, PLSA (1999)oNoisy-OR Component Anal
5、ysis (2005)oLatent Dirichlet Allocation (2003)Latent Semantic Analysis Term-Document MatrixLatent Semantic AnalysisLTA 的发展和方法比较o矩阵分解n典型方法:oSVD (singular value decomposition)oNMF (non-negative matrix factorization)n输入:一个DxV的矩阵M。 D是训练文档的个数,V是词典大小。 Mij=词j在文档i中出现次数n输出:DxK矩阵U: 每个文档和topic的相关度 KxV矩阵V: 每个词和
6、topic的相关度n通常线性投影一个新文档到topic空间,借此理解新文档: t = dTVn问题:投影结果没有物理意义,所以很难选择一个相似度度量问题:投影结果没有物理意义,所以很难选择一个相似度度量 (similarity measure) 来衡量两个文档的相似度来衡量两个文档的相似度。 o有人使用点积(sij = titj) ,但是没法说明道理,无法保证效果Statistical Text ModelingBag of Words Documents TermsproofinductionobjectbouquetmemoryDocuments TermsDocuments Topics
7、 Termsproofinductionobjectbouquetmemory引入 Hidden Topics什么是 TopicoTopic 是 Vocab 上的概率分布 Hofmann, 1999Statistical Text Modeling Mixture of Unigrams所有terms 由同一个topic生成Statistical Text Modeling Probabilistic Latent Semantic AnalysisproofinductionobjectbouquetmemoryTerms 由不同的 topic 生成Statistical Text Mode
8、ling Probabilistic Latent Semantic Analysis使用 EM 算法最大化 L 求解模型参数PLSA 的优缺点o概率模型n输出:P(topic | document) P(word | topic)n因为输出矩阵中是概率,所以可以用度量两个probability distributions 的方法来度量两个文档的相似度: sij = JS P(topic | di); P(topic | dj)n问题:理解新文档很困难:需要把新文档和之前的训练文档放问题:理解新文档很困难:需要把新文档和之前的训练文档放在一起继续训练几个迭代在一起继续训练几个迭代o大规模训练需
9、要几十台几百台计算机并行:inference成本太高oquery不断的来,几十台几百台机器也存不下:放弃哪些老文档Statistical Text Modeling Latent Dirichlet AllocationDocuments TermsDocuments Topics TermsproofinductionobjectbouquetmemoryproofinductionobjectLDA 文档生成模型概率计算参数求解 先验分布选什么 ?本身是多项分布,一个自然的选择是使用其共轭分布 Dirichlet 分布给定数据, 后验分布还是 Dirichlet 分布联合分布Gibbs S
10、ampling如何生成样本符合密度分布Gibbs SamplingP(word|topic) P(topic|document)LDA Training via Gibbs Sampling wzwzwzwzwzwzwzwzzzDoc_1Doc_nStep1 : 随机初始化语料库中的每个词的随机初始化语料库中的每个词的 topicw1w2wnt1t2tkLDA Training via Gibbs Sampling wzwzwzwzwzwzwzwzzzDoc_1Doc_nStep2 : 重新采样每个重新采样每个topic, 更新模型,直到收敛更新模型,直到收敛zzzw1w2wnt1t2tkLD
11、A Training via Gibbs Sampling wzwzwzwzzzDoc_1Doc_nStep3 : 输出模型参数输出模型参数 Topic-Word matrixw1 w2wnt1t2tkLDA Inference via Gibbs Sampling 对新来的文档中的词采样对新来的文档中的词采样 n 次次wzwzzDoc_neww1 w2wnt1t2tkP(topic|word)P(topic|document)Parallel LDA Training文档数量巨大文档数量巨大, Map-Reduce Parallel LDA Trainingw1 w2 wnt1t2tk模型太
12、大了,内存存放不下模型太大了,内存存放不下1500 * 300,000 * 8B = 3.6GB模型按模型按 vocab 分片加载分片加载, 多次扫描文档多次扫描文档LDA 正确性验证每张图片是一个 Topic Size 512 x 512 每个点(i,j)代表一个 term 点的灰度值代表term的频率 所有term权重 normalize 为概率分布1,20.50.20.34,64,610,24,6 文档长度为1000, 生成了共10万篇文档 所有文档使用 LDA 训练,设置 topic 个数为 12Q: 收敛以后的 topic(图像) 和原始的 topic (图像) 对应吗 ?20 it
13、eration 50 iterationLDA 正确性验证LTA 和其他机器学习方法的结合o有监督(supervised)机器学习系统n二分类器:oSETI (logistic regression)o广告、spam fighting, junk mail detection, porn detection, machine translation n多分类器:oPegasos (SVM)o文本(网页、blog、新闻)分类nTaxonomy分类器oCATo把视频等归入预先定义的树状分类体系中n线性空间变换oPAMIRo将query(文本)投影到图像空间:image searcho将图像投影到文本空间:image taggingThanks for your attentions!