我是这样一步步理解--主题模型(Topic Model)、LDA(案例代码)

LDA可以分为以下5个步骤:

关于LDA有两种含义,一种是线性判别分析(Linear Discriminant Analysis),一种是概率主题模型: 隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA) ,本文讲后者。

按照wiki上的介绍,LDA由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,是一种主题模型,它可以将文档集 中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。此外,一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。

人类是怎么生成文档的呢?首先先列出几个主题,然后以一定的概率选择主题,以一定的概率选择这个主题包含的词汇,最终组合成一篇文章。如下图所示(其中不同颜色的词语分别对应上图中不同主题下的词)。

那么LDA就是跟这个反过来: 根据给定的一篇文档,反推其主题分布。

在LDA模型中,一篇文档生成的方式如下:

其中,类似Beta分布是二项式分布的共轭先验概率分布,而狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布。此外,LDA的图模型结构如下图所示(类似贝叶斯网络结构):

先解释一下以上出现的概念。

至此,我们可以看到二项分布和多项分布很相似,Beta分布和Dirichlet 分布很相似。

如果想要深究其原理可以参考: 通俗理解LDA主题模型 ,也可以先往下走,最后在回过头来看详细的公式,就更能明白了。

总之, 可以得到以下几点信息。

在讲LDA模型之前,再循序渐进理解基础模型:Unigram model、mixture of unigrams model,以及跟LDA最为接近的pLSA模型。为了方便描述,首先定义一些变量:

反过来,既然文档已经产生,那么如何根据已经产生好的文档反推其主题呢?这个利用看到的文档推断其隐藏的主题(分布)的过程(其实也就是产生文档的逆过程),便是 主题建模的目的:自动地发现文档集中的主题(分布)。

文档d和词w是我们得到的样本,可观测得到,所以对于任意一篇文档,其 是已知的。从而可以根据大量已知的文档-词项信息 ,训练出文档-主题 和主题-词项 ,如下公式所示:

故得到文档中每个词的生成概率为:

由于 可事先计算求出,而 和 未知,所以 就是我们要估计的参数(值),通俗点说,就是要最大化这个θ。

用什么方法进行估计呢,常用的参数估计方法有极大似然估计MLE、最大后验证估计MAP、贝叶斯估计等等。因为该待估计的参数中含有隐变量z,所以我们可以考虑EM算法。详细的EM算法可以参考之前写过的 EM算法 章节。

事实上,理解了pLSA模型,也就差不多快理解了LDA模型,因为LDA就是在pLSA的基础上加层贝叶斯框架,即LDA就是pLSA的贝叶斯版本(正因为LDA被贝叶斯化了,所以才需要考虑历史先验知识,才加的两个先验参数)。

下面,咱们对比下本文开头所述的LDA模型中一篇文档生成的方式是怎样的:

LDA中,选主题和选词依然都是两个随机的过程,依然可能是先从主题分布{教育:0.5,经济:0.3,交通:0.2}中抽取出主题:教育,然后再从该主题对应的词分布{大学:0.5,老师:0.3,课程:0.2}中抽取出词:大学。

那PLSA跟LDA的区别在于什么地方呢?区别就在于:

PLSA中,主题分布和词分布是唯一确定的,能明确的指出主题分布可能就是{教育:0.5,经济:0.3,交通:0.2},词分布可能就是{大学:0.5,老师:0.3,课程:0.2}。
但在LDA中,主题分布和词分布不再唯一确定不变,即无法确切给出。例如主题分布可能是{教育:0.5,经济:0.3,交通:0.2},也可能是{教育:0.6,经济:0.2,交通:0.2},到底是哪个我们不再确定(即不知道),因为它是随机的可变化的。但再怎么变化,也依然服从一定的分布, 即主题分布跟词分布由Dirichlet先验随机确定。正因为LDA是PLSA的贝叶斯版本,所以主题分布跟词分布本身由先验知识随机给定。

换言之,LDA在pLSA的基础上给这两参数 加了两个先验分布的参数(贝叶斯化):一个主题分布的先验分布Dirichlet分布 ,和一个词语分布的先验分布Dirichlet分布 。

综上,LDA真的只是pLSA的贝叶斯版本,文档生成后,两者都要根据文档去推断其主题分布和词语分布(即两者本质都是为了估计给定文档生成主题,给定主题生成词语的概率),只是用的参数推断方法不同,在pLSA中用极大似然估计的思想去推断两未知的固定参数,而LDA则把这两参数弄成随机变量,且加入dirichlet先验。

所以,pLSA跟LDA的本质区别就在于它们去估计未知参数所采用的思想不同,前者用的是频率派思想,后者用的是贝叶斯派思想。

