日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

概率潜在语义分析(pLSA) 相关知识

發布時間:2023/12/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 概率潜在语义分析(pLSA) 相关知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 生成模型
  • 共現模型
  • 模型性質
  • 共現模型表示
  • PLSA算法

概率潛在語義分析(PLSA)是一種利用概率生成模型對文本集合進行話題分析的無監督方法。 PLSA 模型假設每個文本由一個話題分布決定,每個話題由一個單詞分布決定。該模型中的話題是不可直接觀測到的,是潛在的隱變量。整個模型表示文本生成話題,話題生成單詞,從而得到單詞—文本共現數據的過程。

生成模型

假設有M個單詞集合W={w1,w2.…,wM}W=\{w_1,w_2.\ldots,w_M\}W={w1?,w2?.,wM?},N個文本集合D={d1,d2,…,dN}D=\{d_1,d_2,\ldots,d_N\}D={d1?,d2?,,dN?},K個話題集合Z={z1,z2,…,zK}Z=\{z_1,z_2,\ldots,z_K\}Z={z1?,z2?,,zK?}。假設用概率分布P(d)P(d)P(d)表示生成文本ddd 的概率,P(z∣d)P(z|d)P(zd) 表示文本ddd生成話題zzz 的概率,P(w∣z)P(w|z)P(wz) 表示話題zzz 生成單詞www的概率。

生成模型步驟如下:

(1)依據概率分布P(d)P(d)P(d) ,從文本集合中隨機選取一個文本ddd,共生成NNN個文本。對生成的N個文本都執行下面的操作:

(2)在給定文本 ddd 的條件下,依據條件概率分布P(z∣d)P(z|d)P(zd) ,從話題集合中隨機選取一個話題zzz,共生成LLL個話題。對生成的LLL個話題都執行下面的操作:

(3)在給定話題zzz的條件下,依據條件概率分布P(w∣z)P(w|z)P(wz) ,從單詞集合中隨機選取一個單詞www

從數據生成的過程可以推出,單詞—文本共現數據TTT的生成概率為所有的單詞—文本對(w,d)(w,d)(w,d) 的生成概率的乘積:
P(T)=∏w,dP(w,d)n(w,d)P(T) = \prod_{w,d} P(w,d)^{n(w,d)} P(T)=w,d?P(w,d)n(w,d)
其中,n(w,d)n(w,d)n(w,d) 表示(w,d)(w,d)(w,d) 出現的次數,而(w,d)(w,d)(w,d) 的生成概率如下:
P(w,d)=P(d)P(w∣d)=P(d)∑zP(w,z∣d)=P(d)∑zP(z∣d)P(w∣z)\begin{aligned} P(w,d) & =P(d)P(w|d) \\ &= P(d)\sum_{z} P(w,z|d) \\ & = P(d)\sum_{z} P(z|d)P(w|z) \end{aligned} P(w,d)?=P(d)P(wd)=P(d)z?P(w,zd)=P(d)z?P(zd)P(wz)?
這就是生成模型的定義。生成模型屬于概覽有向圖模型,可以用下圖表示:

共現模型

除了生成模型,還可以定義與之等價的共現模型,共現模型假設在給定話題zzz的前提下,單詞www和文本ddd 是條件獨立的,即:
P(w,d∣z)=P(w∣z)P(d∣z)P(w,d|z) = P(w|z)P(d|z) P(w,dz)=P(wz)P(dz)
于是單詞—文本對(w,d)(w,d)(w,d) 的生成概率為:
P(w,d)=∑z∈ZP(z)P(w∣z)P(d∣z)P(w,d) = \sum_{z\in Z} P(z)P(w|z)P(d|z) P(w,d)=zZ?P(z)P(wz)P(dz)
下圖是共現模型示意圖,其中zzz是隱變量:

生成模型與共現模型具有不同性質,生成模型描述了文本—單詞共現數據的生成過程,共現模型描述文本—單詞共現數據所擁有的模式。

模型性質

如果直接定義單詞與文本的共現概率P(w,d)P(w,d)P(w,d) ,模型的參數個數是O(M?N)O(M\cdot N)O(M?N),其中M表示單詞數,N表示文本數。而PLSA的生成模型或者共現模型的參數個數都是O(M?K+N?K)O(M\cdot K+ N\cdot K)O(M?K+N?K),其中K是話題數,遠小于M,可以極大的減少參數個數。如下圖所示:

共現模型表示

前面提到共現模型為:
P(w,d)=∑z∈ZP(z)P(w∣z)P(d∣z)P(w,d) = \sum_{z\in Z} P(z)P(w|z)P(d|z) P(w,d)=zZ?P(z)P(wz)P(dz)
也可以表示為三個矩陣的乘積的形式:
X′=U′Σ′V′TX′=[P(w,d)]M×NU′=[P(w∣z)]M×KΣ′=[P(z)]K×KV′=[P(d∣z)]N×K\begin{aligned} &X' = U'\Sigma' V'^T \\ & X' = [P(w,d)]_{M\times N} \\ & U' = [P(w|z)]_{M\times K}\\ & \Sigma' = [P(z)]_{K\times K}\\ & V' = [P(d|z)]_{N\times K}\\ \end{aligned} ?X=UΣVTX=[P(w,d)]M×N?U=[P(wz)]M×K?Σ=[P(z)]K×K?V=[P(dz)]N×K??
其中,矩陣U′,V′U',V'UV是非負的、規范的,表示條件概率分布。

