國
立
交
通
大
學
資訊科學與工程研究所
碩
士
論
文
基於中國餐廳過程之在線學習方法
Online Chinese Restaurant Process
研 究 生:蔡宗勳
指導教授:李嘉晃 教授 、 劉建良 博士
基於中國餐廳過程之在線學習方法
Online Chinese Restaurant Process
研 究 生:蔡宗勳 Student:Tsung-Hsun Tsai
指導教授:李嘉晃 Advisor:Prof. Chia-Hoang Lee
共同指導:劉建良 Co-Advisor:Dr. Chien-Liang Liu
國 立 交 通 大 學
資 訊 科 學 與 工 程 研 究 所
碩 士 論 文
A Thesis
Submitted to Institute of Computer Science and Engineering
College of Computer Science
National Chiao Tung University
in partial Fulfillment of the Requirements
for the Degree of
Master
in
Computer Science
September 2013
Hsinchu, Taiwan, Republic of China
基於中國餐廳過程之在線學習方法
學生:蔡宗勳 指導教授:李 嘉 晃 教授
共同指導:劉 建 良 博士
國立交通大學
資訊科學與工程研究所碩士班
摘 要
目前各領域的資料已經漸漸成長為巨量資料,許多傳統的機器學習方法已經 無法處理這些巨量資料。在線學習方法具備動態模型更新特性且一次只需將一筆 資料載入記憶體做處理,可即時處理大量資料,因此為解決巨量資料的一個方 法。此外,處理巨量資料時,要在訓練模型之前就事先決定參數是一件困難的事, 往往只能透過專家經驗或實驗測試以得到模型參數;貝氏無母數模型提供了一個 使群數參數能夠依資料特性自行決定的方法,適合用於巨量資料上。 中國餐廳過程早期是機率論上用來描述空間中一群切割之分佈的隨機過 程,若將其對應至從 Dirichlet Process 取樣的一個過程,則可以從一個分佈取樣 出多組參數,每一組參數又分別代表一個分佈。本論文提出的方法為將在線學習 的概念擴展於中國餐廳過程上,並利用在線學習過程中的每一筆訓練資料來影響 機率模型中參數的估計,進而建立出整個模型。在實驗中,當資料量大時,我們 提出的 Online CRP 不僅在分類的效能上能夠達到監督式學習方法的標準,且在 執行時間也比很多方法快速,驗證本方法可準確並有效率的處理巨量資料問題。Online Chinese Restaurant Process
Student:Tsung-Hsun Tsai Advisor:Prof. Chia-Hoang Lee
Co-Advisor : Dr. Chien-Liang Liu
Institute of Computer Science and Engineering
College of Computer Science
National Chiao Tung University
Abstract
The rise of big data provides an opportunity for the enterprises to use data analytics to gain competitive advantage, but it also brings challenges to process, manage and analyze the large data sets. One typical challenge is to process large volumes of streaming data in real time. Online machine learning allows the model to learn one instance at a time, in which the model is updated according to the prediction result and the true label of the instance. Compared with batch machine learning algorithms, online machine learning is more appropriate to process streaming data, and it can adjust learning model as receiving more new unknown data. Besides online processing, parameter selection is an important task in machine learning in dealing with model selection, but the task is generally achieved by heuristic rules or cross-validation technique with a validation set. In big data process, parameter should be adapted as with data rather than a fixed one. Nonparametric Bayesian model provides a means for the model to adapt parameters with the data. This study proposes an online Chinese Restaurant Process algorithm, which extended from Chinese Restaurant Process (CRP). The proposed algorithm is an online and nonparametric parameter algorithm, so it can process streaming data efficiently and the parameters are adapted with the data. Compared with CRP, the proposed algorithm is an online algorithm, in which we use regret theory to design a new prior knowledge and likelihood function basedonthe consistence between the real label information and prediction result. In the experiments, the proposed algorithm works well in large data set, and generally outperform the other online machine learning algorithms.
誌謝
首先,感謝指導教授李嘉晃老師以及共同指導教授劉建良博士對我的悉心指導, 才能有今日的成果。接著要感謝兩位辛苦的口試委員,許尚華教授、周澤民博士,謝 謝口委們的建議,讓本論文的內容能夠更加完整。 同時,我亦感謝這兩年來陪伴在我身邊的實驗室同學們、學長、學姊以及學弟。 最後,我要感謝我的爸爸、媽媽、哥哥,感謝你們對我的愛護和包容。謝謝你 們在背後默默的支持,使我能夠順利的完成碩士學位。 心中有太多的感謝不知道如何表達,在此僅以本篇論文表示我對你們最誠摯的 感謝,並祝福你們身體健康、萬事如意,謝謝。 蔡宗勳 謹誌 資訊科學與工程研究所 智慧型系統實驗室 中華民國一百零二年九月目 錄
摘 要... i Abstract ... ii 目 錄... iv 圖目錄... vi 表目錄... vii 第一章 緒論 ... 1 1.1 研究動機... 1 1.2 研究目的... 3 1.3 論文架構... 3 第二章 相關研究 ... 4 2.1 Online Learning ... 4 2.2 貝氏定理與貝氏網路... 6 2.2.1 貝氏定理... 6 2.2.2 貝氏網路... 7 2.3 Dirichlet Process ... 8 2.3.1 Dirichlet Distribution ... 8 2.3.2 Dirichlet Process ... 92.3.3 Dirichlet Process Mixture Model ... 12
2.4 Chinese Restaurant Process ... 15
2.4.1 符號定義... 15
2.4.2 中國餐廳過程... 15
2.4.3 Graphical Model and Gibbs Sampling ... 19
2.4.4 Collapsed Gibbs Sampling ... 20
2.5 Distance Dependent Chinese Restaurant Process ... 22
2.6 Topic Model ... 23
2.6.1 Latent Dirichlet Allocation ... 23
2.6.2 Hierarchical Latent Dirichlet Allocation ... 24
第三章 Online Chinese Restaurant Process ... 27
3.1 系統架構... 28
3.2 符號定義... 29
3.3 Online CRP ... 30
3.4 Graphical Model and Sampling ... 34
3.5 Collapsed Sampling ... 36
3.6 演算法... 37
3.7 演算法分析... 39
3.8.1 根據事後機率決定參數 α... 40 3.8.2 利用 Online Learning 特性每回合決定參數 α... 41 第四章 實驗 ... 42 4.1 實驗資料集介紹... 44 4.2 實驗步驟... 46 4.2.1 前處理... 46 4.2.2 實驗方法... 46 4.3 效能評估方式... 47 4.3.1 F1 cluster evaluation ... 47 4.3.2 Error rate ... 48 4.3.3 Execution time ... 48 4.4 實驗結果... 49 4.5 實驗結果討論... 49 第五章 結論與未來展望 ... 55 5.1 研究總結... 55 5.2 未來展望... 55 參考文獻... 56
圖目錄
圖 2.2-1 :一個貝式網路圖例 ... 8
圖 2.3-1 :Finite Mixture Model ... 12
圖 2.3-2 : Dirichlet Process Mixture Model-Infinite Mixture Model 表示法... 13
圖 2.3-3 : DPMM - Pòlya’s urn 表示法 ... 14
圖 2.4-1 : CRP 情景(1) 示意圖: ... 16
圖 2.4-2 : CRP 情景(2) 示意圖: ... 18
圖 2.4-3 : Graphical Model: CRP Mixture Model ... 19
圖 2.4-4 : Collapsed Gibbs Sampling on CRP mixture model ... 21
圖 2.6-1 :LDA 模型 ... 23
圖 2.6-2 : nested Chinese Restaurant Process 示意圖 ... 25
圖 2.6-3 : hLDA graphical model ... 26
圖 3.1-1 :系統架構圖 ... 28
圖 3.3-1 : Online CRP 情景示意圖 ... 31
圖 3.4-1 : Graphical Model: Online CRP Mixture Model ... 34
圖 3.5-1 : Online CRP Mixture Model : collapsed sampling... 36
圖 4.5-1 :實驗結果:RCV1 資料集 ... 52
圖 4.5-2 :實驗結果:RCV1 資料集 ... 53
表目錄
表 1 : CRP 符號對應表 ... 15 表 2 : Online CRP 符號定義與對應表 ... 29 表 3 : Online CRP 與文章分類實驗之符號對應表 ... 42 表 4 : Wikipedia 資料集 ... 45 表 5: 實驗機器設備與環境 ... 46 表 6 : 20newsgroup 實驗結果 ... 49 表 7 : RCV 實驗結果 ... 49 表 8 : Wiki 實驗結果 ... 49 表 9 : 20newsgroup 資料集與 supervised 方法效能比較表 ... 50 表 10 : RCV1 資料集與 supervised 方法更新模型比較表 ... 51 表 11 :Wikipedia 資料集與 supervised 方法更新模型比較表 ... 51表 12: RCV 資料集:Online CRP 與使用 SGD trick 之 Online CRP 效能之 比較... 53
表 13:Wikipedia 資料集: Online CRP 與使用 SGD trick 之 Online CRP 效 能之比較... 53
第一章 緒論
1.1 研究動機
隨著資訊與科技的蓬勃發展,人們每天皆可在網路上得到相當多資訊,這些資 訊已經漸漸成長為巨量資料。要對龐大的資料集做處理、分析及分類,已經不能以 人工方式處理。目前許多領域都在研究如何使用機器以自動化方式處理龐大的資料,
例如機器學習﹙Machine Learning﹚、資訊擷取﹙Information Retrieval﹚、圖形
識別﹙Pattern Recognition﹚和自然語言處理﹙Natural Language Processing﹚ 等等,不管是對文字、圖片、聲音、或是影像,目的是希望透過電腦自動分析資料, 得到準確的結果,也藉此節省人工處理所需之成本與時間。因此如何讓使用者快速 和正確的得到所需資訊,是一項重要的研究議題。
近十幾年來,已經出現許多監督式學習(Supervised Learning)分類的方法, 如 SVM[1]、Ada-boost[2]、Random Forest[3]、Logistic Regression[4]和 Naïve Bayes[5]等等,這些方法需要足夠標記資料訓練分類器,同時必須將所有標記資料 一次載入機器做運算和處理;這些方法在有限運算能力的機器上,往往無法有效率 處理這些無限且快速膨脹的資訊。
在機器學習方法中,機率模型是用來從觀察到的資料建立學習模型。傳統的參 數模型(parametric model)使用固定且有限的參數,容易在模型(通常可用一些參 數來表示)與資料之間產生 overfitting 或 underfitting 的問題,例如 Kmeans[6]、 GMM[7]等方法,在分群或分類之前我們都必須先給定一個群數或類別數參數,但是 此參數要設為多少,是一項困難的問題;而設定此參數又是一件很重要的事,就算 我們先將訓練資料切一小塊交叉驗證測試資料集合來測試哪個參數較好,還是不容 易找到一個最佳的參數(不會造成 overfitting 或 underfitting 的參數)。 參數模型中,通常針對想要解的問題,只能觀察到部分資料,若想估計資料的 分佈,貝氏方法提供一個給定事前機率,計算這些資料產生分佈之事後機率的方法
來估計分佈參數。傳統上,在分佈上面的事前機率通常是從一定的範圍內給定,這 限定了推論(Inference)的範疇。無母數方法提升了事前機率所給定的空間,通常 是包含所有分佈的空間。因為所有分佈空間都已考慮在模型中,貝氏無母數 (Bayesian Non-parametric)方法可避免參數選擇(parameter selection)和挑選模 型(model selection)問題,而且參數可隨資料自行變動,可降低 overfitting 和 underfitting 的狀況,基於 Dirichlet Process[8] 的 Dirichlet Process Mixture Model 即是一個經典的貝氏無母數模型。中國餐廳過程(Chinese Restaurant Process)[9,10,11]描述了從一個 Dirichlet Process 中取樣出分佈參數的過程, 以中國餐廳過程建構出來之混合模型(Mixture Model)又可以稱為中國餐廳過程混 合模型(Chinese Restaurant Process Mixture Model)。
實務上,很多問題具備 Online 特性,在我們做完分析後給了預測,系統馬上 可以得到正確的標記資訊﹙Label Data﹚,例如線上廣告點擊率、每天的氣候預測、 streaming data 等等;傳統的監督式演算法,並不適合處理此類問題,因為監督 式演算法需批次處理訓練資料,若訓練資料持續累積,模型必須重新訓練,需要花 費大量時間,因此不適用於學習模型需持續根據資料作變動的應用上,甚至訓練資 料量也會漸漸增多,終將會超過單機系統負荷能力。而目前為了處理上述問題主要 有三個研究方向: (1) 演算法平行化:將原本單機的演算法改為可分散式平行處理的演算法, 例如將循序式演算法引入 MPI(Message Passing Interface)和 OpenMP 等概念。或 是像由 NVIDIA 所推出之 CUDA(Compute Unified Device Architecture),以及 Google 所提倡的 Map-Reduce[12]技術。
(2)隨機化:採用隨機的概念,針對原資料集一次隨機抽取一個來處理,直到 達到收斂條件,因此,最後真正處理的資料量通常會只是全部資料的一個子集合, 例如 Stochastic Gradient Descent[13]。
(3) 在線學習(online learning)[14]:一次只針對一筆資料來學習與調整 模型參數,例如 online perceptron[15]。
本論文提出的方法保留了中國餐廳過程混合模型(Chinese Restaurant Process Mixture Model)的無母數特性,也保留了 Online learning 的特性,可有效處理巨 量資料。
1.2 研究目的
傳統的許多監督式學習分類方法已經無法處理這些龐大的巨量資料,面臨的問 題除了隨著訓練資料持續的新增,必須持續更新模型參數外,要在訓練模型之前, 事先決定類別數參數也是一件困難的事,因此我們希望可以發展一個可以即時針對 新增的訓練資料更新模型參數外,同時使模型依資料特性自行決定類別數參數,且 能有效處理巨量資料的方法。 本論文的主要目的即是提出一個基於傳統中國餐廳過程(Chinese Restaurant Process)的全新 online learning algorithm。此演算法可以即時性的針對新增的 訓練資料來更新模型,更可以用來處理巨量資料。 此外,對於新到的訓練資料,若以往沒有此類別的訓練資料,運用無母數方 法的特性,本論文的演算法可以即時性的開拓訓練一個新類別並加入原來的模型, 使之更具彈性。1.3 論文架構
1. 緒論 2. 相關研究3. Online Chinese Restaurant Process 4. 實驗結果
5. 未來展望 6. 參考文獻
第二章 相關研究
2.1 Online Learning
在線學習(Online Learning)是一種機器學習方法,其特性是每次只針對一筆 資料即時地做預測分析,在取得該筆資料正確資訊後,利用預測的結果和正確的資 訊對模型做參數調整。 傳統監督式學習方法(Supervised Learning)以批次(Batch)方式訓練學習模 型,若加進新進資料調整模型(Model),必須連同舊的訓練資料以及新進的訓練資 料全部一起重新訓練出一個模型;因此當訓練資料數量越來越多,更新模型的時間 也會隨之越來越長;除此之外,監督式學習方法還存在著一個問題,當訓練資料達 到一定數量,必定會有單機硬體負載不了而無法訓練出模型的問題。 使用在線學習方法可以解決上面提到的兩個問題: 1.不須使用全部資料重新 訓練模型。2.在線學習其一次只需要處理一筆資料,因此只要一筆資料的維度是機 器可以負荷的,不會有單機硬體無法負載的問題。 由於近年來在線(Online)的概念非常的熱門,也因此很多論文的題目都會 以在線(Online)命名,根據本研究之觀察,有些演算法通常是用 Online 來突顯模 型參數會隨時間演變,但是並無關於用標記資料來對模型參數做更新的特性,例如 Online Latent Dirichlet Allocation [16]、Online Hierarchical Dirichlet Process [17]等等;而有些方法符合 Generic Online Learning Process 的精神, 每次只針對一筆資料即時做預測分析,取得正確的資訊後,利用預測結果和正確資 訊來對模型調整參數,例如前面提到的 Online Perceptron 以及 Online SVM[18]、 Online Logistic Regression[19] 等等方法。Online Perceptron 是在空間中建 立一條直線(分類器),並利用其法向量和資料的內積將資料分成+1 和-1 兩個類別, 其直線會隨著預測錯誤的向量做調整。Online SVM 衍生自傳統的 SVM,容許資料 一筆一筆加入來修改 support vector 的反矩陣,並利用此反矩陣來將資料分成+1和-1 二個類別;Online Logistic regression 衍生自 Logistic Regression,容 許一次針對一筆訓練資料,對迴歸方程式的係數做蒙特卡羅取樣更新,使方程式可 用來預測下一筆資料,其預測值會落在[0,1]之間。本論文所提之方法亦是基於 Generic Online Learning Process 原則下設計的。Generic Online Learning 的 標準過程如下:
Generic Online Learning Algorithm 1.for t = 1,2,...
2. Get 𝑥𝑡 ∈ 𝑅𝑛
3. Learner predicts 𝑥𝑡 and attains prediction result 𝑝𝑡 ∈ 𝑅 4. Receive correct answer 𝑦𝑡 ∈ 𝑅
5. Update learning model base on 𝑝𝑡 and 𝑦𝑡 6.end for
Line 1 代表資料一筆一筆進入迴圈中,Line 2 取得資料 𝑥𝑡 的資訊,Line3 為
訓練出來之模型對資料做預測,且得到預測結果 𝑝𝑡 ,Line 4 接收到相對於 𝑥𝑡
之正確答案 𝑦𝑡 , Line 5 使用預測結果 𝑝𝑡 和正確答案 𝑦𝑡來更新學習模型。
2.2 貝氏定理與貝氏網路
2.2.1
貝氏定理 假設C1, C2,… , Cn是樣本空間( sample space) Θ 的分割,且有一觀察到 的事件 A,則根據貝氏定理(Bayes theorem); P(Ci|A) = P(Ci)P(A|Ci) P(A) = P(Ci)P(A|Ci) ∑n P(i=1 Ci)P(A|Ci) ∝ P(Ci)P(A|Ci)
其中
A : 觀察到的事件( Evidence )。 P(Ci) :事前機率( Prior Probability) P(A|Ci) :可能性(Likelihood)
P(Ci|A) :事後機率( Posterior Probability)
事前機率(Prior)又稱為古典機率,其代表在還未觀察到其他事件之前,因某 些事前知識(Prior Knowledge)所認知的某一事件 Ci 所發生之機率;事後機率 (Posterior)則假設我們觀察到某一事件 A 發生後,產生某一事件 Ci的機率;可能性 估計(Likelihood)又稱為樣本機率(Sample Probability),由於 A 是我們觀察到的 事件,因此可以計算事件 Ci 產生此事件的機率。 在可能性估計中,針對每一個P(A|Ci),我們通常用概似函數(likelihood
function) L(A , Ci)來表示P(A|Ci),估算概式函數的方法常利用對概似函數微分求
極值來得到此機率值,此方法稱作最大可能性估計(Maximum Lilelihood Estimate,
簡稱 MLE);當使用 MLE 算出P(A|Ci)之後,且對某一事件Ci 所發生之機率有足夠事
前知識來定義事前機率(Prior)時(也就是已知((P(Ci))i=1n ),我們便可以計算觀察
到事件 A,發生某事件的事後機率(Posterior)。由於樣本空間中,共有
事件的方法,又稱作最大事後機率(Maximum a Posterior,簡稱 MAP)。
若不採用 MAP,也可以搭配取樣(Sample)方法,從 n 個 Ci|A 事件來挑一個事
件。取樣方法又可分為很多種,例如簡單隨機抽樣 (Simple Random
Sampling)、系統抽樣(systematic sampling)、分層抽樣(stratified sampling)、 群集抽樣(cluster sampling)等等。
2.2.2
貝氏網路貝氏網路(Bayesian network),又可以稱信念網路(belief network)或有向非 循環圖形模型(directed acyclic graphical model)。貝氏網路是一種機率圖型模 型(Probability Graph Model)[20],藉由有向非循環圖形(directed acyclic graphs)中得知隨機變數(random variable)及其相對應的條件機率分配
(conditional probability distributions)。
一般而言,貝氏網路中的節點表示隨機變數,它們可以是可觀察到的變量、潛 在變量,或是未知參數等等。連結兩節點的箭頭代表兩個隨機變數彼此間具有因果 關係或是非條件獨立的;若節點中變數間不存在一條路徑,其隨機變數彼此間不存 在因果關係或是條件獨立的。若兩個節點間以一個單箭頭連接在一起,表示其中一 個節點是 parents,另一個是 descendants 或 children,兩節點就會產生一個條 件機率值。下圖為一個貝氏網路的例子
圖 2.2-1: 一個貝式網路例子,每個圓圈內的字母代表一個隨機變數 上圖中,每個圓圈內的字母代表一個隨機變數,由此圖我們可以輕易的推導出 這些事件的聯合分佈機率如式子(2.1): P(D,I,G,S,L) = P(D)P(I)P(G|D,I)P(S|I)P(L|G) (2.1)
2.3 Dirichlet Process
2.3.1 Dirichlet Distribution
在瞭解 Dirichlet Process 之前,本論文先介紹 Dirichlet Distribution, 其定義如下:
若 ∑𝑘𝑖=1𝜋𝑖 = 1 ,且對所有的 i=1,2,…,k ,𝛼𝑖 > 0 ,𝜋𝑖 > 0,且 𝜋1, … , 𝜋𝑘的 聯合機率密度函數(joint probability density function)為:
𝑝(𝜋1, … , 𝜋𝑘) = Γ(∑𝑘𝑖=1𝛼𝑖) ∏𝑘𝑗=1Γ(𝛼j)
∏ 𝜋𝑗𝛼j−1
𝑘
𝑗=1
稱(𝜋1, … , 𝜋𝑘)是一組 Dirichlet Distribution,記作(𝜋1, … , 𝜋𝑘)~ Dir(𝛼1, … , 𝛼𝑘)。
E[𝜋𝑖] =𝛼𝛼𝑖 0 Var[𝜋𝑖] = 𝛼𝑖(𝛼0− 𝛼𝑖) 𝛼02(𝛼 0+ 1) Dirichlet Distribution 的主要性質如下: 1. 結合性(Merge): 假設(𝐴1, … , 𝐴𝑘) 是 (1,…,n)的切割,若(𝜋1, … , 𝜋𝑘) ~ Dir(𝛼1, … , 𝛼𝑘) ,則(∑𝑖∈𝐴1𝜋𝑖, … , ∑𝑖∈𝐴𝑘𝜋𝑖) ~ Dir(∑𝑖∈𝐴1𝛼𝑖, … , ∑𝑖∈𝐴𝑘𝛼𝑖) 2. 可切割性(Split): 假設(𝜋1, … , 𝜋𝑘) ~ Dir(𝛼1, … , 𝛼𝑘),若 (𝑝1, 𝑝2)~Dir(𝛼1𝛽1, 𝛼1𝛽2),𝛽1+ 𝛽2 = 1 ,則(𝜋1𝑝1, 𝜋2𝑝2, … , 𝜋𝑘) ~ Dir(𝛼1𝛽1, 𝛼1𝛽2, … , 𝛼𝑘)
3. Multinomial 分佈的共軛先驗分佈(Conjugate prior)
因此若(𝜋1, … , 𝜋𝑘) ~ Dir(𝛼1, … , 𝛼𝑘),且 z ~ Multinomial(𝜋1, … , 𝜋𝑘) 則 p(π| z ) ~ Dir(𝛼1+ 𝛿1(𝑧), … , 𝛼𝑘+ 𝛿𝑘(𝑧)),其中𝛿𝑖(𝑧)代表若 z=i 時,
𝛿𝑖(𝑧)=1,否則𝛿𝑖(𝑧)=0。
2.3.2 Dirichlet Process
2.3.2.1. 定義
Let Θ be a measurable space, with a probability measure 𝐺0 on the space. Let
αbe a positive real number. A Dirichlet process DP(α, 𝐺0) is defined to be the distribution of a random probability measure G over Θ such that, for any finite
measurable partition (𝐴1,𝐴2,...,𝐴𝑛) of Θ, the random vector ( G(𝐴1) , ... ,
G(𝐴𝑛) ) is distributed as a finite-dimensional Dirichlet distribution with parameters ( α𝐺0(𝐴1) , ... , α𝐺0(𝐴𝑛) ):
( G(𝐴1) , ... , G(𝐴𝑛) ) ~ Dir( α𝐺0(𝐴1) , ... , α𝐺0(𝐴𝑛) ) We write G ~ DP(α, 𝐺0 ) if G is a random probability measure with distribution given
by the Dirichlet process.
此定義為Ferguson於1973年提出,其主要是用來描述分佈的分佈,後來陸續有 學者使用了不同的觀點來看DP,如Sethuraman (1994)使用 stick-breaking construction[21] 來建構一個DP;Blackwell and MacQueen 在1973年時提出 Pòlya’s urn scheme[22]來描述從DP中取樣一個分佈參數的過程等等。其中Pòlya’s urn scheme又可以對應成隨機過程(stochastic process)中的中國餐廳過程。下面
幾個小節將會介紹這些方法。
2.3.2.2.
stick-breaking construction
stick-breaking construction為 Sethuraman 於1994年提出,其建構DP方法
如下: 假設( ) =1 和 ( ) =1 為彼此獨立的隨機變數,且 | 0, 0 a(1, 0) 𝑘|𝛼0,𝐺0 𝐺0 那麼就可以定義G如下: 𝜋𝑘 = 𝛽𝑘∏(1 − 𝑘−1 =1 𝛽) 𝐺 = ∑ 𝜋𝑘 𝑘 𝑘=1 , 𝑘 = { 1 , 0 , 𝑘 = ∑ 𝜋𝑘 𝑘=1 = 1 式子 2.2 是由 Griffiths, Engen, and McCloskey 三個人所定義的,因此由此
式建構出來的 π 又可直接寫作 π ~ GEM( 0),GEM 為 Griffiths, Engen, and
McCloskey 三人的名字縮寫。
2.3.2.3. Pòlya’s urn scheme
Pòlya’s urn scheme 為 Blackwell and MacQueen 在 1973 提出。假設 G~DP( 0, 𝛼),
此方法對應的不是 G 本身,而是描述從 G 取樣的一個過程。其詳細描述如下: 假設 G~DP( 0, 𝛼),且 θ1, θ2,… , θ𝑖−1 是從 G 中取樣出來的彼此獨立的隨 機變數,在給定θ1, θ2,… , θ𝑖−1 的情況下求 θ𝑖 的條件機率為 θ𝑖| θ1, θ2, … , θ𝑖−1, , 𝐺0 ∑ 1 − 1 + 𝛼 θ𝑙 𝑖−1 =1 + 𝛼 − 1 + 𝛼 0 θ𝑙 = { 1, θ = 𝑙 0, 𝑙𝑠 ( 4) 式子(2.4)可以想像成從一個箱子抽球,第 i 次抽出的球便是 θ𝑖,可以將 θ𝑖想 像成顏色。抽到什麼顏色的球,我們就多放一顆同顏色的球到箱子裡,同時也有一 定的機率抽一種新的顏色的球放入箱子。 若不計算球是第幾次被抽到,只計算抽到的顏色的次數,從式子 2.1 可以知道, 假設目前箱子裡面有 K 種顏色,m𝑘是箱子中每種顏色球的數量, 𝑘代表一種顏色, 我們可以將式子簡化如下: θ𝑖| θ1, θ2, … , θ𝑖−1, , 𝐺0 ∑ m𝑘 − 1 + 𝛼 ϕ𝑘 𝐾 𝑘=1 + 𝛼 − 1 + 𝛼 0 ϕ𝑘 = { 1, θ𝑖 = 𝑘 0, 𝑙𝑠 ( 5) 由式子 2.5 可以看出,若箱子內某種顏色的球較多,抽中此顏色的球機率就比 較大,而且抽中後又會增加下一次抽中此顏色的機率,造成了大者恆大的現象。式 子 2.5 也展示了 DP 是帶有群的性質的,此式子與 2.4 要介紹的中國餐廳過程有著
極大的關聯。
2.3.3 Dirichlet Process Mixture Model
Dirichlet process mixture model (DPMM)可以想成是將Finite Mixture model(FMM)延伸成Infinite Mixture Model。因此本論文先介紹FMM。
一個FMM可用graphical model 來表示,其表示法如下圖:
圖 2.3-1 : Finite Mixture Model
上圖中,若以生成模型的角度來看,在給定 0, 𝛼 後,我們可以先取樣出π, 得到π之後可以取樣出一個 zi,假設取樣到的zi值為j,接著我們可以從 𝐺0取樣出 θ𝑗,由於在此我們沒有限定θ𝑗是什麼分佈的參數,因此不失一般性用F(θ𝑗)來代表 其分佈,因此給定 θ𝑗 後,x𝑖 將服從F(θ𝑗)。完整取樣與生成過程可用以下式子代 表。 |𝛼0 r(𝛼, … ,𝛼) 𝑧𝑖|
| 𝐺0 𝐺0 𝑥𝑖|𝑧𝑖, { }𝑘=1 ( )
當我們假設K是無窮大的時候,FMM就變成了DPMM,其graphical model如下圖:
圖 2.3-2 : Dirichlet Process Mixture Model-Infinite Mixture Model 表示法
DPMM的生成過程和FMM是完全一樣的,只有在取樣θj時原本有K種可能,現在變
成無窮多種可能。因此,在DPMM中,將FMM中 π 的 Dirichlet prior,改成服從 stick-breaking construction 中 π 的建構方法,也就是說,π ~ GEM(1, 𝛼)。 完整取樣與生成過程可用以下式子代表。 𝛑 EM(1, 𝛼) zi|𝛑 𝛑 θ | 0 0 xi|zi, {θ} =1K (θ ) 如果我們沒有使用indicator變數zi的話,且沒有想要明顯的表達一個群的參數,
我們也可以將 DPMM 轉換成 Pòlya’s urn 的表示法,如下圖: 圖 2.3-3: DPMM - Pòlya’s urn 表示法 上圖中,若以生成模型的角度來看,在給定 0, 𝛼 後,我們可以取樣出一個滿 足DP的G,得到G之後,我們可以根據G來取樣θ𝑖,得到θ𝑖後,由於在此我們沒有限 定θ𝑖是什麼分佈的參數,因此不失一般性用F(θ𝑖)來代表其分佈,因此給定 θ𝑖 後, x𝑖 將服從F(θ𝑖)。完整取樣與生成過程可用以下式子代表。 𝐺 𝐷𝑃( 0, 𝛼) θ𝑖| 𝐺 𝐺 x𝑖| θ𝑖 𝐹(θ𝑖) 若我們觀察到一些資料 x1, x2, … , x𝑁,可以利用這些資料來做 inference。DP 無法直接使用 EM 演算法[23]來估算參數;因此 Neal(2000)[24]針對八種情形,包
含直接對參數做 Gibbs Samling、 0和取樣出來θ𝑖互相共軛(Conjugate)、以及互
相不是共軛等等情形,提出了八個 algorithm,詳細的介紹如何使用 Gibbs Sampling 的方法來估計模型參數。後續還有 Michael Jordan(2004)[26]提出使用
2.4 Chinese Restaurant Process
中國餐廳過程(CRP)是一種隨機過程(stochastic process),主要是用顧客到餐 廳用餐選桌入座的情景,描述了一個空間上的切割(partition) A1, A2, … , A𝐾的分佈, 下面幾個小節將有詳細的介紹。2.4.1 符號定義
在本小節我們先定義一下符號及其對應項目,以方便後面介紹中國餐廳過程 (Chinese Restaurant Process),其符號對應表如下:表 1 : CRP 符號對應表
2.4.2 中國餐廳過程
中國餐廳過程(Chinese Restaurant Process)最早源自於對舊金山的中國餐廳
符號 意思 𝑥𝑖 第 i 個顧客 𝑧𝑖 第 i 個顧客坐在第幾桌 𝑚𝑘 第 k 桌的人數 𝑗 第 j 桌的菜色 𝛼 調控開新桌比例之參數 𝐺0 base distribution k 目前桌子有人的桌數 K 餐廳總桌數,趨近於 ∞ 𝐻(𝑥𝑖 , 𝑗) 第 i 個人對第 j 桌菜色的偏好程度
的假想:假設某餐廳裡面,有無限個桌子,而每個桌子有無限個座位,可以坐無限 多個顧客。根據這個假設,又可以分成兩種情景。 情景(1): 第一個顧客進餐廳之後選定某桌子。之後的每個顧客進餐廳後,會去看看自 己是不是要加入已經有人坐的桌子,顧客也可以選擇自己開新桌。顧客選擇已經有 人坐的桌子之機率會正比於該桌的已就座人數( 𝑚𝑘),而顧客自己開新桌的機率會 正比於某定值𝛼,其機率公式如下: P(𝑧𝑖 = j | 𝑧−𝑖, 𝛼) ∝ { 𝑚𝑗 𝑖−1+𝛼 , 𝑗 ≤ 𝑖−1+𝛼𝛼 , 𝑗 = + 1 (2.6) 其示意圖如下圖: 圖 2.4-1: CRP 情景(1) 示意圖: 不失一般性假設開桌順序為 table1、table2、…。 ( a ) 在都還沒有人進餐廳時,顧客開新桌的機率
為 1。(b) 在(a)之後,顧客坐於第一桌,下一位顧客選擇 table1 的機率為 1/ (1+α), 選擇開新桌的 機率為 α / (1+α) 。(c) 假設在(b),第二位顧客選擇了 table2,下一位顧客選擇 table1 的機率為 1/(2+α), 選擇 table2 的機率為 1/(2+α),選擇開新桌的機率為 α/(2+α)。 假設顧客群是 𝑥1、𝑥2、…、𝑥𝑁,中國餐廳過程情景(1)最主要目的便是提供一 個顧客選擇進入各桌的機率,它間接地說明了這 N 個人分散於各桌的情形。而當有 新的顧客進來時,便可以參考此分佈來考慮要選擇哪一個桌子。 此過程同時也是一個無母數的演算法,也就是分群的時候不必限定群數 k,讓 資料自己判斷有幾群,且不管目前資料有幾群,永遠存在一個選擇全新類別的機 率。 中國餐廳過程又可以更進一步的假設,若顧客入座後,這些彼此同一桌的顧客 便會依照他們自己的特徵來形成一個特徵分佈,此時,可以把此分佈比喻為每桌的 菜色。也就是接下來要談到的第二個情景。 情景(2): 第一個顧客進餐廳之後選定某桌子,並點菜。之後的每個顧客進餐廳後,會去 看看已經有人在的桌子,如果那桌的菜自己喜歡吃,就選擇坐那一桌,如果每桌的 菜都不是自己喜歡吃的,顧客也可以選擇自己開新桌。另外顧客選擇已經有人坐的 桌子之機率會正比於該桌的已就座人數( 𝑚𝑘)及對該桌菜色的偏好程度,顧客自己 開新桌的機率會正比於某定值𝛼及對平均菜色的偏好程度。 P(𝑧𝑖 = j | 𝑧−𝑖 , 𝑥 , , 𝐺0, 𝛼) ∝ { 𝑚𝑗 𝑖−1+𝛼𝐻 (𝑥𝑖 , 𝑗) , 𝑗 ≤ 𝑖−1+𝛼𝛼 ∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗), 𝑗 = + 1 (2.7) 其示意圖如下圖:
圖 2.4-2 : CRP 情景(2) 示意圖: 不失一般性假設開桌順序為 table1、table2、…。 ( a ) 在都還沒有人進餐廳時,顧客開新桌的機率 為 1。(b) 在(a)之後,顧客坐於第一桌,下一位顧客選擇 table1 的機率為( 1/ (1+α)) * H(𝑥2, 1), 選 擇開新桌的機率為 (α / (1+α)) * ∫ 𝐻(𝑥2 , 2) 𝐺0( 2) 。(c) 假設在(b),第二位顧客選擇了 table2, 下一位顧客選擇 table1 的機率為 ( 1/ (2+α)) * H(𝑥3, 1),選擇 table2 的機率為( 1/ (2+α)) * H(𝑥3, 2),選擇開新桌的機率為(α / (1+α)) * ∫ 𝐻(𝑥3 , 3) 𝐺0( 3)。 (d) 假設在(c),第三位顧客選
擇了 table2,下一位顧客選擇 table1 的機率為 ( 1/ (3+α)) * H(𝑥4, 1),選擇 table2 的機率為( 2/ (3+α))
* H(𝑥4, 2′ ),選擇開新桌的機率為(α / (3+α)) * ∫ 𝐻(𝑥4 , 3) 𝐺0( 3),此時的 2′是根據𝑥2、𝑥3和𝐺0 的事後機率所取樣得到的。 同樣的,假設顧客群是 𝑥1、𝑥2、…、𝑥𝑁,中國餐廳過程情景(二)的目的,也 是提供顧客到各桌的機率。此機率算法除了考量各桌顧客的分佈以外,也需要考量 每一桌的特徵分佈,也就是每一桌的菜色。如此一來,新的顧客進入餐廳後,選定 桌子前,便會把顧客入桌後的機率分佈當成事前機率(prior)來考慮,除此之外,
還會衡量自己喜歡該桌的菜色的程度,換句話說,就是會依該桌特徵分佈,衡量一 下可以滿足該顧客所擁有的特徵的可能性(likelihood)。
2.4.3 Graphical Model and Gibbs Sampling
CRP 在情景(2)的過程,在數學上可以建構出一個和 Dirichlet process mixture model 等價的分佈,我們稱此為 CRP Mixture Model。
圖 2.4-3 : Graphical Model: CRP Mixture Model
圖 2.4-3 是 CRP Mixture Model 的 graphical model 表示法,其參數估計可以 使用 Gibbs Sampling 來實作。Gibbs Sampling 的詳細步驟如下:
假設任意初始化 𝑧1、 𝑧2 、 … 、 𝑧𝑁
step1: For i = 1 ,…, N :將 𝑥𝑖 移出 𝑧𝑖 桌,若 𝑧𝑖桌只有 𝑥𝑖 自己,則從當前
則從 𝐺0 當中取樣出一個
step2: For i = 1,…,k :重新根據 prior 𝐺0 和 第 i 桌的資料分佈來取樣一
個新的 𝑖
做完步驟 1、2,即代表完成了一回合的 Gibbs Sampling,若要取得較可靠的 隨機變數估計值,須至少重複步驟 1、2 到達一定回合數量才可,此即 Neal(2000) 的 Algorithm 2[24]。
2.4.4 Collapsed Gibbs Sampling
由於我們在取樣一個分佈的時候,本身就必須是從一個分佈所取樣出來的,因 此若我們取樣出來的分佈和我們從分佈中取樣時的分佈剛好有共軛性(Conjugate) 的話,我們便可以將式子 2.7 的 likelihood 部分對 做積分變成: P (𝑧𝑖 = j | 𝑧−𝑖 , 𝑥 , , 𝐺0 ) ∝ { 𝑚𝑗 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐹( 𝑗)−𝑖, 𝑗 ≤ 𝑖−1+𝛼𝛼 ∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗), 𝑗 = + 1 (2.8) 式子 2.8 中, (θj)−i是計算根據觀察到 0, ∑a: (za=j )∧(𝑎 ≠ 𝑖) xa 這些資訊所
產生 𝑗 的事後機率,此即相當於對圖 2.4.3 的 graphical model 做 Collapsed Gibbs Sampling,原來的 graphical model 便可以簡化成下圖:
圖 2.4-4 : Collapsed Gibbs Sampling on CRP mixture model
Collapsed Gibbs Sampling 的詳細步驟將會變動如下: 任意初始化 𝑧1、 𝑧2 、 … 、 𝑧𝑁
step1: For i = 1 ,…, N :將 𝑥𝑖 移出 𝑧𝑖 桌,若 𝑧𝑖桌只有 𝑥𝑖 自己,則從當前
的狀態移除整個 ,移除後,再重新根據式子 2.8 取樣 𝑧𝑖,若 𝑧𝑖桌只有 𝑥𝑖 自己,
則從 𝐺0 當中取樣出一個
做完步驟 1,即代表完成一回合的 Collapsed Gibbs Sampling,若要取得較可 靠的隨機變數估計值,須至少重複步驟 1 到達一定回合數量才可,此即 Neal(2000) 的 Algorithm 3[24]。
2.5 Distance Dependent Chinese Restaurant Process
近年以 CRP 為基礎深入研究的有美國普林斯頓大學的教授 David Blei 及其學 生 Frazier 所發表的 Distance Dependent Chinese Restaurant Process (DDCRP)[26], 該概念是從傳統的 CRP 做衍生,傳統的 CRP 為顧客選桌子時和每桌顧客人數成比例, 而在 DDCRP 中,顧客選擇考量的是和其他顧客同桌的機率,並使用顧客間之距離當 成 prior,其機率公式如下: P(𝑧𝑖 = 𝑧𝑗 | 𝑧−𝑖 ) ∝ { ( 𝑖𝑗) , 𝑗 ≤ 𝛼 , 𝑗 = + 1 (2.9) 其中 ( 𝑖𝑗 ) 是顧客 i 和 j 的距離函式(decay function),例如 ( 𝑖𝑗 ) = exp( -( 𝑖𝑗/a) )。
後續有 Christopher D. Manning 及其學生 Richard Socher 提出 Spectral Chinese Restaurant Process[27],其概念主要是結合了 Spectral clustering [28] 中的 Laplacian matrix 來對資料先做降維,再以 DDCRP 的概念實作 gibbs sampling 來估算模型參數。 但是今天若是以巨量資料的觀點來看,針對已就坐的顧客做 Sampling 來看是 要跟誰坐同一桌,等於是對全部的 Training Data 都要計算出一個機率值,若講 求計算效率更必須預先建立好距離關係矩陣,然後再做一遍最大可能性估計,由於 資料量為巨量資料,計算量也將成為巨量計算量,因此 DDCRP 是不適合處理巨量資 料的
2.6 Topic Model
在機器學習和自然語言處理研究領域中,主題模型(Topic Model)是一種用來 發現收集到的文集裡面之主題(此主題可以是抽象的),直覺上,給一份文件特定主 題,我們可以期望一些和特定主題相關或不相關的字出現在文件的頻率是高或低; 例如假設有一份文件主題為電腦,那麼”hardware”可能就比”tea”更有機會出 現在這份文件。目前已經發展出許多的主題模型,其中以 Latent Dirichlet Allocation(LDA)[29]、hierarchical latent dirichlet allocation(hLDA)[30]最具代表性, 許多主題模型皆是從這兩個模型衍伸的模型,因此本論文在下面幾個小節裡介紹這 兩種主題模型。2.6.1 Latent Dirichlet Allocation
LDA 將每一份文件的 Topic 分佈視為一個服從 Dirichlet 分佈的隨機變數,此 設定使模型更具彈性,對於未見過的文件,皆可以從 Dirichlet 分佈中取樣出文 件的 Topic 分佈參數,並在此分佈參數下,考慮產生文件中的每一個詞。其 graphical model 如下:
圖 2.6-1:2003 年 David Blei 提出的 LDA 模型,本圖擷取至原著[29]
上圖中 α 是 Dirichlet 分佈的參數,β 是一個 V*K 的矩陣,V 代表全部的
P( i | θ ), θ 則是一個元素皆大於 0 的 K 維向量,其代表了 K 個 topic 的機率。
若以生成模型的角度來看,其生成過程如下: 1. Choose θ ~ Dir(α )
2. For each of the N words 𝑖:
Choose a word 𝑖 from p( 𝑖|θ , β )
若我們觀察到一些資料 1, 2,.. 𝑁,在 2003 年 Davad Blei 原文中,是用
Variational inference 來估計參數,其主要概念是找一個可以使用 EM 演算法來 估算模型參數之近似模型;後來 Griffiths 和 Steyvers 提出以 Gibbs Sampling 的方式來估算模型參數[31]。
值得一提的是,機率式潛藏語意分析(PLSA)[32]是 LDA 在參數α為 1 時,最大 化事後機率(MAP)和最大可能性估計(MLE)下的一個特例[33]。
2.6.2 Hierarchical Latent Dirichlet Allocation
傳統的LDA 中,Topic 的個數參數必須先給定,這使得模型較不彈性,且如同
本論文在 1.1 中所談的,容易有 overfitting 或 underfitting 的問題。在”
Hierarchical topic models and the nested chinese restaurant process”一文中,先提出一 個NestedChinese Restaurant Process 的概念,再將此概念引進傳統 LDA 中,改善了
Topic 個數參數必須先給定的問題,使得整個模型更具彈性。接下來幾個小節,我 們會簡單介紹此模型。
2.6.2.1. Nested Chinese Restaurant Process
假設在一個城市中有無限多個餐館,其中一個餐館被定義為 root。每個餐館
中有無限多張桌子,每張桌子上都有一張卡片,上面寫著其他餐館的名字,其中, 每個餐館的名字都會至少在其中一個餐館的其中一個桌子的卡片上出現一次,因此, 這個城市中的餐館被組織成一個無限分支和深度的樹結構。如下圖:
圖 2.6-2: David Blei 等人提出的 nested Chinese Restaurant Process 示意圖 其中每個β 為一個餐館,每個路徑為一個顧客的旅遊路徑。本圖擷取自原著[30]。
一個遊客到這個城市度假,第一天晚上,他進入 root 餐廳並且採用 CRP 分佈
選擇桌子。第二天晚上,他去第一天晚上的餐館桌子上卡片標示的餐館,這樣一直 重複下去。M 個遊客在這個城市旅遊 L 天後,路徑的集合就描述了一個 L 階層的 無限樹的隨機子樹。
2.6.2.2.
Hierarchical latent dirichlet allocation
hLDA 中將 nested CRP 的概念加入原本的 LDA 中,利用 nested CRP 當作 prior
graphical model 如下圖:
圖 2.6-3 : David Blei 等人提出的 hLDA graphical model,本圖擷取自原著[30]
圖中 γ 是 T 的參數,T 代表了所有無限樹的路徑集合,每個 𝑐𝑖則對應為一個餐
館,共有 L 個,其中𝑐1為 root,而每個 β 會對應一個𝑐𝑖,η是β 的參數。假設我們
今天觀察到一些資料 1, 2,.. 𝑁,可以使用 gibbs sampling 的方式來估計模型參
數。若以生成模型的角度來看,其生成過程如下: 1. Let 𝑐1 be the root restaurant
2. For each level l ∈ { , … , }
Draw a table from restaurant 𝑐 −1 using CRP Equation. Set 𝑐 to the restaurant referred to by that table
1. Draw an L-dimention topic proportion vector θ from Dir(α )
2. For each word n ∈ {1, … , }
(a) Draw z ∈ {1, … , } from Mult(θ )
(b) Draw 𝑛 from the topic associated with restaurant 𝑐
hLDA利用nested CRP來建構topic的深度,改善了topic個數必須先給定的狀況, 取而代之的必須先給定深度。
第三章 Online Chinese Restaurant
Process
本章 節 將介紹 本論 文 所 提 出 的 基 於 中國餐 廳過程 的在線 學習方法 (Online Chinese Restaurant Process),此方法是一個在線學習(Online Learning)方法。目前訓
練資料已經漸漸成長為巨量資料,取得龐大的訓練資料後需要一個有效且快速的方 法來訓練分類模型,除此之外,對於如何利用持續取得的訓練資料來更新模型,也 是一個值得研究的問題。我們提出的方法不但可以對測試資料作即時的預測,也能 針對新進訓練資料即時更新模型。 此外,在線中國餐廳過程也 保留了傳 統中國餐廳過程 之特性,以無母數 (Non-Parametric)方式讓資料本身決定模型類別數參數,不需事先給定類別數參數。 將此特性與 Online Learning 結合,對於動態資料,本論文提出之方法可以持續自動 調整模型參數,以及類別數參數。 本章節的架構如下:3.1 將介紹整個系統的架構,3.2 會定義一些符號,3.3 為 在線中國餐廳過程的假想情景描述與介紹,3.4 為從傳統的 CRP Mixture Model 衍 生的 Online CRP Mixture Model ,3.5 說明此模型也適用 Collapsed Sampling ,3.6 將介紹 Online CRP 之演算法,3.7 為演算法分析與探討。
3.1 系統架構
本章節所提出的 Online CRP 是一個在線學習演算法(Online learning
algorithm),因此整個系統架構遵守 2.1 中 Generic Online Learning Algorithm, 本論文的系統架構如下圖表示。 圖 3.1-1 : 系統架構圖 上圖中,系統一次看一筆訓練資料,並使用前一次所建好的模型來預測當前這 一筆訓練資料的類別,接著對照正確答案,並依照預測的結果對錯而分成兩種更新 模型的情況來調整模型,以利對下一筆資料的預測。
3.2 符號定義
在更詳細的介紹 Online CRP 之前,我們先在此定義一些變數的符號及其對應 之物理意義,以方便介紹之後的小節。 表 2 : Online CRP 符號定義與對應表 符號 意義 𝑥𝑖 第 i 個顧客 𝑧𝑖 模型判斷第 i 個顧客應坐在第幾桌 𝑦𝑖 實際上第 i 個顧客坐在第幾桌 𝑚𝑗 第 j 桌的人數 𝑗 第 j 桌的菜色 𝐻(𝑥𝑖 , 𝑗) 第 i 個人對第 j 桌菜色的偏好程度 K 餐廳總桌數,趨近於 ∞ k 目前桌子有人的桌數 𝐺0 base distribution 𝛼 調控開新桌比例參數 𝑔(𝛾1, 𝛾2 ,j) 第 j 桌之 Relaxing function 𝛾1 ,𝛾2 Relaxing rate 𝑗 因𝑦𝑖影響而離開第 j 桌的次數 𝑗 因𝑦𝑖影響而加入第 j 桌的次數3.3 Online CRP
Online CRP 是延伸 2.2 小節所提及之中國餐廳過程情景(二),詳細的情景如 下: 假設:某間餐廳裡面,正要舉行一場婚宴,此餐廳有無限個桌子,而每個桌子 有無限個座位,婚宴總招待會替每位顧客安排座位。 第一個顧客進餐廳之後,向婚宴總招待說明自己想吃的菜色,婚宴總招待安排 他到某桌就位。之後的每個顧客進餐廳後,皆會向婚宴總招待說明自己想吃的菜色, 婚宴總招待會去看看已經有人在的桌子,若那桌預訂菜色是顧客喜歡吃的,就安排 顧客去那一桌,如果每桌的預訂菜色都不是顧客喜歡吃的,也可以安排顧客開新桌。 每個顧客有可能因故離開一桌而加入另外一桌,婚宴總招待不希望此情形發生的頻 率太高,因此他記錄了每桌有顧客因故離開或是因故加入的次數,並將此情形納入 為下一位顧客安排座位的考量。另外,婚宴總招待於顧客進來時也記錄了顧客們喜 歡吃的菜色,他會依照最終顧客入座情形來決定每桌的菜色內容。圖 3.3-1: Online CRP 情景示意圖: 不失一般性假設開桌順序為 table1、table2、…。 ( a ) 在都還 沒有人進餐廳時,婚宴總招待安排顧客開新桌的機率為 1。(b) 在(a)之後,顧客坐於第一桌,婚宴 總招待安排下一位顧客於第一桌的機率為( 1/ (1+α)) * H(𝑥2, 1), 安排開新桌的機率為 (α / (1+α)) * ∫ 𝐻(𝑥𝑖 , 2) 𝐺0( 2) 。(c) 假設在(b),婚宴總招待安排第二位顧客到第二桌,其安排下一位顧 客到第一桌的機率為 ( 1/ (2+α)) * H(𝑥3, 1),到第二桌的機率為( 1/ (2+α)) * H(𝑥3, 2),開新桌的 機率為(α / (1+α)) * ∫ 𝐻(𝑥3 , 3) 𝐺0( 3)。 (d) 假設在(c),婚宴總招待安排第三位顧客到第二桌, 但是顧客因故離開第二桌到了第一桌。婚宴總招待看到這個狀況,安排下一位顧客到第一桌的機率 為 (1+γ1) *( 2/ (3+α)) * H(𝑥4, ′1),安排到第二桌的機率為(1-γ2) *( 1/ (3+α)) * H(𝑥4, ′2),開新桌 的機率為(α / (3+α)) * ∫ 𝐻(𝑥3 , 4) 𝐺0( 4),此時的 1′是根據𝑥1、𝑏𝑥3和𝐺0的事後機率所取樣得到 的, 2′是根據𝑥1、−𝑏𝑥3和𝐺0的事後機率所取樣得到的。 婚宴總招待看到一位顧客離開一桌加入另外一桌時,會猜想他為何要離開那一 桌,直覺上會覺得若安排下個顧客到他離開的那桌,很可能會造成下個顧客也離開 的情形;同時也會覺得若直接將下位顧客安排到他加入的那一桌的話,可能比較不 會造成顧客又離開的情形。當婚宴總招待考量到這一點,造成了原本安排座位方式
的機率鬆弛(probability relaxing)現象,因此我們在此引進經濟學上面的反悔理 論(regret theory)[34]精神並結合傳統中國餐廳定理的原則,設計出一個鬆弛函 式(relaxing function) g(γ1, γ2,j)如方程式 3.1 所示,來達到使顧客選擇每桌的 事前機率達到機率鬆弛的效果。 𝑔(𝛾1, 𝛾2, 𝑗) = (1 + 𝛾1)𝑓𝑗(1 − 𝛾2)𝑒𝑗 (3.1) 式子 3.1 之意義為當婚宴總招待看到有人離開一桌加入另外一桌時,將對之 後的顧客安排到那桌的意願減少 γ2,而對安排到他加入的那一桌意願增加 γ1。這 個考量是因為婚宴總招待害怕再度做錯決定,安排錯位置,造成婚宴的混亂,因此 他參考了之前錯誤決策之結果,來擬訂下一次安排座位之策略。婚宴總招待安排顧 客到各桌的機率,除了會和該桌人數𝑚𝑗成正比,還會和每桌非經過他安排而增加 的人數 fj 成正比,同時也會和每桌他排定後卻因故離開的人數 j 成反比。 在每一桌上的第一次顧客因故離開原桌 zi要加入新桌 yi時,針對 zi桌的鬆弛 函式 𝑔(γ1, γ2, zi) = (1 + 𝛾1)0(1 − 𝛾2)1 = (1 − 𝛾2) ,針對 yi桌的鬆弛函式,𝑔(γ1, γ2, yi) = (1 + 𝛾1)1(1 − 𝛾2)0 = (1 + 𝛾1) ,我們利用此反悔精神將之與各桌人數相乘當 成婚宴總招待的全新的事前機率背景知識(Prior Knowledge)。因此,假設婚宴總 招待即將安排第 i 個顧客入桌,我們重新定義其選擇桌子的機率式如下: P(𝑧𝑖=j|𝑧−𝑖, 𝑦−𝑖 , 𝑥𝑖 , , 𝐺0,α )∝ { 𝑔(𝛾1, 𝛾2, 𝑗) 𝑚𝑗 𝑖−1+𝛼𝐻(𝑥𝑖 , 𝑗) , 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗), 𝑗 = + 1 (3.2) = {(1 + 𝛾1) 𝑓𝑗(1 − 𝛾 2)𝑒𝑗 𝑚𝑗 𝑖−1+𝛼𝐻(𝑥𝑖 , 𝑗) , 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗), 𝑗 = + 1 𝑗 = ∑ 𝐼[ ( 𝑦𝑎 = 𝑗 ∧ 𝑧𝑎 ≠ 𝑗 )] 𝑖−1 𝑎=1
𝑗 = ∑ 𝐼[ ( 𝑧𝑎 = 𝑗 ∧ 𝑦𝑎 ≠ 𝑗] 𝑖−1 𝑎=1 ( ) 將本論文所定義之鬆弛函式代入式子 3.2,即可得式子 3.3;當fj 和 j 皆為 0 時,在線中國餐廳定理便會退化成傳統的中國餐廳過程,式子 3.3 將等同於式子 2.7。 另外,婚宴總招待也希望喜歡同菜色的顧客們盡量坐在同一桌,因此他會根據 最後顧客就定位後的情形來更動每桌預訂菜色 { 𝑗}𝑗=1𝑘 ,這部分我們將在下一小節 有更詳細的說明。
3.4 Graphical Model and Sampling
我們把正確的標記訓練資料當成一個觀察到的變數 𝑦𝑖,用來間接影響我們每
次對其他隨機變數的取樣結果,本論文所提及之 Online CRP,其 graphical model, 如下圖所示:
圖 3.4-1 : Graphical Model: Online CRP Mixture Model
對於每一筆資料 𝑥𝑖 ,當我們取樣完𝑧𝑖後之後,我們需要針對每一桌更新它們 的參數 𝑗(預訂菜色)。Online CRP 與傳統的 CRP 最大的不同點在於 Online CRP 已 經引入了標記資料 yi,每回合完成取樣(Sample)並得到模型預測的 𝑧𝑖 後,必須將 其與正確的標記資訊 𝑦𝑖 做比較。若 zi = yi,代表資料的預測類別是正確的,此時 可利用其他在𝑧𝑖桌上的資料以及𝐺0和𝑥𝑖 計算 的事後機率並取樣出新 ;若 zi 不等於 yi,則代表資料的預測類別是錯誤的,這就表示,此筆資料所擁有的特徵在
zi 桌出現的可能性估計被高估;因此雖然 zi 桌最終沒有𝑥𝑖這一點,但我們假設我們 在 𝑧𝑖桌觀察到一點 𝑥𝑖′= - b * 𝑥 𝑖 ( b 是一個大於 0 之參數,控制該桌預訂菜色與 顧客𝑥𝑖喜歡之菜色偏離之強度),並利用其他在𝑧𝑖桌上的資料以及𝐺0和𝑥𝑖′ 計算 的事後機率並取樣出新 ,因此,xi 屬於 zi 桌的可能性估計將會下降;另一方面, 此筆資料的特徵在 yi桌出現的機率被低估,因此我們必須加強 𝑥𝑖 特徵在yi桌出現 的分佈比例。因此我們假設我們觀察到一點 𝑥𝑖′′= b * 𝑥 𝑖 ( b 是一個大於 0 之參數, 控制該桌預訂菜色與顧客𝑥𝑖喜歡之菜色相近之強度),並根據在𝑧𝑖桌上的資料以及 𝐺0和𝑥𝑖′′ 計算 𝑦 的事後機率並取樣出新 𝑦來達到機率鬆弛,因此,xi 屬於 yi桌的 可能性估計將會上升。 依照以上之原則,每一個 𝑗′便是根據在第 j 桌上的資料和我們假設存在第 j 桌上的虛擬資料以及𝐺0計算 𝑗的事後機率而取樣出來的。由於我們取樣出來的那些 值其實際物理意義為一群特徵發生的機率值,因此在此必須限制我們所假設的虛擬 資料不能使特徵發生的機率值為負。 另外原本 CRP 的 prior 是正比於顧客人數,若 𝑧𝑖 = 𝑦𝑖 ,代表當前的比率不需 要做任何改變;若 𝑧𝑖 ≠ 𝑦𝑖,代表當前的比率需要調整,因此我們在 3.3 小節中引 入了鬆弛函式(relaxing function) g(γ1 ,γ2 , 𝑗 ) 來達到機率鬆弛,如此便可以 依照每次和 𝑦𝑖 比較的結果,來幫助模型重新調整事前機率(prior)。根據圖 3.4-1, 可得到取樣𝑧𝑖的公式如式子 3.4 所示: 𝑃( 𝑧𝑖 = 𝑗| 𝑧−𝑖 , 𝑦−𝑖 , 𝑥𝑖, 𝑗, 𝛼, 𝐺0 ) ∝ 𝑃(𝑧𝑖 = 𝑗| 𝑧−𝑖 , 𝛼)P(𝑥𝑖| 𝑗) ( 4) 𝑃(𝑧𝑖 = 𝑗| 𝑧−𝑖 , 𝛼)即為我們所定義之 Online CRP prior,P(𝑥𝑖| 𝑗)即為概似函 式,我們使用H(𝑥𝑖, 𝑗)表示,式子 3.4 即可化成式子 3.2。 這邊需要注意的是,由於此 graphical model 會受正確資料的影響來調整每個 模型的參數,因此訓練資料的先後順序將不再具有原來 CRP 的可交換性
mixture model 所建立出來的分佈不相同。
3.5 Collapsed Sampling
如同 2.2.4 所說,若我們取樣的分佈與此分佈的分佈有共軛性,根據 Neal2000 的 algorithm 3,對於 0 和 θj,我們可以使用 Collapsed Sampling, 將 graphical model 簡化成下圖:
圖 3.5-1 : Online CRP Mixture Model : collapsed sampling
因此,針對每一筆資料 xi 便只需要取樣 zi,如式子 3.5 所示: P( 𝑧𝑖= 𝑗| 𝑧−𝑖, 𝑦−𝑖 , 𝑥𝑖, , 𝑗, 𝛼, 𝐺0 ) ∝ { (1 + 𝛾1)𝑓𝑗(1 − 𝛾2)𝑒𝑗 𝑚𝑗 𝑖−1+𝛼∫ 𝐻 (𝑥𝑖 , 𝑗) 𝐹( 𝑗)−𝑖, 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗), 𝑗 = + 1 (3.5) 式子 3.5 中𝐹( 𝑗)−𝑖的定義,和 3.4 小節所提及的一樣,𝐹( 𝑗)−𝑖是代表根據在 第 j 桌上的資料(不含 𝑥𝑖)和我們假設存在第 j 桌上的虛擬資料以及𝐺0,產生 𝑗的 事後機率。
3.6 演算法
以 3.3 小節為基礎,我們可以寫出一個 Online Chinese Restaurant Process training algorithm 如下:
Algorithm 3.6.1 : Online CRP
Input: 、 0 、 γ1、 γ2、b
Initialize: k=0 、for all s ∈ ℕ , ms = 0、fs=0、 s=0、
1. for i = 1 to ∞ do 2. Get a data xi 3. if k==0 then 4. zi = 1; 5. else 6. sample zi by P ( 𝑧𝑖= 𝑗| 𝑧−𝑖, 𝑦−𝑖 , 𝑥𝑖, 𝑗, 𝛼, 𝐺0, 𝛾1, 𝛾2 ) ∝ { (1 + 𝛾1)𝑓𝑗(1 − 𝛾2)𝑒𝑗𝑖−1+𝛼𝑚𝑗 𝐻(𝑥𝑖 , 𝑗) , 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗) , 𝑗 = + 1 7. Receive a correct answer yi
8. if zi==yi then
9. Put xi into table zi ,sample a new θ′zi from the posterior of θ′zi , based on
given 0 and all the real and pseudo data associated with the table zi , zi≔ θ′zi
10. mzi = mzi + 1 ;
11. else
12. Assume a pseudo data -bxi join table zi,sample a new θ′zi from the posterior of θ′zi , based on
given 𝐺0 and all the real and pseudo data associated with the table zi , zi≔ θ′zi
13. Assume a pseudo data bxi join table yi,sample a new θ′yi from the posterior of θ′yi , based on
given 𝐺0 and all the real and pseudo data associated with the table yi , yi≔ θ′yi
14. myi = myi + 1 ; 15. zi = zi + 1 ; 16. fyi = fyi + 1; 17. end if 18. end if 19. end for 在演算法 3.6.1 中,我們不失一般性假設每一筆資料的 yi 和桌號順序是相對 應的。Line 2 取得資料 xi ,Line 3-4 代表若目前開桌數為 0,此顧客一定會開新
桌,因此直接指定 zi 為 1;Line 6 主要是要取樣出 zi,由於 zi值有 k+1 種可能性,
因此 Line 6 必須計算 P(𝑧𝑖=1| z−i , y−i, xi , θ , 0, ),P(zi=2|z−i , y−i, xi , θ , 0, ),…,
P(zi=k|z−i , y−i, xi , θ , 0, ),P(zi=k+1|z−i, y−i , xi , θ , 0, ),然後從中取樣出一個
情況。Line 7 得到相對於 xi的正確解答 yi,Line 8-10 若取樣出來的 zi 和 yi 做
比較,結果兩者值一樣的話,在 Line 9 會為 zi 桌取樣出一個新的θzi,Line 10 為
將該桌人數加 1。Line 11-17 為取樣出來的 zi 和 yi 做比較,結果兩者值不同的情
形,Line 12-13 分別對 zi桌和yi桌取樣出一個新θzi和θyi,並於 Line 14 將 yi桌人 數加 1,於 Line 15-16 分別紀錄 zi 和 fyi。
Algorithm 3.6.2 : Collapsed Online CRP
Input: 、 0 、 γ1、 γ2、b
Initialize: k=0 、mj = 0、fj=0、 j=0、for all j ∈ ℕ
1. for i = 1 to ∞ do 2. Get a data xi 3. if k==0 then 4. zi = 1; 5. else 6. sample zj by P ( 𝑧𝑖= 𝑗| 𝑧−𝑖, 𝑦−𝑖 , 𝑥𝑖, 𝑗, 𝛼, 𝐺0, 𝛾1, 𝛾2 ) ∝ { (1 + 𝛾1)𝑓𝑗(1 − 𝛾2)𝑒𝑗 𝑚𝑗 𝑖−1+𝛼∫ 𝐻 (𝑥𝑖 , 𝑗) 𝐹( 𝑗)−𝑖, 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻(𝑥𝑖 , 𝑗) 𝐺0( 𝑗) , 𝑗 = + 1 7. Receive a correct answer yi
8. if zi==yi then
9. Update the sufficient statistic of table zi due to xi join table zi
10. mzi = mzi + 1 ;
11. else
12. Update the sufficient statistic of table zi due to −bxi join table zi
13. Update the sufficient statistic of table yi due to bxi join table yi
14. myi = myi + 1 ; 15. zi = zi + 1 ; 16. fyi = fyi + 1; 17. end if 18. end if 19. end for
在演算法 3.6.1 中,我們不失一般性假設每一筆資料的 yi 和桌號順序是相對
應的。Algorithm 3.6.2 是以 3.4 小節為基礎,Line 2 取得資料 xi ,Line 3-4 代
表若目前開桌數為 0,此顧客一定會開新桌,因此直接指定 zi 為 1;Line 6 主要
是要取樣出 zi,由於 zi值有 k+1 種可能性,因此 Line 6 必須計算 P(𝑧𝑖 = 1 |
z−i , y−i, xi , θ , 0, ),P(zi=2|z−i , y−i, xi , θ , 0, ),…,P(zi=k|z−i , y−i, xi , θ , 0, ) ,
P(zi=k+1|z−i, y−i , xi , θ , 0, ),然後從中取樣出一個情況。Line 7 會得到相對於 xi
的正確解答,Line 8-10 將取樣出來的 zi 和 yi 做比較,若結果兩者值一樣的話,
在 Line 9 會為更新 zi 桌加入 xi 的充分統計量(sufficient statistic),Line 10
為將該桌人數加 1。Line 11-17 為取樣出來的 zi 和 yi 做比較,結果兩者值不同的
情形,Line 12-13 分別對 zi桌和yi桌更新其充分統計量,並於 Line 14 將 yi桌人
數加 1,於 Line 15-16 分別紀錄 zi 和 fyi 。Algorithm 3.6.2 與和 Algorithm 3.6.1
最大的不同是,我們針對每筆資料 xi 加入某桌,不必重新取樣該桌參數,取而代 之的是直接更新其充分統計量即可。
3.7 演算法分析
在 Algorithm 3.6.1 和 Algorithm 3.6.2 中,對於每一筆訓練資料,我們只需 要使用每桌的參數來計算一筆訓練資料屬於每一桌的機率歸屬值,每次選擇最大的 機率歸屬值當成預測的類別 zi,當正確的標記資料 yi 來到時,會比對此資訊,並 依比較結果更新桌子參數,每一筆資料更新完後,代表系統已經將模型更新完畢, 可以接受下一筆測試資料做預測或接受下一筆訓練資料做模型更新的動作 在整個過程中,不需將整個訓練資料集的資訊存進記憶體,這些資訊已經隱含 在各桌子的參數裡。因此,我們只需把每個桌子的參數存在記憶體中,並使用這些 參數來估計每筆資料對每個類別的機率歸屬值,如此可節省記憶體空間。舉例來說, 如果我們桌子的菜色代表的是一個高斯分佈,那麼我們每桌只需儲存位於該桌資料分佈的平均值(Mean)和變異數(Variance),當有新資料要進來時,我們其實只需要 對這兩個值做一些計算更新而已。 而在 Algorithm 3.6.1 第 5 行的取樣過程中,假設目前系統中已經訓練了 k 類, 這就代表著每筆資料必定能夠在 O(k)時間裡面取樣出一個類別[35]。而 3.6.1 第 6 行到第 15 行更新模型參數的地方,最差的情形是當 zi ≠ yi 的時候,我們必須更新 預測錯誤的 zi 和正確標記的yi兩個桌子之參數,因此更新的時間複雜度為 O(1), 因此,若訓練的資料有 n 筆,此演算法整體的時間複雜度為 O(n*k),通常,n>>k, k 可被視為常數,因此,O(n*k) ≈ O(n);同理 Algorithm 3.6.2 也是如此。
另外和 Algorithm 3.6.1 和 Algorithm 3.6.2 也保留了傳統中國餐廳過程中無 母數的特性,可針對資料特性,自行決定類別數,當某個時間點訓練資料出現一個 新類別時,本方法可直接取樣出一個新桌子和其參數給新類別,所以該方法是非常 實用且富彈性的。
3.8 取樣 hyperparameter α
無母數方法並非完全沒有參數,因此還是存在必須決定參數問題(無母數方法 只是提供其下層之參數一個更寬廣的空間與選擇),本小節將探討兩種根據資料本 身特性決定參數α 之方法。3.8.1 根據事後機率決定參數 α
和傳統的 CRP mixture 一樣,我們可以更進一步取樣 (Antoniak 1974)[36]。 給定z,產生 的事後機率如式子 3.6 所示: P ( | 𝐳 ) ∝ P ( 𝐳 | ) P ( ) (3.6) 給定 ,產生 z 的的機率分佈如式子 3.7 所示:P ( 𝐳 | ) = ∏ I[ mzi=0 ] α+I[mzi≠0] g(γ1,γ2,zi) mzi
α+ ∑kj=1g(γ1,γ2,j) mj
t
i=1
Where t represents the number of data points, 𝑔(γ1, γ2, zI) denotes the current relaxing function
corresponding to the moment xi joining to table zi , 𝑚 denotes the number of data points in the
table 𝑧𝑖 corresponding to the moment xi joining to table zi , I is an indicator function .
(3.7) 將式子 3.7 代回式子 3.6,可得到式子 3.8 P ( | 𝐳 ) ∝ ∏ I[ mzi=0 ] α+I[mzi≠0] g(γ1,γ2,zi) mzi α+ ∑kj=1g(γ1,γ2,j) mj t i=1 P( ) (3.8) 假設我們知道 本身所服從的機率分佈,依照式子 3.8,本論文所提出之方法 也可以依造我們觀察到的資料,取樣出適當的 α 。
3.8.2 利用 Online Learning 特性每回合決定參數 α
由於 alpha 決定後,在我們做預測時,真正有影響的是對於新類別之預測,因 此可以利用 Online Learning 特性,來決定適當的參數 α 。假設我們對於 xi預測 是新類別,實際上不是新類別,那麼代表 α 的值太大,因此 α 應該調小一點;假 設我們對於 xi預測不是新類別,實際上是新類別,那麼代表 α 的值太小,因此 α 應該調大一點。此方法較為簡單,且決定速度快,適合實務上的應用。第四章 實驗
由於以下的實驗為將 Online CRP 用來作文件分類的實驗,我們先將文件分群 與中國餐廳的意義作對應,其詳細的對應表如下表: 表 3 : Online CRP 與文章分類實驗之符號對應表 在實作最大可能性估計的時候,本論文是假設文件的分佈是服從 Multinomial 分佈,因此,每一類的 Multinomial 參數都是從一個 Dirichlet 分佈(參數 )中取 樣而得到的,這兩個分佈是共軛的(Conjagate),因此我們採用 collapsed sampling (Algoritm 3.6.2),其積分(integrate)的詳細過程如下: 符號 意義 𝑥𝑖 第 i 篇文章 𝑧𝑖 模型判斷第 i 篇文章屬於第幾類 𝑦𝑖 實際上第 i 篇文章屬於第幾桌 𝑚𝑗 目前第 j 類的文章數 𝑗 第 j 類各項 feature 發生的機率分佈 𝐻(𝑥𝑖 , 𝑗) 第 i 篇文章屬於第 j 類的最大可能性估計 K 文章總類別數,趨近於 ∞ k 目前偵測到的類別數 𝐺0 base distribution 𝛼 調控開新類別的比例參數 g(γ1, γ2 ,j) 第 j 類的機率鬆弛函式 γ1 ,γ2 鬆弛率 𝑗 模型預測是第 j 類,但此判斷是錯的次數。 fj 模型預測不是第 j 類,但結果是第 j 類的次數。𝑃(𝑋| ) = ∫ 𝑃(𝑋| )𝑃( | ) (4 1 1) = ∫(∏ 𝑗𝑁𝑗(𝑋) 𝑚 𝑗=1 )( 1 𝐶(𝛼)∏ 𝑗 β𝑗−1 𝑚 𝑗=1 ) (4 1 ) = 1 𝐶(𝛼)∫( ∏ 𝑗 𝑁𝑗(𝑋)+β𝑗−1 𝑚 𝑗=1 ) (4 1 ) =𝐶(𝑁(𝑋) + ) 𝐶( ) (4 1 4) 其中 C( ) = ∫ ∏ θjβj−1 m j=1 dθ = ∏ Γ( j) 𝑚 𝑗=1 Γ ( j˙) 且 j˙= ∑𝑚 j 𝑗=1 按照定義,對參數 θ 做積分可以得到式子 4.1.1,由於 θ 是一組 Multinomial 參數,而 α 是一組 Dirichlet 參數,將其分佈的定義代入式子 4.1.1,我們可以 得到式子 4.1.2 ,由於第一項和第二項是一樣的形式,因此指數部分可以直接相 加,可以得到式子 4.1.3,最後將 C 函式的定義代入,可將式子化簡成 4.1.4。 因此當我們使用 collapsed sampling 時,條件機率式的計算方法如下: P(𝑧𝑖 = j | 𝑧−𝑖 , 𝑥𝑖 , 𝛼 , 𝛽 ) ∝ { (1 + 𝛾1)𝑓𝑗(1 − 𝛾2)𝑒𝑗 𝑚𝑗 𝑖−1+𝛼∫ 𝐻 (𝑥𝑖 , 𝑗) 𝐹( 𝑗)−𝑖, 𝑗 ≤ 𝛼 𝑖−1+𝛼∫ 𝐻 (𝑥𝑖 , 𝑗) 𝐹( 𝑗)𝑖− , 𝑗 = + 1 (4.2.1) = {(1 + 𝛾1) 𝑓𝑗(1 − 𝛾 2)𝑒𝑗 𝑚𝑗 𝑖−1+𝛼 𝐶(𝑁(𝑥)+𝑁𝑧=𝑗(𝑥− )+ ) 𝐶( +𝑁𝑧=𝑗(𝑥− )) , 𝑗 ≤ 𝛼 𝑖−1+𝛼 𝐶(𝑁(𝑥)+ ) 𝐶( ) , 𝑗 = + 1 (4.2.2) 根據原始定義,我們可以得到式子 4.2.1,再將式子 4.1.1~4.1.4 的過程帶入 化簡,可得到式子 4.2.2。其中C( )需用到 amma function,基於電腦計算於階