LDA và Gibbs sampling

Một phần của tài liệu Đồ án: Mô hình Mapreduce và ứng dụng của Bigdata (Trang 41)

3.3.1. Giới thiệu thuật tốn

Mỗi khi trình bày khái niệm gì thì cần cĩ trích dẫn tài liệu tham khảo. Latent Dirichlet Allocation (LDA) là một mơ hình sinh xác suất cho tập dữ liệu rời rạc do David Blei, Andrew Ng và Michael Jordan đề xuất vào năm 2003 và giới thiệu trong bài báo “Latent Dirichlet Allocation” [4]. Đây là một phƣơng pháp cho phép rút gọn biểu diễn của văn bản dƣới dạng một vecto các chủ đề (topic). Theo cách biểu diễn thơng thƣờng, văn bản đƣợc biểu diễn dƣới dạng một vecto các đặc trƣng đơn giản, thƣờng là các từ xuất hiện trong văn bản đĩ. LDA cho phép rút gọn biểu diễn này thành một tập hơp các chủ đề mà văn bản thể hiện.

LDA dựa trên ý tƣởng: mỗi tài liệu là sự trộn lẫn của nhiều topic, mỗi topic là một phân bố xác suất trên các từ. Về bản chất, LDA là một mơ hình Bayesian 3 cấp (three-level hierarchical Bayes model: corpus level, document level, word level) trong đĩ mỗi phần của một tập hợp đƣợc mơ hình nhƣ một mơ hình trộn hữu hạn trên cơ sở tập các xác suất topic. Trong ngữ cảnh của mơ hình văn bản, xác suất topic cung cấp một biểu diễn tƣờng minh của một tài liệu. Trong phần tiếp theo sẽ thảo luận nhiều hơn về mơ hình sinh, ƣớc lƣợng tham số cũng nhƣ inference trong LDA.

Gần đây, mơ hình hố chủ đề theo thống kê đƣợc đề xuất nhƣ là một phƣơng pháp học khơng cĩ giám sát giúp tổng hợp và hình dung đƣợc nội dung của các tập hợp văn bản lớn. Những mơ hình này sử dụng để tìm ra ý nghĩa ẩn của một từ xuất hiện trong văn bản .

Trong mơ hình LDA, mỗi tài liệu d giả định đƣợc tạo ra từ mơ hình hỗ hợp gồm K- thành phần, xác xuất trộn cho mỗi tài liệu đƣợc quản lý bởi một phân phối Dirichlet tồn cục là đối số . Mỗi từ trong văn bản đƣợc sinh ra bằng một quá trình lặp lại việc lấy mẫu thành phần hỗn hợp từ .Quá trình sinh ra văn bản, đƣợc trình bày cụ thể nhƣ phần dƣới:

Mơ hình sinh trong LDA

Cho một corpus của M tài liệu biểu diễn bởi D={d1,d2, …, dM}, trong đĩ, mỗi tài liệu m trong corpus bao gồm Nm từ wi rút từ một tập Vocabulary của các term {t1, …, tv}, V là số từ. LDA cung cấp một mơ hình sinh đầy đủ chỉ ra kết quả tốt hơn các phƣơng pháp trƣớc.

Một số thuật ngữ:

 Một tài liệu (document) là một chuỗi gồm N từ. Biểu diễn bởi:

 Một tập (corpus) là mộ tập M tài liệu đƣợc biểu diễn bởi:

Các khối vuơng trong Hình 8 biểu diễn các quá trình lặp.

- Tham số đầu vào: α và β (corpus-level parameter)

- α: là tham số Dirichlet cho trƣớc trên các phân bố chủ đề cho mỗi tài liệu.

- β: là tham số Dirichlet cho trƣớc trên phân bố từ trên mỗi chủ đề

- ⃗ (theta): phân phối chủ đề trong tài liệu thứ m (document-level parameter)

- ⃗⃗ : phân phối từ cho mỗi chủ đề k