PLSA算法

PLSA是含有隱變量的模型,通常使用EM算法完成參數的優化。

假設單詞集合W={w1,w2.…,wM}W=\{w_1,w_2.\ldots,w_M\}W={w1?,w2?.,wM?},文本集合D={d1,d2,…,dN}D=\{d_1,d_2,\ldots,d_N\}D={d1?,d2?,,dN?},話題集合Z={z1,z2,…,zK}Z=\{z_1,z_2,\ldots,z_K\}Z={z1?,z2?,,zK?}。給定單詞—文本共現數據T={n(wi,dj)},i=1,2,…,M;j=1,2,…,NT=\{n(w_i,d_j)\},i=1,2,\ldots,M; j=1,2,\ldots,NT={n(wi?,dj?)},i=1,2,,M;j=1,2,,N,目標是估計PLSA(生成模型)的參數,使用極大似然估計,對數似然函數是:
L(θ)=log?∏i=1M∏j=1NP(dj,wi)n(dj,wi)=∑iM∑jNn(dj,wi)log?P(dj,wi)=∑iM∑jNn(dj,wi)log?[∑k=1KP(wi∣zk)P(zk∣dj)]\begin{aligned}L(\theta)&=\log \prod_{i=1}^M\prod_{j=1}^N P(d_j,w_i)^{n(d_j,w_i)}\\ &=\sum_i^M\sum_j^N n(d_j,w_i)\log P(d_j,w_i)\\ &=\sum_i^M\sum_j^N n(d_j,w_i)\log[\sum_{k=1}^K P(w_i|z_k)P(z_k|d_j)]\\ \end{aligned} L(θ)?=logi=1M?j=1N?P(dj?,wi?)n(dj?,wi?)=iM?jN?n(dj?,wi?)logP(dj?,wi?)=iM?jN?n(dj?,wi?)log[k=1K?P(wi?zk?)P(zk?dj?)]?
模型含有隱變量,對數似然函數的優化方法無法用解析方法求解,使用EM算法進行求解。假設有M個單詞集合W={w1,w2.…,wM}W=\{w_1,w_2.\ldots,w_M\}W={w1?,w2?.,wM?},N個文本集合D={d1,d2,…,dN}D=\{d_1,d_2,\ldots,d_N\}D={d1?,d2?,,dN?},K個話題集合Z={z1,z2,…,zK}Z=\{z_1,z_2,\ldots,z_K\}Z={z1?,z2?,,zK?},則具體算法如下:

輸入:單詞—文本共現數據T={n(wi,dj)},i=1,2,…,M;j=1,2,…,NT=\{n(w_i,d_j)\},i=1,2,\ldots,M; j=1,2,\ldots,NT={n(wi?,dj?)},i=1,2,,M;j=1,2,,N

輸出:P(wi∣zk),P(zk∣dj)P(w_i|z_k),P(z_k|d_j)P(wi?zk?),P(zk?dj?)

(1)設置參數P(wi∣zk),P(zk∣dj)P(w_i|z_k),P(z_k|d_j)P(wi?zk?),P(zk?dj?)的初始值。

(2)迭代執行E步,M步,直到收斂為止:

? E步:
P(zk∣wi,dj)=P(wi∣zk)P(zk∣dj)∑k=1KP(wi∣zk)P(zk∣dj)P(z_k|w_i,d_j) = \frac{P(w_i|z_k)P(z_k|d_j)}{\sum_{k=1}^K P(w_i|z_k)P(z_k|d_j)} P(zk?wi?,dj?)=k=1K?P(wi?zk?)P(zk?dj?)P(wi?zk?)P(zk?dj?)?
? M步:
P(wi∣zk)=∑j=1Nn(wi,dj)P(zk∣wi,dj)∑i=1M∑j=1Nn(wi,dj)P(zk∣wi,dj)P(w_i|z_k) = \frac{\sum_{j=1}^N n(w_i,d_j)P(z_k|w_i,d_j)}{\sum_{i=1}^M\sum_{j=1}^N n(w_i,d_j)P(z_k|w_i,d_j)} P(wi?zk?)=i=1M?j=1N?n(wi?,dj?)P(zk?wi?,dj?)j=1N?n(wi?,dj?)P(zk?wi?,dj?)?

P(zk∣dj)=∑i=1Mn(wi,dj)P(zk∣wi,dj)n(dj)P(z_k|d_j) = \frac{\sum_{i=1}^M n(w_i,d_j)P(z_k|w_i,d_j)}{n(d_j)} P(zk?dj?)=n(dj?)i=1M?n(wi?,dj?)P(zk?wi?,dj?)?
參考文章:

《統計學習方法 第二版》

總結

以上是生活随笔為你收集整理的概率潜在语义分析(pLSA) 相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。