LDA参数估计: Gibbs采样 ,详见文末的参考文献。

推荐系统中的冷启动问题是指在没有大量用户数据的情况下如何给用户进行个性化推荐,目的是最优化点击率、转化率或用户 体验(用户停留时间、留存率等)。冷启动问题一般分为用户冷启动、物品冷启动和系统冷启动三大类。

解决冷启动问题的方法一般是基于内容的推荐。以Hulu的场景为例,对于用 户冷启动来说,我们希望根据用户的注册信息(如:年龄、性别、爱好等)、搜 索关键词或者合法站外得到的其他信息(例如用户使用Facebook账号登录,并得 到授权,可以得到Facebook中的朋友关系和评论内容)来推测用户的兴趣主题。 得到用户的兴趣主题之后,我们就可以找到与该用户兴趣主题相同的其他用户, 通过他们的历史行为来预测用户感兴趣的电影是什么。

同样地,对于物品冷启动问题,我们也可以根据电影的导演、演员、类别、关键词等信息推测该电影所属于的主题,然后基于主题向量找到相似的电影,并将新电影推荐给以往喜欢看这 些相似电影的用户。 可以使用主题模型(pLSA、LDA等)得到用户和电影的主题。

以用户为例,我们将每个用户看作主题模型中的一篇文档,用户对应的特征 作为文档中的单词,这样每个用户可以表示成一袋子特征的形式。通过主题模型 学习之后,经常共同出现的特征将会对应同一个主题,同时每个用户也会相应地 得到一个主题分布。每个电影的主题分布也可以用类似的方法得到。

那么如何解决系统冷启动问题呢? 首先可以得到每个用户和电影对应的主题向量,除此之外,还需要知道用户主题和电影主题之间的偏好程度,也就是哪些主题的用户可能喜欢哪些主题的电影。当系统中没有任何数据时,我们需要一些先验知识来指定,并且由于主题的数目通常比较小,随着系统的上线,收集到少量的数据之后我们就可以对主题之间的偏好程度得到一个比较准确的估计。

通俗理解LDA主题模型

LDA模型应用:一眼看穿希拉里的邮件