- zm,n : chủ đề của từ thứ n trong văn bản thứ m

- wm,n: từ thứ n của văn bản m tƣơng ứng với zm,n

- M: số lƣợng các tài liệu.

- Nm: số lƣợng các từ trong tài liệu M

- V : số chiều trong từ vựng

LDA sinh một tập các từ wm,n cho các văn bản dm bằng cách:

- Với mỗi văn bản m, sinh ra phân phối topic ⃗ cho văn bản.

- Với mỗi từ, zm,n đƣợc lấy mẫu dựa vào phân phối topic trên.

- Với mỗi topic index zm,n, dựa vào phân phối từ ⃗⃗ , wm,n đƣợc sinh ra.

- ⃗⃗ đƣợc lấy mẫu một lần cho tồn bộ corpus.

Một số giả định đơn giản đƣợc thực hiện trong mơ hình cơ bản này, mộ trong số đĩ chúng ta lƣợc bỏ nhƣ sau: Đầu tiên, k chiều của phân phối Dirichlet (cũng là số chiều của biến chủ đề z) đƣợc giả định là đã biết và cố định. Thứ hai, xác suất từ đƣợc tham số hố bởi một ma trận kích thƣớc k V, trong đĩ | , bây giờ chúng ta coi nĩ là cố định và đƣợc ƣớc lƣợng.

Một biến ngẫu nhiên Dirichlet k chiều cĩ thể lấy các giá trị trong khoảng đơn (k -1) (chú ý, một viector k chiều nhƣ nằm trong khoảng đơn (k -1) nếu

∑ ), và cĩ mật độ xác xuất nhƣ sau:

| ∑

Trong đĩ, là một vector k chiều với các phần tử , và là hàm Gamma.

3.4. Học LDA với Gibbs sampling

Nhƣ ta thấy ở trên, trong thuật tốn Dirichlet ẩn, cần cĩ các tham số α và β, để sinh ra văn bản. Vậy nếu cĩ một tập các văn bản, thì làm thế nào để tính ngƣợc lại đƣợc α và β.

Hình 13. (Trái) Mơ hình độ hoạ biểu diễn của LDA. (Phải) Mơ hình đồ hoạ biểu diễn của phân phối biến đổi được sử dụng để xấp xỉ xác suất hậu nghiệm trong LDA

Trong suy luận và ƣớc lƣợng các tham số cho LDA, thì vấn đề then chốt mà chúng ta cần phải giải quyết để sử dụng LDA là phải tính đƣợc phân phối hậu nghiệm của các biến ẩn trong một tài liệu:

| |

Trên thực tế, xác suất này rất khĩ xác định do phải liệt kê và đếm tất cả các tổ hợp giá trị của w, , vì vậy cĩ các phƣơng pháp suy luận để xấp xỉ các phân phối này trong đĩ cĩ xấp xỉ Laplace, xấp xỉ Variational, và chuỗi Markov Monte Carlo (1999).

Việc ƣớc lƣợng các tham số trong mơ hình LDA đƣợc sử dụng phƣơng thức Bayes, cụ thể, cho một nhĩm các văn bản chúng ta hi vọng cĩ thể tìm đƣợc hai tham số và mà tối đa hố khả năng xảy ra của dữ liệu:

∑ |

Việc ƣớc lƣợng hai tham số và cịn đƣợc gọi là quá trình học LDA. Cĩ 3 chiến lƣợc để học LDA: EM (Estimation – Maximination) với suy diễn biến đổi, EM với nhân kỳ vọng (expectation propagation), Gibbs sampling. Trong bản đồ án này, em lựa chọn cách ƣớc lƣợng tham số bằng phƣơng pháp lấy mẫu Gibbs, cĩ hiệu suất tƣơng đƣơng với hai phƣơng pháp kia nhƣng ít bị tối ƣu hĩa cục bộ và tƣơng đối đơn giản hơn.

