Đặt vấn đề● Có một tập rất lớn các bài viết hàng chục, hàng trăm nghìn bài viết => cần phân loại các bài viết ● Phân loại chủ đề giúp chúng ta đọc hiểu, lựa chọn và tìm kiếm những thông
Trang 2MÔ HÌNH CHỦ ĐỀ
1.
Trang 3Đặt vấn đề
● Có một tập rất lớn các bài viết (hàng chục, hàng trăm nghìn bài viết) => cần phân loại các bài viết
● Phân loại chủ đề giúp chúng ta đọc hiểu, lựa
chọn và tìm kiếm những thông tin có nội dung xác định nhanh và chính xác hơn.
Trang 4Mô hình chủ đề cơ bản
Văn bản
Tập văn bản Túi đựng từ(BoW)
Định nghĩa quy trình sinh
Ước lượng tham số
Ma trận N * K Biểu diễn văn bản-chủ đề
Ma trận K * V Biểu diễn chủ đề-từ
Huấn luyện
Kết quả
Trang 5Ví dụ
Trang 7Tổng quan một số mô
hình LDA
2.
Trang 8● Là một mô hình chủ đề
● Cải tiến từ LDA
Trang 9GK-LDA (2013) MDK-LDA (2010)
LDA (2003)
+Sử dụng tri thức đa miền
+Sử dụng tri thức độc lập miền
Trang 10Cấu trúc
● LDA: Khái niệm, mô hình
● MDK-LDA: Cải tiến về mô hình
● GK-LDA: Cải tiến về dữ liệu đầu vào
Trang 113.
Trang 12● Latent Dirichlet Allocation
● Bài báo: Latent Dirichlet Allocation (2003)
● Sử dụng làm nền tảng cho nhiều nghiên cứu sau này
LDA
Trang 15Các biểu diễn trong bài toán LDA
Trang 17● Đầu vào: Tập văn bản D
● Đầu ra: Tỉ lệ sinh ra được tập văn bản D
● Mục tiêu: Tìm các biến ẩn để tối đa hóa tỉ lệ sinh ra tập văn bản D
Quá trình sinh
Trang 18Mã giả
Trang 19Các tham số
Trang 21Plate notation
Trang 22Kết quả của mô hình
Tỉ lệ sinh ra được tập văn bản D theo quá trình sinh:
Trang 23Kết quả của mô hình
Trang 25Sau một số phép biến đổi:
=> Cần gán chủ đề (tìm Z) cho từng từ trong tập văn bản để công thức đạt giá trị lớn nhất
Trang 26Khó khăn
● Không có công thức trực tiếp để có thể tính ra được Z
● Ta không thể thử toàn bộ mọi cách gán các chủ đề cho từng từ
Trang 28Mô tả
Trang 29Áp dụng vào LDA
Trang 31Công thức
=
Trang 334.
Trang 34● MDK là viết tắt của Multi Domain Knowledge (tri thức đa miền)
● Bài báo: “Leveraging Multi-Domain Prior
Knowledge in Topic Models” (2010)
MDK-LDA
Trang 35● Với mỗi miền cần có tri thức mới
● Điều này là không mong muốn vì thực tế tri
thức cần được tích luỹ, tổng hợp để giải quyết một vấn đề mới.
Vấn đề của các mô hình chủ đề cũ
Trang 36● S-sets (semantic set): Tập những từ chung
Trang 38Mã giả
Trang 39Các tham số
Trang 41Plate notation
Trang 43Công thức Gibb sampling
Trang 44Ý nghĩa các giá trị
Là tham số của mô hình Generalized Pólya urn Mô hình này dùng để mô tả việc một từ khi được chọn, thì có khả năng cao hơn chọn lại các từ cùng s-set với nó
Trang 45Ý nghĩa các giá trị
Trang 465.
Trang 49Đóng góp
Trang 51Phương pháp - Hướng tiếp cận
● Thuật toán cơ sở làm nền móng vẫn là Gibbs
sampling (tương tự LDA)
● Về mặt cải tiến: Ý tưởng tương tự như MDK-LDA, đều
là bổ sung tri thức quan hệ ngữ nghĩa của các từ
Điểm khác biệt nằm ở
○ MDK-LDA: S-sets + Domain Dependent Knowledge
○ GK-LDA: LR-sets + General Knowledge
Trang 53Mã giả
Trang 54Các tham số
Trang 56Phương pháp - Các vấn đề với tri thức chung
có chứa 𝑤 đều không có ý nghĩa (sai) đối với miền)
để ước lượng độ chính xác của các LR-sets
Trang 57Phương pháp - Các vấn đề với tri thức chung
// Tính Word Correlation Matrix C
Với mỗi LR-set s thuộc {1 … S}
Với mỗi cặp {w, w’} thuộc s:
Tìm chủ đề tmax mà w’ có xác suất hiện lớn nhất Tính C s, w’, w = → độ tương quan của {w, w’}
// Ước lượng chất lượng của LR-set s với từ w
Nếu Q(s,w) < epsilon với mọi s, ta thêm LR-sets {w}
Trang 58Phương pháp - Các vấn đề với tri thức chung
nhưng lại sai ở miền khác
Trang 59Phương pháp - Hướng tiếp cận
Trang 60Đánh giá kết quả - Phương pháp
● Topic coherence → Chất lượng các chủ đề
trong cùng một chủ đề
● KL-Divergence → Tính riêng biệt của tập chủ đề
Trang 61Đánh giá kết quả - So sánh
Trang 62Thực nghiệm
6.
Trang 63Dữ liệu
● 2000 đánh giá (review) từ Amazon.com
● 4 miền: Camera, Cell Phone, Food, Computer
● LR-sets: Danh từ - Tính từ
Trang 64Thực nghiệm - Giới thiệu phần mềm
● Mã nguồn được công bố tại github của tác giả: https://github.com/czyuan/GKLDA
● Ngôn ngữ lập trình: Java
Trang 65Thực nghiệm - Giới thiệu dữ liệu
● Dữ liệu được công bố tại trang chủ của tác giả: https://www.cs.uic.edu/~zchen/
● Dữ liệu đã được chạy qua công cụ CoreNLP của đại học Stanford:
https://stanfordnlp.github.io/CoreNLP/
Trang 66Thực nghiệm - Xử lý dữ liệu
● Dữ liệu mẫu được trình bày dưới dạng XML, do
đó cần được chuyển đổi về dạng dữ liệu mà
chương trình xử lý được.
Trang 67Thực nghiệm - Quá trình
Trang 68● Mục tiêu: Đưa dữ liệu dưới dạng XML về 2 file dữ liệu
lần lượt là Domain.vocab và Domain.docs
○ Mỗi dòng trong Domain.docs đại diện cho một văn
bản, chứa một danh sách các id định danh cho các từ.
được phân cách bởi dấu “:”
Trang 69Thực nghiệm - Quá trình
Trang 70● Yêu cầu: Chỉ sử dụng các danh từ và tính từ để xây
dựng cặp L-R vì nó là đặc trưng của các topic và do động từ có mức độ nhiễu cao.
● Loại bỏ dấu câu, các từ dừng (stop words), số và các
từ xuất hiện ít hơn 5 lần trong 1 tập văn bản (corpus).
● Tên của domain cũng được loại bỏ do số lần xuất hiện nhiều, gây nên sự tương đồng giữa các topic.
Trang 71Thực nghiệm - Quá trình
Trang 72● Sau khi xử lý xong dữ liệu đầu vào thì ta có thể bắt đầu quá trình thực nghiệm.
● Mô hình được huấn luyện bằng cách sử dụng 2000 vòng lặp với số lần burn-in ban đầu bằng 200.
○ α = 1, β = 0.1, κ = 15
○ λ = 2000, σ = 0.2, τ = 1
Trang 73○ Domain.tassign: Chủ đề của mỗi từ trong tập văn bản.
○ Domain.twdist: Phân phối chủ đề tên tập từ
đề.
Trang 74Thực nghiệm - Kết quả
Trang 75● Script xử lý dữ liệu được viết bằng ngôn ngữ Python tại:
https://github.com/ngcaobaolong/GKLDA/blob/maste r/Data/Input/Dataset/datasets_extractor.py
● Script xử lý kết quả được viết bằng ngôn ngữ Python tại:
https://github.com/ngcaobaolong/GKLDA/blob/maste r/Data/Output/LearningIteration1/DomainModels/creat e_table.py
Trang 76Cảm ơn thầy và các bạn
đã lắng nghe