【 机器学习通俗易懂系列文章 】



  • 濡備綍琛ㄨ揪鎶辨(娌熼氬姏1鏈-2鍛-3娆)
    绛旓細銆涓婚銆戯細濡備綍琛ㄨ揪鎶辨 銆愮墖娈垫潵婧愩戯細銆婄鐞嗘妧鑳藉紑鍙戙婸.429锝430 銆愭媶涔﹀銆戦嗘按路娑 銆怰锛氶槄璇诲師鏂囥        鎴堢櫥鎻忚堪浜嗕竴涓府浣犳湁鏁堥槓杩颁綘鐨勯棶棰樼殑鏈夌敤妯″瀷锛氣滄垜鏈変竴涓棶棰橈紝褰撲綘鍋歑鏃跺鑷寸粨鏋淵锛岃屾垜鐨勬劅瑙夋槸Z銆傗        绗竴...
  • 姒傚康妯″瀷鏄粈涔?
    绛旓細姒傚康鐨勬弿杩板寘鎷細璁板彿銆佸唴娑点佸寤讹紝鍏朵腑璁板彿鍜屽唴娑碉紙瑙嗗浘锛夋槸鍏舵渶鍏峰疄闄呮剰涔夌殑銆傛蹇妯″瀷鐢ㄤ簬淇℃伅涓栫晫鐨勫缓妯★紝瀹冩槸涓栫晫鍒颁俊鎭笘鐣岀殑绗竴灞傛娊璞★紝瀹冩暟鎹簱璁捐鐨勬湁鍔涘伐鍏凤紝涔熸槸鏁版嵁搴撳紑鍙戜汉鍛樹笌鐢ㄦ埛涔嬮棿杩涜浜ゆ祦鐨勮瑷銆傚洜姝ゆ蹇垫ā鍨嬫棦瑕佹湁杈冨己鐨勮〃杈捐兘鍔涳紝搴旇绠鍗曘佹竻鏅般佹槗浜鐞嗚В銆傜洰鍓嶆渶甯哥敤鐨勬槸瀹炰綋-...
  • 鍐欎綔绱犳潗杩炶浇,12-绔炰簤路鍚堜綔
    绛旓細鐜板湪锛屾垜浠殑鍐欎綔鏃呯▼姝e紡寮濮嬶細鎺ㄩ佽鍒掞細鎺ヤ笅鏉ョ殑60澶╋紝鎴戜滑灏嗛愭棩娣卞叆鎺㈣涓涓啓浣涓婚锛屾兜鐩栧啓浣滅瓥鐣ャ佺粡鍏哥礌鏉愬拰鑼冩枃瑙f瀽锛屽姪浣犳彁鍗囧啓浣滆兘鍔涳紝绋充腑姹傝繘銆傜粌绗旀墦鍗℃寫鎴橈細鐞嗚涓庡疄璺电粨鍚堬紝姣忔棩涓婚鎬濊冪粌涔犱笉瀹瑰拷瑙嗐傛棤璁烘槸鏍规嵁銆愭濊矾璁粌銆妯″瀷锛岃繕鏄洿鎺ュ垎浜綘鐨勬劅鎮燂紝姣忓ぉ鍔ㄧ瑪锛岄兘鏄綘杩涙鐨勯樁姊傝繖閲...
  • 璁よ瘑鑷繁|(6)浠庢椂闂寸嚎绾靛悜鐪嬭嚜宸-1鐢熷懡绾挎帰绱㈠彂鐜板叴瓒c佹妧鑳藉拰涓...
    绛旓細绗叓姝ワ細寰楀嚭鑷繁鐨勨滆亴涓氳湝缃愬尯鈥妯″瀷 2017骞8鏈12鏃ワ紝鎴戝畬鎴愪簡鑷繁鐨勭敓鍛界嚎鎺㈢储銆傛垜鐨勭敓鍛界嚎楂樹綆娼簨浠跺浘锛氬搴旂殑浜嬩欢鏄細灏忔椂鍊欏枩娆㈢敾鐢伙紝鐢讳綔浼氳瀹朵汉鑲畾骞跺紶璐达紝鍠滄鐢荤敾鍋氱敓鏃ョぜ鐗╅佺粰瀹朵汉銆傝嚜宸辫璁$帺鍏峰拰娓告垙锛岀Н鏈ㄣ佽繃瀹跺銆佺焊鍏粩銆佹銆佽。鏈嶃佽佸笀浠旓紝灏忔湅鍙嬩篃鍠滄鍜屾垜鐜┿傚拰闄㈤噷鐨勭敺鐢熷コ鐢...
  • 濡備綍鎻愰珮鑷繁鐨勯昏緫琛ㄨ揪鑳藉姏?
    绛旓細棣栧厛锛屾垜浠鐭ラ亾娌℃湁閫昏緫琛ㄨ揪鑳藉姏鐨勪汉涓庢湁濂界殑琛ㄨ揪鑳藉姏鐨勪汉璇磋瘽鏈変粈涔堝尯鍒紵鎵浠ワ紝鏈変竴涓ソ鐨勯昏緫锛屽氨鏄淇濊瘉鎴戜滑璇寸殑璇濇垨鑰呭啓鐨勬枃绔犺兘澶熸湁瑙勫緥鐨勯檲杩颁竴涓腑蹇冩濇兂銆杩欐牱鍒汉灏变細鏇村鏄撴尯鏄庣櫧鎴戜滑鍦ㄨ浠涔堬紝缁ц岃涓烘垜浠湁閫昏緫銆傞偅涔堬紝璇ュ浣曞仛鍒板憿锛熸垜缁欏ぇ瀹舵帹鑽愪竴涓垜涓鐩村湪浣跨敤鐨勬柟娉曪紝閲戝瓧濉旂粨鏋勮〃杈...
  • 100绉嶆濈淮妯″瀷-15.鎵瑰垽鎬ф濈淮
    绛旓細寮濮嬫渶濂戒粠鎺㈢储 鎵瑰垽鎬ф濈淮鐨勫畾涔 鍜屽畠鎵鍖呭惈鐨勬妧鑳藉紑濮嬧斺斾竴鏃︿綘杩欐牱鍋氫簡,浣犲氨鍙互澶ц儐鍦扮洿闈㈠叧閿棶棰:鎴戝浣曟墠鑳芥彁楂樿嚜宸辩殑鎵瑰垽鎬ф濈淮? 杩欎笉鏄竴椤...鎵瑰垽鎬ф濈淮鏄竴绉嶆濈淮娓呮櫚銆佺悊鎬х殑鑳藉姏,鑳藉鐞嗚В鎬濇兂涔嬮棿鐨勯昏緫鑱旂郴銆傝嚜鏌忔媺鍥俱佽嫃鏍兼媺搴曠瓑鍙ゅ笇鑵婂摬瀛﹀浠ユ潵,鎵瑰垽鎬ф濈淮涓鐩存槸浜轰滑浜夎鍜屾濊冪殑涓婚,骞朵竴鐩存寔缁...
  • 鏁版嵁浠撳簱鏁版嵁寤烘ā鐨勫嚑绉嶆濊矾
    绛旓細鏄熷瀷妯″紡鏄熀浜庝竴寮犱簨瀹炶〃鐨勶紝鑰屾槦搴фā寮忔槸鍩轰簬澶氬紶浜嬪疄琛ㄧ殑锛岃屼笖鍏变韩缁村害淇℃伅銆傚墠闈粙缁嶇殑涓ょ缁村害寤烘ā鏂规硶閮芥槸澶氱淮琛ㄥ搴斿崟浜嬪疄琛紝浣嗗湪寰堝鏃跺欑淮搴︾┖闂村唴鐨勪簨瀹炶〃涓嶆涓涓紝鑰屼竴涓淮琛ㄤ篃鍙兘琚涓簨瀹炶〃鐢ㄥ埌銆傚湪涓氬姟鍙戝睍鍚庢湡锛岀粷澶ч儴鍒嗙淮搴﹀缓妯¢兘閲囩敤鐨勬槸鏄熷骇妯″紡銆傛槦搴妯″瀷 ...
  • W2D3-ABTB閿鍞妯″瀷-銆婄垎娆惧啓浣滆銆 - 鑽夌
    绛旓細鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 鍏虫敞 灞曞紑鍏ㄩ儴 銆涓婚銆慉BTB閿鍞妯″瀷 [鐗囨鏉ユ簮]:銆婄垎娆惧啓浣滆銆 銆怰:鍘熸枃鐗囨銆 鏈変竴涓攢鍞ā鍨婣BTB: A(Attraction):鍚稿紩 B(Benefit:鐙壒鍒╃泭鐐 T(Trust):淇′换 B(Buy):琛屽姩璐拱 涓句竴涓緥瀛,姣斿浣犲笇鏈涜鏈嶅鏂归噰鐢ㄤ綘鐨勫噺鑲ユ柟妗,鏂囧瓧鍙互灏濊瘯杩欐牱鍐: 鍚稿紩 鏈変竴涓湅鍙...
  • 鐢熷懡鐨鐞嗚В
    绛旓細澶╀笅涔熸病鏈変竴浣嶇湡姝g殑绉戝瀹舵暍璇:瀹囧畽涓殑涓鍒囨垜閮借兘鍥炵瓟,涔熸病鏈変竴鏈О鈥滅瀛︹濈殑涔︽暍鍐欎笂鈥滅粷瀵规纭濄 浜虹殑鐭ヨ瘑鏈夐檺,杩欐槸澶ч儴鍒嗘櫤娣辩瀛﹀鍜岄珮绾х煡璇嗗垎瀛愭墍鍏辫瘑鐨勩 璁鎶璁(鍓戦緳/缂栬瘧)鐨勯《灏栫瀛﹀鏂囩珷璇:鐗╃悊瀛﹀浠湁浜嗕竴涓緢濂界殑鏍囧噯妯″瀷,鎶婂凡鐭ョ殑瀹囧畽闆曞埢鎴愬井绮掔郴缁,鐢ㄦ潵鎻忚堪浠讳綍浜嬬墿,浠庣鎬у埌鍘熷瓙...
  • NLP鍩虹鐭ヨ瘑鍜岀患杩
    绛旓細鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 鍏虫敞 灞曞紑鍏ㄩ儴 涓绉嶆祦琛岀殑鑷劧璇█澶勭悊搴撱佽嚜甯﹁鏂欏簱銆佸叿鏈夊垎绫,鍒嗚瘝绛夊緢澶氬姛鑳,鍥藉浣跨敤鑰呭眳澶,绫讳技涓枃鐨刯ieba澶勭悊搴 涓哄崟璇嶅簭鍒楀垎閰嶆鐜囩殑妯″瀷灏卞彨鍋氳瑷妯″瀷銆 閫氫織鏉ヨ, 璇█妯″瀷灏鏄繖鏍蜂竴涓ā鍨:瀵逛簬浠绘剰鐨勮瘝搴忓垪,瀹冭兘澶熻绠楀嚭杩欎釜搴忓垪鏄竴鍙ヨ瘽鐨勬鐜囥傛垨鑰呰璇█妯″瀷鑳介娴嬪崟璇嶅簭...
  • 扩展阅读:ai智能写作一键生成 ... 智能ai写作免费 ... 扫一扫题目出答案 ... 一秒拍照答题 ... 扫一扫一秒出答案 ... 答题神器一扫就出答案 ... 免费ai写作入口 ... 扫一扫自动答题 ... 能拍题找答案的软件 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网