Gibbs sampling là một trong những phân lớp của phƣơng thức lấy mẫu, đƣợc gọi là Markov Chain Monte Carlo. Chúng ta sử dụng nĩ để lấy mẫu từ phân phối hậu nghiệm, p(Z|W).

Thuật tốn Gibbs sampling:

Điểm đáng lƣu ý của thuật tốn này khơng yêu cầu đầu vào α và β bởi vì chúng là các vector khơng. Sự đơn giản này là hợp lý bởi vì chúng ta cĩ giải thích các thuộc tính cộng hợp của Dirichlet và phân phối đa thức, nhƣ là αz và βt biểu diến số lần mà topic z và từ t đƣợc quan sát thấy trong tập dữ liệu huấn luyện.

Để đơn giản chúng ta sử dụng mảng 2 chiều NWZ[w,z] để chứa số từ w thuộc chủ để z xuất hiện : n(w,z).

Và NZM[z,m] để chứa số lƣợng chủ đề z xuất hiện trong văn bản m – số chủ đề k xuất hiện trong văn bản d.

Để đấy nhanh tính tốn, ta sử dụng một mảng một chiều NZ[z] để chứa n(z)=∑| – tổng số từ trong topic z của tất cả các văn bản.

Các bƣớc của thuật tốn

Bƣớc 1: Khởi tạo và lấy mẫu lần đầu

- Khởi tạo tất cả các biến đếm bằng 0 o NWZ

o NZM o NZ

- Với mỗi văn bản thứ thực hiện:

o Với mỗi từ thứ trong văn bản m thực hiện

 Lấy mẫu chủ đề zm,n ~ Mult(1/K) cho mỗi từ wm,n

 Tăng biến đếm tài liệu – topic: NZM[Zm,n,m]++

 Tăng biến đếm topic – từ: NWZ[wm,n, zm,n]++

 Tăng biến tổng số topic: NZ[wm,n, zm,n]++

o END

- END

Bƣớc 2: Quá trình lấy mẫu lặp lại cho đến khi đạt đƣợc một độ chính xác nhất định.

- WHILE. Lặp cho tới khi hội tụ

o Với mỗi văn bản thực hiện

 Với mỗi từ trong văn bản m, thực hiện:  NZM[zm,n,m]--

 NWZ[wm,n, zm,n]--  NZ[wm,n, zm,n]--

 Lấy mẫu chỉ số chủ đề ̃ theo cơng thức:

∑  NZM[ ̃ ,m]++  NWZ[wm,n, ̃ ]++  NZ[wm,n, ̃ ]++  END o END

//Quá trình kết thúc, đọc các tham số đầu ra

o Nếu hội tụ và lấy mẫu lặp lại L, thì đọc ra các tham số và theo cơng thức sau:

∑ ∑ - END WHILE

3.3.2. MapReduce hĩa lấy mẫu Gibbs cho LDA

Phân tích đặc trƣng của LDA và lấy mẫu Gibbs

Phân bố Dirichlet tiềm ẩn (LDA) đƣa ra giả thuyết rằng các tài liệu cĩ chứa các chủ đề với một xác suất nhất định, và các chủ đề này chứa các từ với một xác suất nhất định. Tập hợp các xác suất cĩ thể rất lớn và việc học đƣợc các xác suất này một cách chính xác cĩ liên quan từ tài liệu đến chủ đề, từ chủ đề đến từ, đây là một cơng việc cĩ khối lƣợng tính tốn rất lớn.[9]

Để tìm đƣợc các xác suất nêu trên, em sử dụng phƣơng pháp lấy mẫu Gibbs mà việc tìm kiếm các xác suất trên sử dụng các quy tắc xác suất. Những quy tắc này, hƣớng dẫn tìm kiếm theo hƣớng càng ngày càng tốt hơn cho tới khi tìm đƣợc kết quả nhƣ ý. Khi khơng gian tìm kiếm lớn, nên em đã cố gắng song song hố lấy mẫu Gibbs sử dụng mơ hình MapReduce và dựa vào khả năng quản lý file của Hadoop.

