主题模型综述:短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持
原文鏈接:https://www.zhihu.com/question/34801598/answer/765580727
主題模型當然有用咯,誰用誰知道!這次我來展示下它的7個“變種”(短文本、細粒度、加入先驗知識、作者寫作偏好、主題內涵隨時間的變遷、融入詞嵌入特性、語言模型加持):
- Biterm Topic Model
- Multi-Grain Topic Model
- Topic Modeling with Minimal Domain Knowledge
- Author-Topic Model
- Dynamic Topic Models
- Embedded Topic Model /LDA2VEC
- Topically-Driven-Language-Model
(1)短文本主題建模的利器 ---Biterm Topic Model
從原理上說,BTM是一個非常適合于短文本的topic model,同時,作者說它在長文本上表現也不遜色于LDA。
BTM模型首先抽取biterm詞對。抽取的方法是:去掉低頻和stopword;對于短文本(如tweets或百度知道等),取一個doc中的任意兩個詞對 ;對于長文本,需要兩個詞在一定的距離之內,這個窗長一般取到30~60效果較好.然后通過biterm對文檔集合進行建模.
LDA的問題是稀疏性。LDA中每個文檔對應一個theta,每個詞對應一個z。對于短文本,由于詞少,z-->theta這一步的統計可能不具備統計意義。因為每個文本單獨對應于theta,所以增加文本數量不能克服這種短文本帶來的缺陷。
傳統的解決之道有兩個。1.是將多個短文本聚合成一個長文本。比如LDA-U將一個user的多個發言聚合在一起減少稀疏影響。但這種做法與應用相關,需要有外部信息來輔助找到聚合的單位。2.是利用一個長文檔文本集作為輔助數據,將長文本的一些信息先以某種形式抽取反應到先驗中,從而間接地提供給短文本。看似很美好,問題在于,與transfer learning類似,這個知識能不能傳還兩說,得先找到一個總體主題分布類似的長文檔集。
總體來說,LDA并不適用于短文本,LDA-U略好,但是基于user的聚合受限于應用和領域知識。
mixture of unigram在這里表現比LDA系列更好,原因是它對于所有文檔用同一個theta,克服了短文本稀疏性問題。這個模型的問題是,它假設了整個文檔對應于一個z,這比較粗糙和strong了,會導致一個topic類內距離很大,因為對于長文本,較遠的段落之間可能語義差異很大了。在長文本以及K較大的時候,這個模型效果會比較差,但在短文本上,這個缺陷倒是不那么明顯,因此效果好于LDA系列
最后是BTM模型。可以認為BTM綜合了上述二者的優點。BTM跟mix一樣,利用了整個文本集合來估計一個theta,解決了稀疏問題(我們通常有海量數據)。放寬了mix中對整個doc必須同屬于一個z的約束(相當于從整doc放松到了窗口長度類的兩個詞),加強了LDA中每個詞對應于一個Z的假設(BTM中約束了窗長內的兩個詞組成一個biterm對應于一個z)。這個假設很接近于人類認知,因為我們知道,通常在較短的一段文本內,topic變化不大。
說一句題外話,前幾天聽了一個知識圖譜的講座。他們也是用一個共現詞對來排歧作為LDA的補充。比如 李娜+青藏高原 這個詞對,可以很大程度上將李娜和其他人(比如另一個做音樂的李娜,無法被LDA所區分)區分開來。unigram是一個極端,一大堆詞是另一個極端了。BTM相當于是這種思路在TM系列模型中的一個探索。從另一個角度,2gram或許也可以替換term作為LDA的單元,而BTM的嘗試是將連續的2gram放開,允許中間有一個窗長。總的來說,這是一個相當有意思的思路,而且非常nature。
原文:https://blog.csdn.net/windows2/article/details/16812363
(2)多主題文本建模的利器 --- Multi-Grain Topic Model
考慮這樣一個應用場景,有關于聯想、戴爾、蘋果三臺筆記本電腦的若干評論數據,Multi-Grain Topic Model(細粒度的主題模型)基于全局和局部信息,既發現了宏觀上的大主題,比如評論對應的品牌 --- 聯想、戴爾、蘋果;微觀上的小主題,蘋果電腦對應的性能話題、聯想電腦對應的性價比話題等,二者相互補充,比LDA返回的信息量要大很多。
<img src="https://pic4.zhimg.com/50/v2-1d36c2d38c59f2feac9dadd5b32bcca5_hd.jpg?source=1940ef5c" data-size="normal" data-rawwidth="711" data-rawheight="326" data-default-watermark-src="https://pic1.zhimg.com/50/v2-3f944888da36cb34f0ac2b5da2169bef_hd.jpg?source=1940ef5c" class="origin_image zh-lightbox-thumb" width="711" data-original="https://pic2.zhimg.com/v2-1d36c2d38c59f2feac9dadd5b32bcca5_r.jpg?source=1940ef5c"/>幾款電子產品的Multi Grain Topic Model分析(3)摻入少許先驗知識的主題模型---Topic Modeling with Minimal Domain Knowledge
Topic Modeling with Minimal Domain Knowledge(加入少許先驗知識的主題模型)通過關聯解釋(Correlation Explanation )進行主題建模會產生豐富的主題,這些主題可以最大限度地提供一組文本數據的信息。這種方法優化了稀疏二進制數據(Sparse Binary Data)的Correlation Explanation框架,允許對大型語料庫進行主題建模。此外,該方法支持分層主題建模(Hierarchical Topic Modeling),提供一種整合領域知識的機制(Integrating Domain Knowledge) ---通過錨定詞匯(Anchor Words)和信息瓶頸(The Information Bottleneck)來實現。這種半監督的錨定(Semi-Supervised Anchoring)是靈活的,允許用戶提升進主題表示的效果 --- 通過添加指定主題的錨定詞匯來得到解釋性較高的主題。
與LDA(隱狄利克雷模型)不同,CorEx主題模型及其分層和半監督擴展不會對文檔的生成方式做出任何假設。但是,它們仍然可以在各種指標中找到具有一致性和有意義的主題。一篇TACL論文對LDA的無監督和半監督變體進行了詳細比較:
Gallagher,Ryan J.,Kyle Reing,David Kale和Greg Ver Steeg,《Anchored Correlation Explanation: Topic Modeling with Minimal Domain Knowledge》 ,2017
此項目可用于任何稀疏且二進制的數據集(Any Sparse Binary Dataset)。原則上,0 ~ 1范圍內的連續值也可以用作輸入,但是其效果未得到很好的測試。
以下以50,000條汽車評論數據為例,展示該模型的核心代碼和結果:
#詞匯表 words = list(np.asarray(text_pred.get_feature_names()))#加入錨定詞匯,分別是汽車油耗、外觀、噪音和空間這四個先驗主題關鍵詞列表
anchor_words = [[‘油耗’,‘省油’],
[‘外觀’,‘外形’,‘顏值’,‘線條’,‘前臉’,‘時尚’,‘造型’,‘流暢’],
[‘噪音’,‘胎噪’,‘噪音控制’,‘隔音’],
[‘空間’,‘座位’,‘擁擠’]]
訓練帶入先驗知識的主題模型
topic_model = tp.Coret(
n_hidden=20 ,
max_iter=100000,
verbose=0,
count=‘fraction’,
seed=2019
topic_model.fit(X_pro , #輸入為稀疏詞匯表示
words=words,
anchors = anchor_words,
anchor_strength=10 #錨定強度,數值越大,主題模型訓練的結果受錨定詞匯的影響就越大
)
從訓練好的主題模型中看看某類結果:
topic_model.get_topics(topic=1, n_words=50)[(‘外觀’, 0.4301756671083077),
(‘顏值’, 0.10011823545089653),
(‘外形’, 0.06618560083637216),
(‘時尚’, 0.054193038069410004),
(‘前臉’, 0.04076140897169324),
(‘線條’, 0.03466495921583512),
(‘造型’, 0.03414006949798674),
(‘外觀設計’, 0.01699050254486039),
(‘流暢’, 0.015337625168866267),
(‘動感’, 0.013126344098356961),
(‘運動感’, 0.009363907127811736),
(‘審美’, 0.008732302601110832),
(‘流線型’, 0.006803817188302315),
(‘流線’, 0.005895597474292352),
(‘修長’, 0.005593062618077139),
(‘大氣’, 0.0429432014991769),
(‘漂亮’, 0.02758077948725461),
(‘好看’, 0.026179714467314867),
(‘霸氣’, 0.019231105222624518),
(‘車身’, 0.011562041254648874),
(‘帥氣’, 0.010466043602329844),
(‘年輕’, 0.009713247431314121),
(‘耐看’, 0.005438103102823669),
(‘側面’, 0.005305290826161348),
(‘硬朗’, 0.0038887516195419613),
(‘優美’, 0.0029589904380173705),
(‘拉風’, 0.002908911717486192),
(‘擔當’, 0.0023775974040011207),
(‘年輕化’, 0.0018363016664206797),
(‘前衛’, 0.001832502305643267),
(‘顏控’, 0.0015342721148661927),
(‘美觀’, 0.0014017725126286868),
(‘外貌協會’, 0.0012673785507941234),
(‘始于’, 0.0012147432527814328),
(‘最喜歡的’, 0.0010902856328509434),
(‘大嘴’, 0.0010611885609235778),
(‘非常時尚’, 0.0009028912355990731),
(‘時尚運動’, 0.0008869927507607518),
(‘霸氣十足’, 0.0008189071364794647),
(‘霸氣側漏’, 0.0008159337276194864),
(‘我很喜歡’, 0.0007621695922389888),
(‘高大’, 0.0007571559888997631),
(‘征服’, 0.0007147440291617015),
(‘很喜歡’, 0.0006925125995887599),
(‘運動時尚’, 0.0006689225076177874),
(‘耐看型’, 0.0005580945500139648),
(‘正義’, 0.0005483286604124153),
(‘威武霸氣’, 0.0005316584992590537),
(‘改款’, 0.0005285499612510017),
(‘小巧’, 0.0005192749777102133)]
再看看整體的效果:
topics = topic_model.get_topics(n_words=30)for topic_n,topic in enumerate(topics):
words,mis = zip(*topic)
topic_str = str(topic_n)+’: ‘+’,’.join(words)
print(topic_str)
0: 油耗,省油,平均,市區,百公里,綜合,經濟,上下班,磨合期,接受,油價,一公里,堵車,百公里油耗,驚喜,省錢,最低,節省,油錢,毛錢,費油,七個,油表,擁堵,國道,下降,成本,想象,郊區,預期
1: 外觀,顏值,外形,時尚,前臉,線條,造型,外觀設計,流暢,動感,運動感,審美,流線型,流線,修長,大氣,漂亮,好看,霸氣,車身,帥氣,年輕,耐看,側面,硬朗,優美,拉風,擔當,年輕化,前衛
2: 隔音,噪音,胎噪,噪音控制,效果,聽不到,風噪,安靜,降噪,關上,很安靜,聽不見,隔絕,兩個世界,外界,窗戶,雜音,車外,靜謐,nvh,車隔音,隔音棉,抑制,什么聲音,密封,噪聲,開窗,超棒,地步,靜音性
3: 空間,擁擠,座位,后排,寬敞,后備箱,乘坐,內部,儲物,車內,前排,腿部,身高,超大,頭部,夠用,軸距,二郎腿,充足,利用率,壓抑,寬松,寬裕,三個人,個子,充裕,成年人,拉貨,前后排,綽綽有余
4: 代步,問題,生活,用車,容易,天氣,工具,平常,不好,享受,下雨,下班,車里,車真,過車,gl8,回老家,跑跑,外面,不多,放松,上車,沒出,毛病,起碼,沒事,下車,開開,外出,第二天
5: 滿意,車子,喜歡,車最,適合,家用,就是他,部分,類型,面子,和動力,家庭,莫過于,最最,探界者,需求,我喜歡的,三點,卡羅拉,說到,對我來說,說到最,喜歡的,商務,無非,普拉多,女生,霸道,女孩子,比較適合
6: 座椅,舒服,音響,放倒,調節,舒適,包裹,皮質,bose,視野,包裹性,開闊,地板,真皮,音質,位置,中央,舒適度,音樂,柔軟,坐上,玻璃,長途,腰部,純平,支撐,一鍵,主駕駛,坐姿,扶手
7: 吸引,符合,顏色,紅色,年輕人,白色,第一眼,回頭率,魂動,氣質,犀利,黑色,深深,個性,不失,低調,外表,張揚,穩重,車漆,騷氣,優雅,眼看,眼球,看臉,美式,轎跑,大街,口味,獨特
8: 非常,不錯,同級,優勢,啟辰,無論是,d60,空間表現,總體,優點,別車,一體,水平,感覺特別,真心,配合,均勻,體現,整個車,稍微,值得一提的,提升,空間感覺,人馬,發揮,程度,實用性,缺點,車做,組合
9: 價格,性價比,價位,優惠,車型,品牌,級別,合資,便宜,實惠,合資車,國產車,預算,國產,同等,力度,合適,大眾,邁銳寶,中華,看過,銷售,十萬,落地,劃算,哈弗,值得,裸車,車中,親民
10: 動力,發動機,超車,加速,變速箱,油門,強勁,起步,提速,推背感,渦輪,平順,充沛,換擋,速度,給油,增壓,高速,輸出,隨叫隨到,排量,很快,聲音,一腳,頓挫感,舍得,馬力,自然吸氣,頓挫,自吸
11: led,格柵,進氣,大燈,晚上,尾燈,日間行車燈,車燈,鍍鉻,日行燈,炯炯有神,前大燈,轉向燈,遠近,亮度,燈光,視覺,眼睛,車頂,流水,有神,大眼睛,裝飾,協調,點亮,夜間,光源,眼大,白天,沖擊力
12: 操控,底盤,駕駛,精準,轉向,扎實,靈活,轉彎,輕松,行駛,性能,方向,上手,操控性,樂趣,指向,路面,調教,懸掛,通過性,顛簸,輕盈,平穩,過程,地盤,虛位,體驗,調校,路況,彎道
13: 功能,配置,自動,巡航,實用,倒車影像,鑰匙,全景,后視鏡,電動,導航,胎壓監測,天窗,空調,一鍵啟動,大屏,影像,齊全,中控,自適應,加熱,啟動,雷達,啟停,定速,倒車,定速巡航,多功能,手機,語音
14: 內飾,設計,做工,風格,用料,精致,整體,豪華,車頭,上檔次,十足,簡潔,科技感,大方,腰線,給人,高端,飽滿,中控臺,尾部,搭配,車尾,檔次,簡約,細節,整車,輪轂,氣息,充滿,圓潤
15: 馬自達,阿特茲,寶馬,創馳藍天,藍天,凱美瑞,新款,老款,跑車,奧迪,奔馳,凱迪拉克,君威,有點,昂克賽拉,傳統,完美,全新,日系車,cx5,東瀛,形容,雅閣,設計師,設計理念,驚艷,改變,鋼絲,稱號,打動
16: 朋友,選擇,時間,suv,試駕,當初,提車,選車,老婆,一眼,回家,家里,cx4,一段,身邊,看中,轎車,大家,推薦,網上,同事,打算,差不多,糾結,相中,媳婦,看上,上班,好多,印象
17: 孩子,一家人,出行,自駕游,接送,小孩,出門,家人,周末,出去玩,老人,出游,游玩,全家,行李,旅行,大人,旅游,出去旅游,睡覺,安全座椅,物品,寶寶,排空,行李箱,休息,家里人,購物,排放,搬家
18: #NUMBER,公里,擔心,不用,顯示,抬頭,開車,以內,時速,寶駿,體重,來回,雙離合,手自一體,小時,實際,愛信,加油,保持,里程,數據,一千,全程,一萬,車速,正常,死角,老家,一趟,自動擋
19: 系統,方向盤,斑馬,手感,儀表盤,液晶,安全性,操作,保養,電子,新手,質量,剎車,保障,放心,材料,省心,清晰,行車,按鍵,儀表,費用,保證,后期,耐用,助力,品質,軟質,碰撞,材質
(4)揭示不同作者寫作主題分布的主題模型 — Author-Topic Model
ATM模型(author-topic model)也是“概率主題模型”家族的一員,是LDA主題模型(Latent Dirichlet Allocation )的拓展,它能對某個語料庫中作者的寫作主題進行分析,找出某個作家的寫作主題傾向,以及找到具有同樣寫作傾向的作家,它是一種新穎的主題探索方式。
筆者之前分析過“人人都是產品經理”上作家的寫作主題,分析某些牛X作家喜歡寫哪方面的文章(比如“產品運營”、“數據分析”、“新媒體運營”等)寫作了啥,主題相似度的作者有哪些。
首先,先從文本中“析出”若干主題,經過探索,10個主題的區分度正好。根據各個主題下的主題詞特征,筆者將這10個主題歸納為 :“行業動態”、“電商運營”、“商業模式”、“產品運營”、“社交媒體”、“互金產品”、“數據運營”、“用戶研究”、“產品設計”和“新媒體運營”。
<img src=“https://pic3.zhimg.com/50/v2-8213085ef8a061f83608bb96ae5a11a9_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“814” data-rawheight=“585” data-default-watermark-src=“https://pic4.zhimg.com/50/v2-6ece5f22d2927fe74d654f6f470ff230_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“814” data-original=“https://pic2.zhimg.com/v2-8213085ef8a061f83608bb96ae5a11a9_r.jpg?source=1940ef5c”/>所有作者涉及的主題同時,在數據處理的過程中,模型建立了作者(author)、主題(topic)及文檔(document)之間的映射關聯關系,以dict的形式保存數據。
<img src=“https://pic4.zhimg.com/50/v2-f97caf91659d1eacc6de32eb03cd8fe7_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“762” data-rawheight=“340” data-default-watermark-src=“https://picb.zhimg.com/50/v2-56118d0c0938f3319b9e3006b7def58e_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“762” data-original=“https://pic1.zhimg.com/v2-f97caf91659d1eacc6de32eb03cd8fe7_r.jpg?source=1940ef5c”/>建立每個作者的文章隸屬關系字典(每個數值ID代表一篇文章) <img src=“https://pic2.zhimg.com/50/v2-eff26ea14b1848586d51b1d59b9cbb04_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“577” data-rawheight=“254” data-default-watermark-src=“https://pic2.zhimg.com/50/v2-de2e9a7e683f9b6a843be1ae88d47b6b_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“577” data-original=“https://pic4.zhimg.com/v2-eff26ea14b1848586d51b1d59b9cbb04_r.jpg?source=1940ef5c”/>鄙喵的寫作主題分布 <img src=“https://pic3.zhimg.com/50/v2-d559927c22c2a7ab73daeb22ff8906e0_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“658” data-rawheight=“233” data-default-watermark-src=“https://pic1.zhimg.com/50/v2-933d30f7186b17d00f8c1c9ac0047636_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“658” data-original=“https://pic4.zhimg.com/v2-d559927c22c2a7ab73daeb22ff8906e0_r.jpg?source=1940ef5c”/>鄙喵寫過的若干文章(局部) <img src=“https://pic4.zhimg.com/50/v2-aa804de324ab7d26f742f10b9ed4a762_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“880” data-rawheight=“293” data-default-watermark-src=“https://pic1.zhimg.com/50/v2-2339cb06ecc02c0159de7311538cc070_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“880” data-original=“https://pic3.zhimg.com/v2-aa804de324ab7d26f742f10b9ed4a762_r.jpg?source=1940ef5c”/>運營大神張亮的寫作主題分布 <img src=“https://pic3.zhimg.com/50/v2-3f4ebfb0076d6b3b258af24ed5801d44_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“398” data-rawheight=“392” data-default-watermark-src=“https://pic3.zhimg.com/50/v2-9e621157f641e16f19d23e74a38525b1_hd.jpg?source=1940ef5c” class=“content_image” width=“398”/>跟張亮大神寫作主題類似的作家(5)分析話題熱點變遷的主題模型 — Dynamic Topic Models
蘊含時間因素的主題,盡管它包含的關鍵詞會隨著時間的變化而產生相應的變化,但它如構成要素不斷更新換代的“忒修斯之船(The Ship of Theseus)”一般,即使同一主題下的開端和末尾中的主題詞沒有一個是相同的,但還是原先的主題,保留有相同的語境。(By having a time-base delement to topics, context is preserved while key-words may change.)
針對某個話題隨時間的變遷情況(This implements topics that change over time)。鄙喵運用的模型是DTM模型 (Dynamic Topic Models ),它是“概率主題模型”家族的一員,用于對語料庫中主題演變進行建模。
還是針對人人都是產品經理上的文章數據,先從“產品運營&數據分析”中“解析”出如下6個子話題,它們是“運營”、“商業模式”、“流量運營&數據分析”、“品牌營銷&數據分析”、“電商運營”和“內容運營”,如下表所示:
<img src=“https://pic4.zhimg.com/50/v2-fe9cd464aa5930cdd8c2d170f7bc17ce_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“952” data-rawheight=“481” data-default-watermark-src=“https://pic4.zhimg.com/50/v2-dc852a8741df9f7e597b896bc43d7c3a_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“952” data-original=“https://pic4.zhimg.com/v2-fe9cd464aa5930cdd8c2d170f7bc17ce_r.jpg?source=1940ef5c”/>從人人都是產品經理文本數據中解析出的若干主題針對Topic2,也就是“流量運營&數據分析”在2012.05~2017.07間的話題變遷情況感興趣,于是將這6年間出現的主題詞重新整合,制成下面的熱力圖:
<img src=“https://pic1.zhimg.com/50/v2-5765c9581d54f99e6115e566367fb8c6_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“772” data-rawheight=“871” data-default-watermark-src=“https://pic1.zhimg.com/50/v2-60ce3512652d0677fe1ef3a790a66358_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“772” data-original=“https://pic4.zhimg.com/v2-5765c9581d54f99e6115e566367fb8c6_r.jpg?source=1940ef5c”/>Topic2(“流量運營&amp;amp;amp;amp;amp;amp;數據分析”)在2012.05~2017.07間的話題變遷情況上圖中縱軸是主題詞,橫軸是年份,顏色由淺入深代表數值的由小到大。從中可以明顯的看出,“流量運營&數據分析”子話題下的“數據”、“數據分析”、“運營”和“業務”在該話題中始終處于“核心地位”,保持較高且穩定的word_prob值。而“渠道”、“游戲”、“互金”在近3年的word_prob值有了較大的提升,說明社區的作者在近期比較關注這3個主題詞所代表的領域,間接表明它們在互聯網中的話題熱度呈現上升趨勢。
(6)與詞嵌入融合的主題模型 — Embedded Topic Model
主題模型的主要功能之一就在于分析大量文檔以學習其中有意義的詞匯模式和語義內涵。 但現有的主題模型都存在一個問題 — 在處理巨量且存在許多長尾詞、低頻詞的情況下,現有的很多主題模型都無法學習到具有可解釋性、便于人們理解的主題。 為此,嵌入式主題模型(ETM,Embedded Topic Model )應運而生,這是一種將傳統主題模型與詞嵌入(Word Embeddings)“嫁接”在一起的文檔生成模型。 特別地,它使用分類分布(Categorical Distribution)對每個詞匯進行建模,其自然參數是詞嵌入及其嵌入的指定主題(Assigned Topic)之間的內積。
<img src=“https://pic2.zhimg.com/50/v2-526929e3608e89f638e665e3b899f082_hd.jpg?source=1940ef5c” data-size=“normal” data-rawwidth=“785” data-rawheight=“684” data-default-watermark-src=“https://pic3.zhimg.com/50/v2-982b8ad87069f5549ab9bedb75b37bbf_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“785” data-original=“https://pic2.zhimg.com/v2-526929e3608e89f638e665e3b899f082_r.jpg?source=1940ef5c”/>“紐約時報”語料庫的180萬篇文章中來自不同文檔模型的七個最常用主題的前五個單詞,詞匯量為212,237,K = 300(個主題)由此,即使是在用于海量詞匯表且存在稀有詞、長尾詞的情況下,ETM仍然能發現可解釋的主題。 在相關作者的論文中,發明者還表示它在主題質量和預測性能方面優于現有的主題模型,例如LDA。
(7)理解自然語言的利器—LDA2VEC
lda2vec模型試圖將word2vec和LDA中的最佳部分混合到一個框架中。 word2vec在捕捉詞匯之間的詞法關系方面能力很強,但是生成的向量在很大程度上無法解釋,并且很難表征文檔。 而另一方面,LDA可以被很好地被理解,但是不能像word2vec這樣對本局部詞匯關系進行建模。 此時LDA2VEC應運而生,該模型可以構建詞匯和文檔主題,使其可解釋。
與LDA相比,lda2vec還包含更多的上下文語境和語義特征。 LDA表明詞匯是由文檔向量所生成的; 但是文本數據中可能會有各種影響主題的“邊信息”。 例如,某個客戶在某個特定時間、某個特定區域中寫了關于某個特定item ID的評論。 在這種情況下,lda2vec會提供所有的item(例如,從襯衫中分離牛仔褲),時間(冬季與夏季),地區(沙漠與沿海)和客戶(運動與職業裝)的主題。
<img src=“https://pic1.zhimg.com/50/v2-2a2ffa93ae17fd1781c5395b9cd4c783_hd.jpg?source=1940ef5c” data-caption="" data-size=“normal” data-rawwidth=“899” data-rawheight=“920” data-default-watermark-src=“https://pic2.zhimg.com/50/v2-04a18e1a59626e5568a9ecc263e0c210_hd.jpg?source=1940ef5c” class=“origin_image zh-lightbox-thumb” width=“899” data-original=“https://pic1.zhimg.com/v2-2a2ffa93ae17fd1781c5395b9cd4c783_r.jpg?source=1940ef5c”/>(8)Topically-Driven-Language-Model
本文作者Jey Han Lau, Timothy Baldwin and Trevor Cohn (2017))創造性的將LDA主題模型和語言模型融合在了一起,可以通過語言模型生成的語句來解釋主題,將其中的語言模型換成時下流行且強大的GPT2,并結合PPLM(Plug and Play Language Models: a Simple Approach to Controlled Text Generation)絕對是大殺器,但是速度賊慢。。。。
感興趣的可以去讀原文《Topically Driven Neural Language Model》
下面是關于新冠肺炎疫情的若干新聞的模型分析結果片段:
Epoch =12001 TRAIN 77864/77864: tm ppl = 46573.947; lm ppl = 507.707; word/sec = 9449.5\nVALID 77864/77864: tm ppl = 40674.441; lm ppl = 350.481; word/sec = 16706.0\n Topics ====== Topic 0 [ 10.51 ] : [培訓_機構, 上課, 課程, 家長, 培訓行業, 授課, 高三, 寒暑假, 招生, 教育培訓, 教培, 開課, 退費, 轉線, 留學, 面試, 教師, 輔導機構, 課時費, 推遲_開學]
Topic 1 [ 8.38 ] :[婚禮, 婚慶, 攝影師, 攝影, 下崗, 物料, 新人, 工作室, 拍攝, 行業_從業者, 布置, 取消_婚禮, 攝像, 主持人, 婚禮_延期, 婚禮_取消, 婚紗, 婚期, 改期, 道具]
Topic 2 [ 7.81 ] : [gdp, 第三產業, 億元, 一季度, 增速, 第二產業, 百分點, gdp_增速, 中國_gdp, 增長率, 萬億元, 同比, 第一產業, 經濟_增速, 高于, gdp_增長, 一季度]
Topic 3 [ 10.70 ] :[超級傳播者, 廣東, 擴散, 超級, 預防, 傳染性, 耽誤, 傳人, 癥狀, 發病, 病毒傳播, 宿主, 證據, 不幸, 社交, 毒王, 已有, 院士, 傳染給, 傳播者, 輕微, 定義]
Topic 4 [ 10.75 ] : [世界衛生組織, 公共, 后果, who, 觀察, 列為_疫區, 證明, 大國, 認定, 警惕, 事后, 列入, 人群_密集, 交通工具, 突發事件, 視為_疫區, 負面, 各國, 定性]
Topic 5 [ 6.87 ] : [草莓, 一斤, 農民, 大棚, 果農, 成熟, 夏天, 路邊, 產地, 草莓_大棚, 請假, 丹東, 柿子, 草莓_價格, 遼寧, 能賣, 季節, 地里, 辛辛苦苦, 忙活, 大棚_草莓]
Topic 6 [ 10.56 ] : [票房, 春節_票房, 大年初一_票房, 影片, 收獲, 撤檔, 唐探, 電影票, 姜子牙, 暑期, 奪冠, 熊出沒, 粉絲, 熱門, 觀眾, 退出, 老實, 囧媽, 院線, 系列, 徐崢]
Topic 7 [ 10.26 ] : [戰爭, 香港, 恢復正常, 到來, 提醒, 病情, 蔓延, 教育局, 態勢, 終止, 教育部, 預案, 各項, 社會秩序, 一律, 課外輔導, 認知, 中東, 機構_停課, 摧毀_房價]
Topic 8 [ 8.71 ] : [高考, 大學, 教育_行業, 注定, 分數線, 畢業, 高校, 就業, 春季, 考研, 考試, 春招, 畢業生, 合適, 延遲_開學, 應屆, 秋招, 應屆生, 考生, 復試, 申請, 難度]
…
Random Generated Sentences ========================== Temperature = 1.2
Topic 8 : 新冠肺疫情逐步好轉,許多省份提出將優先安排初3高三返校
Topic 4 : WHO:無證據顯示病毒會在夏季消失,歐洲疫情擴散
Topic 3 : 國際在線,外媒分析:病毒“超級傳播者”對疫情影響為何如此重大?
Topic 6 : 多國家紛紛叫停電影,海外疫情影響不容樂觀
Topic 7 :
…
PS:主題模型就是一把大殺器,用的好不好全看個人,跟它自身沒啥關系~
我之前寫的幾篇文章,上面的部分示例出自這里:
蘇格蘭折耳喵:文本挖掘從小白到精通(三)—主題模型和文本數據轉換 蘇格蘭折耳喵:文本挖掘從小白到精通(四)—主題模型的主題數確定和可視化 蘇格蘭折耳喵:文本挖掘從小白到精通(十)— 不需設定聚類數的Single-pass 蘇格蘭折耳喵:【Social listening實操】作為一個合格的“增長黑客”,你還得重視外部數據的分析!【CODE】LDA2vec : 當LDA遇上word2vec
以上。
總結
以上是生活随笔為你收集整理的主题模型综述:短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 政考网:公务员备考需要多久?
- 下一篇: iOS 送审浅谈:1.4.1、2.1、2