Trong phiên bản tuần tự của lấy mấu Gibbs cho LDA, thuật tốn cần duyệt qua nhiều văn bản từng từ từng từ một, gán cĩ xác suất một chủ đề cho một từ. Sau đĩ các biến đếm cho chủ đề của từ đĩ đƣợc cập nhật. Những biến đếm này chứa số lần xuất hiện của các từ đƣợc gán bởi một chủ đề và số lần chủ đề đƣợc gán cho một văn bản. Sau khi lặp lại qua tập các văn bản nhiều lần, các biến đếm sẽ hội tụ về một tỷ lệ chính xác. Nhƣng rất đáng tiếc là các biến đếm này đều là các biến đếm tồn cục và cần cho tất cả các máy sử lý, do đĩ khơng dễ dàng gì để song song hố thuật tốn lấy mẫu Gibbs.

Chiến lƣợc MapReduce hố

Trong chiến lƣợc song song hố lấy mẫu Gibbs của em, em chia các tài liệu vào trong các máy tính và giữ một bản sao của các biến đếm ở tất cả các máy. Khi các máy lặp qua các tài liệu và sau đĩ tất cả chúng đều cập nhật vào các biến đếm của mình. Điều này đƣợc lặp đi lặp lại nhiều lần cho đến khi số lƣợng hội tụ. Khi áp dụng mơ hình MapReduce, thì các tài liệu đƣợc xử lý bên trong hàm map và việc cập nhật các biến tồn cục sẽ đƣợc diễn ra trong hàm reduce.

Ngồi ra, ta cũng thấy trong từng bƣớc của thuật tốn Gibbs, do sự độc lập trong việc xử lý các tài liệu. Do vậy, ta cĩ thể thực hiện song song hố từng bƣớc nhỏ trong thuật tốn. Mỗi bƣớc đĩ đƣợc áp dụng mơ hình MapReduce theo cách riêng cho từng bƣớc. Ví dụ, nhƣ trong giai đoạn khởi tạo, với việc đếm số lần xuất hiện của từ và chủ đề, cĩ thể song song hố bƣớc nhỏ này bằng cách chia văn bản thành nhiều phần và đặt trên nhiều máy khác nhau, sau đĩ thực hiện đếm trên các văn bản này.

Nhƣ vậy với bài tốn lấy mẫu Gibbs cho LDA chúng ta cĩ hai chiến lƣợc để song song hố. Trên thực tế cịn cĩ thể cĩ nhiều chiến lƣợc khác nữa. Với mỗi chiến lƣợc sẽ cĩ thời gian thực hiện hay hiệu năng khác nhau. Chúng ta cần cài đặt và đánh giá từng chiến lƣợc để chọn một cách áp dụng mơ hình MapReduce cho thuật tốn của mình cĩ hiệu quả nhất.

Hình 14. Mơ hình thuật tốn lấy mẫu Gibbs

Khởi tạo các biến đếm

- Lấy một văn bản từ tập tất cả văn bản. - Sinh ngẫu nhiên chủ đề cho từng từ trong văn bản

- Cập nhật các biến đếm

- Lấy một văn bản từ tập tất cả văn bản. - Tính lại chủ đề của từng từ trong văn bản - Cập nhật lại các biến đếm Xét hết tồn bộ văn bản? No Yes Kết thúc Xét hết tồn bộ văn bản?

Tính độ hội tụ của các biến đếm

Biến đếm cĩ hội tụ khơng? No Yes No Yes

… …

Khởi tạo các biến đếm Lấy một văn bản từ tập văn bản thứ 1. Sinh chủ đề và cập nhật biến đếm Hết tập văn bản thứ 1 No Yes … Lấy một văn bản từ tập văn bản thứ 2. Sinh chủ đề và cập nhật biến đếm Hết tập văn bản thứ 2 Lấy một văn bản từ tập văn bản thứ 3. Sinh chủ đề và cập nhật biến đếm Hết tập văn bản thứ 3 Yes Yes No No Lấy một văn bản từ tập văn bản thứ 1’. Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 1’ No Yes … Lấy một văn bản từ tập văn bản thứ 2’. Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 2’ Lấy một văn bản từ tập văn bản thứ 3’. Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 3’ Yes Yes No No

Hình 15. Lưu đồ MapReduce hố thuật tốn lấy mẫu Gibbs - chiến lược 1

… …

Tổng hợp và

Tính độ hội tụ của các biến đếm

Kết thúc Biến đếm cĩ hội tụ khơng?

Yes No

Hình 16. Lưu đồ MapReduce hố lấy mẫu Gibbs - chiến lược 2

Khởi tạo các biến đếm Lấy một văn bản từ tập văn bản thứ 1. Sinh chủ đề và cập nhật biến đếm Tổng hợp các biến đếm Biến đếm hội tụ? No Kết thúc No Yes … Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 1? No Yes

Lƣu lại biến đếm

Lấy một văn bản từ tập văn bản thứ 2. Sinh chủ đề và cập nhật biến đếm Biến đếm hội tụ? No Yes Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 2? No Yes Lấy một văn bản từ tập văn bản thứ 3. Sinh chủ đề và cập nhật biến đếm Biến đếm hội tụ? No Yes Cập nhật chủ đề và cập nhật biến đếm Hết tập văn bản thứ 3? No Yes

Cụ thể

Giống nhƣ MapReduce hố k-means và Nạve Bayes, dữ liệu vẫn đƣợc vector hố, và lƣu dƣới dạng cặp key/value. Trong đĩ, key là số thứ tự của tài liệu. Trong phần này, số thứ tự của tài liệu rất quan trọng. Value là nội dung của tài liệu tƣơng ứng, đƣợc tổ chức dƣới dạng vector.

o Chiến lược áp dụng MapReduce vào từng phần của thuật tốn

Thuật tốn lấy mẫu Gibbs cho LDA nhƣ trên đƣợc chia thành 2 bƣớc: Bƣớc 1, khởi tạo và Bƣớc 2 là quá trình lặp lấy mẫu. Và các thành phần này cĩ thể song song hố đƣợc bằng phƣơng pháp sau:

Bƣớc 1: Khởi tạo và lấy mẫu lần đầu.

Bƣớc này, chúng ta cần gán ngẫu nhiên một chủ đề cho từng từ trong từng văn bản. Tuy các văn bản đƣợc xử lý độc lập, nhƣng để đơn giản, em khơng MapReduce hố bƣớc này. Bƣớc này, tạo ra một kểu key/value mới để dễ dàng sử lý hơn cho phần sau. Đĩ là, thay đổi kiểu value từ:

Từ thứ 1 Từ thứ 2 Từ thứ 3 … Từ thứ N

thành :

Từ thứ 1 Từ thứ 2 Từ thứ 3 … Từ thứ N

Chủ đề Chủ đề Chủ đề … Chủ đề

Trong đĩ “Chủ đề” là chủ đề tƣơng ứng đƣợc sinh ra cho các từ.

Cơng việc tiếp theo trong bƣớc này là khởi tạo các biến và đếm theo các chủ đề đƣợc sinh ra. Em áp dụng mơ hình MapReduce cho cơng việc này. Trong đĩ:

 Hàm map: tìm sự xuất hiện của từ và chủ đề, và đánh dấu sẽ tăng biến đếm tƣơng ứng lên 1.

o Đầu vào: key1/value1: Trong đĩ

key1: là số thứ tự của văn bản

value1: là nội dung của văn bản kèm theo chủ đề tƣơng ứng, nhƣ đã chuyển trong phần trên.

Một phần của tài liệu Đồ án: Mô hình Mapreduce và ứng dụng của Bigdata (Trang 41)