LDA là một giải thuật khai thác chủ đề tiềm ẩn đã và đang được áp dụng mạnh mẽ trong nhiều lĩnh vực như quảng cáo, tài chính, phân tích hành vi người dùng...Chính vì vậy việc nghiên cứu
Giới thiệu đề tài
Ngày nay với sự bùng nổ mạnh mẽ của công nghệ thông tin trong nhiều lĩnh vực đã tạo ra lƣợng dữ liệu khổng lồ, hằng ngày có đến hằng tỷ gigabyte dữ liệu phát sinh, trao đổi và chia sẻ qua mạng Đây là tiền đề của cuộc cách mạng dữ liệu
Các nhà nghiên cứu đã nhận định thế kỷ này là thế kỷ của dữ liệu siêu lớn – big data
Tiếp xúc với nguồn dữ liệu to lớn đó, con người xuất hiện nhu cầu tìm kiếm tri thức, con người không thể thao tác dữ liệu như cách truyền thống được Có rất nhiều bài toán phát sinh từ nhu cầu thiết yếu này và khai phá dữ liệu lấy ra các chủ đề tiềm ẩn là một trong số đó Phương pháp này sẽ giúp chúng ta tiết kiệm thời gian và công sức, không cần phải duyệt qua tất cả tập dữ liệu khổng lồ đó mà vẫn lấy đƣợc mẫu thông tin/tri thức cần thiết
Hướng nghiệp luôn luôn là một đề tài nóng, nhận được nhiều sự quan tâm từ xã hội, một bài toán mà hầu hết các bạn sinh viên phải đối mặt khi ra trường: làm thế nào để biết được xu hướng công việc ngoài xã hội trong vô vàn những thông tin tuyển việc trên mạng Internet
Tình trạng thiếu thông tin và khung nhìn vĩ mô về xu hướng phát triển nghề cũng là vấn đề của các doanh nghiệp nhỏ, dẫn đến khó khăn trong việc tuyển dụng, đầu tƣ dự án mới Để giải quyết phần nào những vấn đề trên, luận văn sẽ trình bày và đƣa ra giải pháp cho bài toán “Phát hiện chủ đề tiềm ẩn trong tập dữ liệu hướng nghiệp”, xây dựng một công cụ hữu ích trong việc tìm kiếm và phân tích trong lĩnh vực hướng nghiệp
Tập dữ liệu hướng nghiệp đầu vào sẽ được lấy từ page “Launch” trên Facebook với số lượng thành viên gần 20000 người và các trang tin tức về khởi nghiệp lớn nhƣ http://www.ictnews.vn/khoi-nghiep, http://www.vinacode.net/category/khoi-nghiep, http://www.pandora.vn/khoi- nghiep, http://www.action.vn/khoi-nghiep
Kết quả là những chủ đề hướng nghiệp tiềm ẩn, những thông tin tương thích với sở thích của người dùng, sẽ giúp sinh viên và nhà trường xác định được nhu cầu công việc hiện tại trong xã hội và xu hướng của nó trong tương lai.
Mục tiêu nghiên cứu đề tài
Thu thập dữ liệu từ page Launch trên Facebook và các trang tin tức về khởi nghiệp Với tập dữ liệu có đƣợc sẽ tiến hành quá trình xử lý ngôn ngữ tự nhiên, loại bỏ nhiễu, hình thành tập từ điển dữ liệu hướng nghiệp Sau đó áp dụng giải thuật LDA (Latent Dirichlet Allocation) kết hợp với các phương pháp xấp xỉ để xây dựng mô hình huấn luyện dữ liệu Thực hiện các mẫu dữ liệu kiểm tra chất lƣợng mô hình dữ liệu huấn luyện, có thể huấn luyện lại mô hình nếu độ lệch cao Áp dụng mô hình dữ liệu huấn luyện, đưa ra các chủ đề hướng nghiệp từ tập dữ liệu đầu vào của người dùng.
Phương pháp nghiên cứu
Tìm hiểu về phân tích, xử lý cú pháp tiếng Việt để xây dựng một tập các chủ đề và từ vựng tương ứng
Tìm hiểu các phương pháp được dùng hiện nay để rút trích các chủ đề tiềm ẩn
Tìm hiểu giải thuật LDA, các phương pháp xấp xỉ huấn luyện LDA và áp dụng vào bài toán dữ liệu hướng nghiệp.
Ý nghĩa của đề tài
Phát hiện chủ đề tiềm ẩn trong dữ liệu hướng nghiệp sẽ giúp cho sinh viên cũng như nhà trường biết được nhu cầu, xu thế công việc ngoài xã hội, từ đó trang bị kiến thức phù hợp để đáp ứng nhu cầu trên
Phát hiện chủ đề tiềm ẩn còn rất thực tế nếu đƣợc kết hợp trong việc tìm hiểu hành vi người dùng, áp dụng nhiều trong lĩnh vực quảng cáo, marketing.
Bố cục luận văn
Nội dung trình bày của luận văn gồm 5 chương, nội dung các chương như sau:
Chương này sẽ trình bày lý do chọn đề tài, mục đích nghiên cứu của đề tài, đối tượng và phạm vi nghiên cứu từ đó đưa ra phương pháp nghiên cứu được thực hiện trong luận văn
Chương 2: Cơ sở lý thuyết
Chương trình này sẽ trình bày phần tổng quan, những vấn đề lý thuyết về rút trích dữ liệu, giải thuật suy luận chủ đề tiềm ẩn, phương pháp ước lượng các tham số suy diễn Những kiến thức này sẽ là nền tảng đƣợc áp dụng trong việc giải quyết bài toán
Chương 3: Hướng tiếp cận của đề tài và giải pháp
Chương này luận văn sẽ trình bày chi tiết mô hình khai phá dữ liệu tiềm ẩn, cách thức áp dụng LDA để giải quyết bài toán khởi nghiệp
Chương 4: Kết quả thực nghiệm và đánh giá
Trình bày ứng dụng thực nghiệm, quá trình thực nghiệm, từ đó đánh giá và nhận xét kết quả thực nghiệm
Chương này sẽ tổng kết lại những công việc đã làm và đề xuất hướng phát triển của đề tài trong tương lai
2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Những phương pháp rút trích dữ liệu tiềm ẩn LSI (Latent Semantic Indexing) và pLSI (probabilistic Latent Semantic Indexing) – tiền thân của giải thuật LDA (Latent Dirichlet Allocation)
của giải thuật LDA (Latent Dirichlet Allocation) Đối với những tập văn bản lớn thì cần phải rút ngắn những văn bản có nhiều nội dung thành những câu, từ có ý nghĩa, bỏ những từ không cần thiết nhƣ stopwords (sẽ được trình bày chi tiết trong chương 3, phần xử lý dữ liệu) mà vẫn giữ đƣợc ý nghĩa của văn bản, việc này rất hữu ích cho các việc phân loại, kiểm tra, tổng kết văn bản, tìm kiếm những bài tương tự nhau …
Trong lĩnh vực/bài toán truy vấn thông tin - IR, ý tưởng trên được áp dụng vào ngày càng nhiều, giảm các tài liệu trong văn bản thành các vector số thực, mỗi tài liệu đƣợc biểu hiện bằng một vector số thực – các giá trị trong mỗi vector chính là tần suất xuất hiện tương ứng với từ đại diện so với tài liệu Phổ biến nhất là lược đồ TF-IDF (term frequency – inverse document frequency) một kỹ thuật thống kê, mục đích là phản ánh tầm quan trọng của các từ trong một tài liệu và trong một văn bản Nó thường được sử dụng như là các trọng số - weighting factor – trong lĩnh vực IR và khai phá dữ liệu văn bản Giá trị TF-IDF tăng hàm ý số lần mà từ đó xuất hiện trong tài liệu nhiều TF-IDF là tích của 2 giá trị thống kê:
tf – term frequency là tần suất xuất hiện của từ trong tài liệu, đƣợc tính theo công thức [8]
* ( + + với K là giá trị của phân phối chuẩn, f(t,d) là tần số xuất hiện của từ t trong tài liệu d và max{f(w,d)} là tần số xuất hiện nhiều nhất của một từ trong tài liệu d
idf – inverse document frequency: đƣợc tính theo công thức
* + với N là tổng số tài liệu trong tập văn bản – D và mẫu là số lƣợng tài liệu mà chứa từ t
Sử dụng TF-IDF thay vì TF để giảm trọng số của những từ xuất hiện nhiều nhƣng ít quan trọng và tăng trọng số của những từ ít xuất hiện nhƣng quan trong Áp dụng TF-IDF đƣợc kết quả cuối cùng là một ma trận từ - tài liệu X, với mỗi cột là giá trị TF-IDF tương ứng cho mỗi tài liệu trong văn bản TF-IDF chuyển tập tài liệu có chiều dài bất kỳ thành một danh sách các số có chiều dài cố định
Sau đây là một ví dụ về TF-IDF, giả sử ta có hai tài liệu d1 và d2, tương ứng có các từ và tầng suất của mỗi từ trong tài liệu nhƣ sau:
Ta tính giá trị tf-idf một từ bất kỳ trong tài liệu, giả sử từ “example”: tf(example, d2) = 3 idf(example, D) = log(2/1) = 0.301 tf-idf(example, d2) = tf(example, d2) * idf(example, D)
Việc sử dụng TF-IDF là để rút trích, giảm việc xử lý từ trong văn bản, chuyển văn bản từ text sang định dạng số, đặc biệt là xác định một tập cơ bản các từ để phân biệt giữa các tài liệu trong văn bản, tuy nhiên cách này còn những hạn chế như cung cấp một số lượng tương đối nhỏ trong việc giảm chiều dài văn bản, thể hiện ít cấu trúc thống kê bên trong mỗi tài liệu Để giải quyết vấn đề này, các nhà nghiên cứu IR đã đề xuất các kỹ thuật giảm chiều khác, nổi bật là LSI (Latent semantic indexing)
Thông thường, thông tin được rút trích bằng nghĩa đen của một số từ trong tài liệu, tuy nhiên phương pháp rút trích dựa vào nghĩa của từ không chính xác khi xuất hiện của các từ đồng nghĩa và đa nghĩa nhất là khi đƣa vào từng ngữ cảnh của người dùng Một cách tiếp cận tốt hơn là cho phép người dùng lấy thông tin dựa trên cơ sở về chủ đề ý niệm hay ngữ nghĩa của tài liệu LSI là một cách tiếp cận nhƣ vậy, là một phương pháp duyệt và chỉ mục, sử dụng mô hình toán học SVD
(Singular Value Decomposition), được rút trích từ ma trận kết quả X của phương pháp tf-idf để xác định các dạng mẫu – patterns - trong quan hệ giữa các từ và khái niệm đƣợc chứa trong văn bản không cấu trúc
LSI giả định rằng có một số cấu trúc tiềm ẩn trong cách sử dụng từ bị che khuất một phần bởi biến đổi trong việc lựa chọn từ ngữ Một vết cắt SVD đƣợc sử dụng để ƣớc tính cấu trúc từ đƣợc sử dụng trong tài liệu, sau đó đƣợc khôi phục lại bằng cách sử dụng cơ sở dữ liệu của các giá trị đơn và các vectors đạt đƣợc từ vết cắt SVD Biểu hiện của dữ liệu cho thấy rằng các vectors đƣợc suy luận từ thống kê chỉ định ý nghĩa rõ ràng hơn tổ hợp các từ riêng biệt
Một sự cải tiến của LSI đó là pLSI (probabilistic LSI), phương pháp này mô hình mỗi từ trong tài liệu nhƣ là một mẫu từ mô hình hỗn hợp – a sample from a mixture model – các thành phần hỗn hợp là các biến ngẫu nhiên đa thức - multinomial random variables - đƣợc xem nhƣ là đại diện cho các chủ đề Do vậy mỗi từ đƣợc tạo nên từ một chủ đề duy nhất, và các từ khác nhau trong một tài liệu có thể đƣợc tạo từ nhiều chủ đề khác nhau Mỗi tài liệu đƣợc biểu diễn nhƣ là một phân phối xác suất các chủ đề trên một tập cố định các chủ đề Phương pháp pLSI là một bước tiến quan trọng đối với mô hình xác suất văn bản, tuy nhiên mô hình vẫn chƣa hoàn thành, chƣa cung cấp đƣợc mô hình xác suất ở mức nhiều tài liệu Trong pLSI, mỗi tài liệu đƣợc biểu diễn bởi một tập các số (tỉ lệ pha trộn các chủ đề) và không có mô hình xác suất sinh cho tập số này Điều này dẫn đến những vấn đề sau:
Số lượng tham số mô hình sẽ tăng lên tuyến tính với kích thước tài liệu, dễ dẫn đến vấn đề “overfitting” – tức là mô hình thống kê thay vì thể hiện các mối quan hệ tiềm ẩn sẽ thể hiện các đặc điểm lỗi và nhiễu, việc này dễ xảy ra khi mô hình phức tạp, có quá nhiều tham số liên quan tới các biến quan sát
Không rõ ràng, khó để gán xác suất cho một tài liệu ngoài tập huấn luyện
Vậy làm thế nào để có mô hình xác suất trên nhiều tài liệu, cải thiện pLSI, chúng ta hãy xem xét các giả định xác suất cơ bản - fundamental probabilistic assumptions – làm cơ sở cho lớp các phương pháp giảm chiều tài liệu, bao gồm cả
LSI và pLSI Tất cả các phương pháp đều dựa trên giả định túi các từ - bag of words – trong đó thứ tự các từ trong tài liệu bị phớt lờ Trong ngôn ngữ của lý thuyết xác suất, đây là một giả định mang tính hoán chuyển – exchangeability – cho các từ trong tài liệu [1] Hơn nữa phương pháp cũng giả định các tài liệu cũng có tính hoán chuyển và thứ tự các tài liệu cũng đƣợc bỏ qua
Lý thuyết biểu diễn của Finetti – 1990 [2] qui định rằng bất kỳ một tập hợp của các biến ngẫu nhiên hoán chuyển - exchangeable random variables - nào cũng có một phân phối hỗn hợp – mixture distribution Vì thế nếu chúng ta muốn xem xét các biểu diễn có tính hoán chuyển – exchangeable representations – cho các tài liệu, các từ thì chúng ta phải xem xét mô hình hỗn hợp – mixture models – một mô hình thể hiện khả năng hoán chuyển của các từ và các tài liệu
Một điều quan trọng cần phân biệt là giả định tính hoán chuyển không tương đương với phân phối độc lập tương đồng của các biến ngẫu nhiên Thay vào đó, tính hoán chuyển có thể được hiểu là một phân phối độc lập tương đồng có điều kiện, điều kiện có thể đƣợc xem nhƣ là một tham số tiềm ẩn nằm bên trong một phân bố xác suất Hoán chuyển là một giả định đơn giản hoá chính trong lĩnh vực mô hình văn bản và nguyên lý của nó giúp hình thành nên các phương pháp tính toán hiệu quả.
Phương pháp LDA (Latent Dirichlet Allocation)
Định nghĩa LDA 18
Trong lĩnh vực xử lý ngôn ngữ tự nhiên, LDA là một mô hình sinh mẫu - generative model, cho phép các tập quan sát đƣợc giải thích bởi nhóm tiềm ẩn – unobserved group, giải thích tại sao một vài dữ liệu tương tự nhau (các từ được nhóm chung trong một chủ đề)
LDA là một mô hình Bayesian phân cấp 3 lớp – three level hierarchical Bayesian model – trong đó mỗi tài liệu trong tập tài liệu đƣợc mô hình nhƣ là một sự kết hợp hữu hạn trên tập các chủ đề - topics Mỗi chủ đề lại đƣợc mô hình nhƣ là một sự kết hợp các từ trên tập xác suất chủ đề - topic probabilities Trong ngữ cảnh của mô hình văn bản – text modeling, tập xác suất chủ đề cung cấp một đại diện rõ ràng của một tài liệu, hay nói khác hơn thì mỗi tài liệu sẽ đƣợc biểu diễn bởi một phân phối xác suất các chủ đề
LDA cũng là một ví dụ cho mô hình chủ đề và nó đƣợc đề cập lần đầu nhƣ là một mô hình đồ hoạ - graphical model - cho bài toán khai phá chủ đề.
Giải thuật LDA 19
Trong xác suất và thống kê, phân phối Dirichlet thường được ký hiệu là ( ) cùng một họ với phân bố xác suất liên tục đa biến - continuous multivariate probability distributions, đƣợc tham số bởi một vector các số thực dương Phân phối Dirichlet thường được sử dụng như là phân phối tiền định trong thống kê Bayesian
Phân phối Dirichlet có hàm mật độ xác suất - probability density function – trả về xác suất của K sự kiện (i: 0…K-1) với mỗi sự kiện đƣợc quan sát/giám sát -1 lần
Phân phối Dirichlet với K tham số ,…, >0 (k>=2) có hàm mật độ xác suất đƣợc biểu diễn trên không gian số thực Euclidean k-1 chiều nhƣ sau:
Trong đó hằng số ( ) đƣợc biểu diễn:
2.2.2.2 Các chủ đề tiềm ẩn trong LDA
Trong LDA, mỗi tài liệu đƣợc xem là tổ hợp các chủ đề, sử dụng Dirichlet làm phân phối chủ đề
Ví dụ, một mô hình LDA có các chủ đề đƣợc phân lớp thành “CAT_related” và “DOG_related” Mỗi chủ đề có các xác suất cho các từ tạo thành, chẳng hạn nhƣ các từ “milk, meow, kitten” sẽ đƣợc phân lớp và thông dịch tới chủ đề
“CAT_related” Hiển nhiên, từ “cat” sẽ có xác suất cao nhất trong chủ đề Chủ đề
“DOG_related” tương tự cũng có xác suất cho các từ tạo thành, và những từ
“puppy, bark, and bone” sẽ có xác suất cao trong chủ đề
Các từ không có liên quan đặc biệt (function word) cũng sẽ có xác suất nhất định (có thể đƣợc đặt trong một danh mục riêng rẽ) Một từ có thể xuất hiện ở nhiều chủ đề khác nhau và tương ứng sẽ có xác suất khác nhau
Mỗi tài liệu được đặc trưng bởi một tập các chủ đề cụ thể Điều này tương tự nhƣ giả định mô hình túi các từ và làm cho các từ có tính hoán chuyển đƣợc
Hình 1: Mô hình LDA cơ bản
Hình chữ nhật ở ngoài đại diện cho tài liệu, trong khi đó hình chữ nhật ở trong đại diện cho quá trình lặp chọn các chủ đề và từ trong một tài liệu M là số lƣợng tài liệu và N là số lƣợng các từ trong tài liệu
α là tham số của phân phối xác suất tiền định Dirichlet – prior probability distribution, đƣợc áp dụng cho phân phối chủ đề của mỗi tài liệu
β là tham số của phân phối xác suất tiền định, đƣợc áp dụng cho phân phối các từ trên chủ đề
là phân phối chủ đề cho tài liệu i,
là phân phối từ cho chủ đề k,
là chủ đề cho từ thứ j trong tài liệu i,
là một từ thứ j trong tài liệu i thể hiện các biến quan sát đƣợc, và các biến khác là các biến tiềm ẩn
Hầu hết, mô hình LDA cơ bản sẽ đƣợc mở rộng đến phiên bản làm mịn – smoothed
LDA- để đạt đƣợc kết quả chính xác hơn
Hình 2: Mô hình LDA mịn
K là số lƣợng các chủ đề đƣợc chọn để xem xét trong mô hình và là ma trận Markov K*V (với V là chiều của từ vựng – số lƣợng các từ khác nhau trong tập văn bản), mỗi dòng trong ma trận thể hiện phân phối từ trong một chủ đề
Quá trình sinh mẫu đó là các tài liệu đƣợc đại diện nhƣ là hỗn hợp ngẫu nhiên trên tập các chủ đề tiềm ẩn, mỗi chủ đề đƣợc đặc trƣng bởi một phân phối trên các từ LDA giả định quá trình gán chủ đề tiềm ẩn cho một văn bản D gồm M tài liệu, mỗi tài liệu có chiều dài nhƣ sau:
Chọn ( ) , với * + và ( ) là phân phối
Dirichlet cho tham số α - là phân phối chủ đề cho tài liệu i
Chọn ( ) , với * + và ( ) là phân phối Dirichlet cho tham số - là phân phối từ trong chủ đề k
Với mỗi từ ở vị trí i và j , với * +, và * + o Chọn một chủ đề ( ) - phân phối xác suất đa thức o Chọn một từ ( ) Để minh hoạ cho quá trình trên, chúng ta hãy xem một ví dụ lấy top 15 từ trong 4 chủ đề sử dụng LDA trên tập dữ liệu về một quỹ tài trợ
Hình 3: Ví dụ quá trình sinh mẫu LDA
Cho một tập dữ liệu về quỹ tài trợ sau:
“The William Randolph Hearst Foundation will give $1,25 million to Lincoln
Center, Metropolitan Opera Co., New York Philharmonie and Juilliard School
"Our board felt that we had a real opportunity to make a mark on the future of the performing arts with these grants an act every bit as important as our traditional areas of support in health, medical research, education and the social services,"
Hearst Foundation President Randolph A.Hearst said Monday in announcing the grants Lincoln Center's share will be $200,000 for its new building, which will house young artists and provide new public facilities The Metropolitan Opera Co and New York Philharmonic will receive $400,000 each The Juilliard School, where music and the performing arts are taught, will get $250,000 The Hearst Foundation, a leading supporter of the Lincoln Center Consolidated Corporate Fund, will make its usual annual $100,000 donation, too.”
Quá trình LDA trên một tập dữ liệu về quỹ tài trợ nhƣ sau:
Xác định số lƣợng chủ đề trên tập dữ liệu, ở đây số lƣợng chủ đề trên tập dữ liệu quỹ tài trợ là K = 4 (số lƣợng chủ đề dựa vào độ phủ tập dữ liệu huấn
Suy diễn và ƣớc lƣợng tham số trong LDA 23
Chọn tham số cho phân phối Dirichlet – phân phối chủ đề trên tập dữ liệu, mặc định = 50 / K (K là số lƣợng chủ đề)
Chọn tham số cho phân phối Dirichlet – phân phối từ trên chủ đề, mặc định 0.1
Với mỗi từ w trong tài liệu, dựa vào phân phối đa thức z ta biết đƣợc chỉ số chủ đề mà từ đó thuộc về (chẳng hạn nhƣ trong hình thì từ “MUSICAL” thuộc về chủ đề có chỉ mục đầu tiên - Art)
Kết quả cuối cùng ta sẽ biết đƣợc danh sách các từ thuộc về từng chủ đề và trọng số tương ứng Dựa vào ý nghĩa của từ và trọng số, ta sẽ gán nhãn tương ứng cho từng chủ đề
Nhƣ trong “topic 1”, các từ “million, budget, billion, federal, spending” có trọng số cao và cùng hướng về một chủ đề đó là “Budgets”, vì vậy nhãn của
Topic 0 Arts Topic 1 Budgets Topic 2 Children Topic 3 Education New, film, show, music, movie, play, musical, best, actor, first
Million, tax, program, budget, billion, federal, year, spending, new, state
Children, women, people, child, years, families, work, parents, says, family
School, students, schools, education, teachers, high, public, teacher, bennett, manigat
2.2.3 Suy diễn và ƣớc lƣợng tham số trong LDA
Vấn đề then chốt trong mô hình chủ đề là suy diễn/suy luận hậu nghiệm - posterior inference Phần này sẽ tìm hiểu cách suy diễn và ƣớc lƣợng tham số của giải thuật LDA
Vấn đề suy diễn quan trọng cần giải quyết trong LDA đó là tính toán phân phối hậu định - posterior distribution - của các biến tiềm ẩn trong tài liệu:
Phân phối ở trên chƣa đƣợc khai triển, còn ở dạng tổng quát nên khó trong việc tính toán
Dickey – 1983 [3] đã viết lại phân phối xác suất ở mẫu số theo dạng mô hình thông số - model parameters
Cách biểu diễn này cũng khó giải quyết vì sự dính liền – coupling – giữa θ and β trên tập các chủ đề tiềm ẩn Dickey đƣa ra cách biểu diễn này mục đích là kỳ vọng một sự mở rộng cụ thể của phân phối Dirichlet có thể đƣợc đại diện bởi phân phối xác suất siêu bội – hypergeometric Phân phối xác suất siêu bội sử dụng với các biến rời rạc nhằm xác định số “successes” trong dãy n phép thử đƣợc rút ra từ một tập toàn thể hữu hạn, trong trường hợp này là xác suất xuất hiện từ w tương ứng với bộ tham số
Mặc dù phân phối xác suất sau rất khó để suy diễn chính xác, dẫn đến có các giải thuật suy diễn xấp xỉ đƣợc xem xét áp dụng cho LDA, chẳng hạn nhƣ xấp xỉ
Laplace, xấp xỉ biến phân và Markov Chain Monte Carlo [18] Chúng ta có thể áp dụng các kỹ thuật suy luận gần đúng - approximate inference techniques - đối với các vấn đề, bao gồm cả suy diễn biến phân - variational inference [1] và Gibbs Sampling [17]
2.2.3.1.1 Suy diễn biến phân Ý tưởng cơ bản của suy luận biến phân lồi là sử dụng các bất đẳng thức của Jensen để đạt được một cận dưới có thể điều chỉnh dựa vào hàm log likelihood [1]
Cần thiết phải đánh chỉ mục của tập các thông số biến phân khi xem xét các giá trị cận dưới (các thông số biến thiên này được chọn bởi một qui trình tối ưu hoá)
Một cách đơn giản để có được tập cận dưới là xem xét thay đổi mô hình đồ hoạ ban đầu: bỏ bớt một số cạnh và nút
Hãy xem xét mô hình LDA, sự dính liền giữa θ and β bởi vì có các cạnh giữa θ, z, và w Bằng cách bỏ các cạnh này và gắn thêm vào mô hình những thông số biến phân tự do, sẽ hình thành một họ phân phối trên các biến tiềm ẩn
Hình 4: (Bên trái) Mô hình LDA (Bên phải) Mô hình suy diễn biến phân
Họ phân phối này đƣợc đặc trƣng bởi phân phối biến phân sau đây: trong đó thông số ϒ và các thông số đa thức ( 1 , , N ) là những thông số biến phân tự do
Sau khi có được một họ các phân phối xác suất đơn giản, bước tiếp theo là giải quyết vấn đề tối ƣu hoá để xác định các giá trị của các thông số biến phân ϒ và
Bài toán chuyển thành giải hàm số sau:
(1) Nhƣ vậy giá trị tối ƣu hoá các thông số biến phân đƣợc hình thành bằng cách giảm thiểu sự phân kỳ Kullback- Leibler – KL - giữa phân phối biến phân và phân phối hậu định p(θ,z|w,α,β) Sự giảm thiểu này có thể đƣợc thực hiện thông qua phương pháp lặp điểm cố định - iterative fixed-point method Cụ thể, bằng cách tính toán các dẫn xuất của phân kỳ KL và cài đặt chúng bằng 0, chúng ta có đƣợc cặp phương trình sau:
(2) (3) với trong đó Ψ là đạo hàm bậc nhất của hàm log γ, đƣợc tính toán thông qua xấp xỉ Taylor
Phương trình (2) và (3) có một sự giải thích thú vị Cập nhập Dirichlet là phân phối xác suất hậu định, nhận đƣợc giá trị mong đợi từ phân phối biến phân E[z n | n ] Cập nhập multinomial - phân phối đa thức – giống nhƣ sử dụng định lý Bayes p(z n |w n ) ~p(w n |z n )p(z n ), trong đó p(z n ) là giá trị hàm mũ kết hợp với logarit và phân phối biến phân - E q [log(θ i )|ϒ] Điều quan trọng cần chú ý đó là phân phối biến phân thật sự là một phân phối có điều kiện, đa dạng nhƣ là một hàm của w Điều này xảy ra bởi vì vấn đề tối ưu trong phương trình (1) thực hiện cho w cố định và do đó tạo ra các thông số tối ƣu hoá (γ*,Φ*) – đó là hàm của w Chúng ta có thể viết kết quả của phân phối biến phân nhƣ sau q(Φ,z | γ* (w), Φ* (w)), thể hiện sự phụ thuộc vào w là rõ ràng Do đó phân phối biến phân có thể đƣợc xem là xấp xỉ với phân phối xác suất sau p(θ,z|w,α,β)
Trong ngôn ngữ văn bản, các thông số tối ƣu (γ * (w),φ * (w)) thể hiện một tài liệu cụ thể Cụ thể, xem các thông số Dirichlet γ * (w) nhƣ là một đại diện của tài liệu:
Hình 5: Giải thuật suy diễn biến phân LDA
Tóm tắt thủ tục suy diễn biến phân ở hình trên, bắt đầu bằng việc khởi tạo γ and φn Từ mã giả ở trên, có thể thấy rõ ràng mỗi lần lặp của suy diễn biến phân cho giải thuật LDA đòi hỏi O((N + 1)k) thao tác Theo kinh nghiệm, số bước lặp đòi tổng số thao tác cơ bản trên thứ tự N 2 k
Phát biểu bài toán
Xây dựng mô hình khai phá chủ đề tiềm ẩn từ tập dữ liệu hướng nghiệp, dựa vào mô hình đó phân tích chủ đề tiềm ẩn với dữ liệu đầu vào các mẫu dữ liệu khởi nghiệp.
Mô hình ứng dụng
Hình 10: Mô hình ứng dụng
Dựa vào mô hình, có thể chia ứng dụng thành nhiều thành phần – module - nhƣ sau:
- Thu thập dữ liệu khởi nghiệp - Tiền xử lý dữ liệu: loại bỏ stopwords (là những từ có tuần suất xuất hiện nhiều trong câu nhƣng không đóng góp ý nghĩa trong câu nhƣ từ nối câu, giới từ…) và các thành phần từ trong câu không có ý nghĩa
- Tổ chức và lưu trữ dữ liệu - Xử lý dữ liệu, huấn luyện mô hình Phần tiếp theo sẽ trình bày cụ thể các thành phần của ứng dụng
Các thành phần ứng dụng
Thu thập dữ liệu khởi nghiệp 33
Thu thập dữ liệu từ Facebook và 4 websites tin tức về khởi nghiệp http://www.ictnews.vn/khoi-nghiep, http://www.vinacode.net/category/khoi-nghiep, http://www.pandora.vn/khoi-nghiep, http://www.action.vn/khoi-nghiep
Sử dụng API để lấy dữ liệu từ page “Launch” – đây là một trang chia sẽ thông tin khởi nghiệp với số lƣợng thành viên hơn 20000
Kích thước dữ liệu: 2867 bài posts và 20703 bài comments
Dữ liệu API trả về có dạng JSON gồm danh sách các bài post Mỗi bài post cũng là một object JSON gồm id của bài post, định danh tác giả của bài post, tin nhắn của bài post và một danh sách các bài comments (bài bình luận) Tương tự bài comment cũng là một object JSON gồm id của bài comment, định danh người bình luận và nội dung phần bình luận id Định danh của bài post from Chứa tên và định danh người dùng đăng bài to Định danh group “Launch” message Nội dung bài post privacy Chứa thông tin quyền riêng tƣ actions Chứa thông các thao tác trên bài post: like, comment type Dạng bài post – “status” created_time Thời gian đăng bài updated_time Thời gian cập nhập bài is_hidden Cài đặt ẩn is_expired Cài đặt hết hạn likes Chứa thông tin người dùng “like”, bao gồm tên và định danh người dung comments Chứa thông tin các bài bình luận
Bảng 1: Cấu trúc các thành phần bài post – API Facebook id Định danh bài bình luận from Chứa tên và định danh người dùng bình luận message Nội dung bài bình luận can_remove Cài đặt xoá bỏ created_time Thời gian bình luận like_count Số lƣợng “like” cho bài bình luận user_likes Thông tin người dùng “like”
Bảng 2: Cấu trúc các thành phần bài bình luận – API Facebook
Hình 11: Chi tiết định dạng JSON của dữ liệu Facebook
3.3.1.2 Nguồn dữ liệu thu thập
Thu thập dữ liệu từ 4 trang tin tức về khởi nghiệp ở Việt Nam http://www.ictnews.vn/khoi-nghiep, http://www.vinacode.net/category/khoi-nghiep, http://www.pandora.vn/khoi-nghiep, http://www.action.vn/khoi-nghiep
Kích thước dữ liệu: 631 bài, trong đó ictnews.vn: 462 bài, vinacode.net: 92 bài, pandora.vn: 43 bài và action.vn: 34 bài
Cách thức thu thập dữ liệu
Dựa vào trang chủ sẽ lấy thông tin URL về bài viết chi tiết và thông tin URL phân trang, đệ quy việc làm này đối với các URLs phân trang chúng ta sẽ lấy đƣợc toàn bộ URLs về bài viết chi tiết
Thông tin URLs bài viết chi tiết và URL phân trang được lưu tương ứng 2 index trong ElasticSearch là url_info và url_paging
Lý do chọn ElasticSearch làm nơi lưu trữ thông tin URLS vì:
- Hỗ trợ tìm kiếm đầy đủ - full text search, dễ dàng truy vấn dữ liệu theo nhiều kiểu nhƣ truy vấn chính xác, truy vấn pattern
- Cho phép lưu đoạn văn thành những từ (token), nhóm các token liên quan với nhau, loại bỏ những stopwords gây nhiễu nội dụng
- Dễ dàng mở rộng thì dữ liệu URLs lớn
Cấu trúc index url_paging
Hình 12: Cấu trúc index url_paging
Index này dùng để lưu các thông tin URLs phân trang như domain, chi tiết URL và một field isCrawler để kiểm tra trạng thái URL này đã đƣợc thu thập thành công hay không Định thời ứng dụng sẽ dựa vào field isCrawler để thu thập URLs về bài viết chi tiết – được lưu trong index url_info
Việc thu thập URLs phân trang dựa trên một pattern (đường dẫn X- path) tương ứng cho mỗi domain Chi tiết pattern được liệt kê trong bảng sau:
Domain Pattern – Xpath ictnews.vn div#content > div.wrapper > div.left > div.paging > a vinacode.net div#page > div#main > section#primary
> div#content > nav > div > a pandora.vn div.container > div.row > div.span9 > ul
> li.pull-left > a action.vn div.container-fluid > div.row-fluid > div.column_container > div.page-nav > a
Bảng 3: Bảng dữ liệu pattern url_paging của các websites
Index này sử dụng hash{url} là khoá chính cho mỗi tài liệu (mỗi tài liệu này tương ứng thông tin một URL)
Dưới đây là hình ảnh về dữ liệu được lưu trong index url_paging
_index _type domain hashUrl url isCrawl er url_paging crawler Ictnews.vn 2148938339876
883200 http://ictnews.vn/khoi- nghiep/trang-20
1 url_paging crawler Pandora.vn 5629940424798
542000 http://pandora.vn/khoi- nghiep/2
1 url_paging crawler Vinacode.net 4688443604372
626000 http://vinacode.net/category/ khoi-nghiep/page/2
1 url_paging crawler Action.vn 4233153821303
141000 http://www.action.vn/khoi- nghiep/page/2
Hình 13: Dữ liệu mẫu index url_paging
Cấu trúc index url_info
Hình 14: Cấu trúc index url_info
Index này dùng để lưu các thông tin URLs chi tiết bài viết, quan trọng nhất là field data chứa nội dung của bài viết Tương tự như index url_paging có một field isCrawler để kiểm tra trạng thái URL này đã đƣợc thu thập thành công hay không Định thời ứng dụng sẽ dựa vào field isCrawler để thu thập dữ liệu bài viết chi tiết, sau đó cập nhập lại field data và trạng thái thành công trên field isCrawler
Việc thu thập URLs về bài viết chi tiết dựa trên một pattern (đường dẫn X-path) tương ứng cho mỗi domain Chi tiết pattern được liệt kê trong bảng sau:
Domain Pattern – Xpath ictnews.vn div#content > div.wrapper > div.left > div#listArticles > div.articleItem vinacode.net div#page > div#main > section#primary
> div#content > article pandora.vn div.container > div.row > div.span9 > div action.vn div.container-fluid > div.row-fluid > div.column_container > div.row-fluid
Bảng 4: Bảng dữ liệu pattern url_info của các websites
Index này cũng sử dụng hash{url} là khoá chính cho mỗi tài liệu
Dưới đây là hình ảnh về dữ liệu được lưu trong index url_info
_index _type domain hashUrl url data isCrawler url_info crawler Ictnews.vn 76664358695136
06000 http://ictnews.vn/k hoi-nghiep/khong- the-de-startup- ngoi-o-viet-nam- dong-thue-cho- nuoc-ngoai- 129064.ict
Không thể để startup ngồi ở Việt Nam, đóng thuế cho nước ngoài
1 url_info crawler Pandora.vn 19798116246496
6880 http://pandora.vn/n am-2014-start-up- viet-can-lam- nhung-cu-hich- bDomcrjepdPhb.ht ml
Năm 2014, Start- up Việt cần lắm những cú hích Bài hấp dẫn?
07/01/2014 - để đƣợc cập nhật tin công nghệ chuyên sâu và nóng hổi
1 url_info crawler Action.vn 69110596830634
59000 http://www.action. vn/coffee-chat- khoi-nghiep-tai- singapore-nhung-
Tiến sĩ Lim Kuo- yi, CEO của Infocomm Investment
1 dieu-ban-quan- tam.html
(IIPL), chia sẻ kinh nghiệm làm thế nào
Hình 15: Dữ liệu index url_info
Tiền xử lý dữ liệu 40
Stopwords là những từ quá phổ biến, quá chung chung, không đóng góp vào việc hình thành nghĩa trong câu, vì vậy dữ liệu khởi nghiệp đã thu thập từ Internet sẽ đƣợc loại bỏ stopwords và những thành phần trong câu không có ý nghĩa
Sử dụng thƣ viện VN-tagger để phân tích cú pháp của câu và chỉ lấy những thành phần có ý nghĩa trong câu nhƣ chủ ngữ, động từ, tân ngữ…
Hình 16: Phân tích cú pháp câu
Dữ liệu sau khi qua giai đoạn phân tích cú pháp, hình thành nên các từ liên quan (Tags) và được gán nhãn tương ứng Dựa vào nội dụng những Tags ta sẽ loại bỏ những từ không đóng góp nhiều vào ý nghĩa của dữ liệu, cụ thể trong ứng dụng những tags bị loại bỏ: "/E", "/M", "/R", "/C", "/I", "/T", "/Y", "/X", "/Mrk"
1 N: Noun (danh từ) 2 Np: Personal Noun (danh từ riêng)
3 Nc: Classification Noun (danh từ chỉ loại)
4 Nu: Unit Noun (danh từ đơn vị) 5 V: verb (động từ)
6 A: Adjective (tính từ) 7 P: Pronoun (đại từ) 8: L: attribute (định từ) 9 M: Numeral (số từ) 10 R: Adjunct (phụ từ) 11 E: Preposition (giới từ)
12 C: conjunction (liên từ) 13 I: Interjection (thán từ)
14 T: Particle, modal particle (trợ từ, tiểu từ)
15 B: Words from foreign countries (Từ mượn tiếng nước ngoài ví dụ Internet, ) 16 Y: abbreviation (từ viết tắt)
17 X: un-known (các từ không phân loại đƣợc)
18 Mrk: punctuations (các dấu câu)
Bảng 5: Bảng dữ liệu định nghĩa về Tags
Xử lý dữ liệu 41
Dữ liệu được tổ chức lưu trữ trong HBase HBase được lựa chọn vì các lý do sau: o Là một NoSQL hoạt động trên nền tảng HDFS, tương thích với Mahout - một thƣ viện về LDA đƣợc sử dụng trong luận văn o Truy xuất nhanh trong các thao tác select, insert o Hỗ trợ indexing, mở rộng hệ thống theo hướng scale-out o Linh động trong việc thêm các fields, phù hợp với những dữ liệu không có cấu trúc cố định
Sau đây là cấu trúc bảng đƣợc tổ chức trong HBase
Column msg nu_like nu_comm crd upd iduser msg crd qualifier
Bảng 6: Cấu trúc bảng lưu trữ trong HBase
Table gồm 2 column family là postData và commentData
Trong mỗi column family có nhiều column Cụ thể trong column family postData có những columns sau: o postData:msg chứa nội dung bài post o postData:nu_like chứa số lƣợng like cho bài post o postData:nu_comm chứa số lƣợng comment cho bài post o postData:crd nói lên thời gian tạo của bài post (kiểu UNIX
TIMESTAMP) o postData:upd nói lên thời gian cập nhập của bài post (kiểu UNIX
Tương tự column family commentData cũng chứa nhiều column như sau (kí hiệu {id_social} là định danh bài bình luận): o commentData:iduser_{id_social} chứa thông tin định danh của người bình luận o commentData:msg_{id_social} chứa nội dung bình luận o commentData:crd_{id_social} nói lên ngày tạo của bài bình luận
Hình 17: Xử lý dữ liệu (huấn luyện dữ liệu) Áp dụng giải thuật Collapsed Variational Bayes - CVB trong thƣ viện Mahout để giải quyết bài toán CVB là một hiện thực LDA trong Mahout, kết hợp cả 2 phương pháp suy diễn biến phân và Gibbs sampling (đã được trình bày trong chương 2)
Sau đây là trình tự các bước xử lý dữ liệu, hình thành nên mô hình dữ liệu
Đẩy dữ liệu cần huấn luyện vào hệ thống file Hadoop
Tạo các “sequence files” từ tập dữ liệu đầu vào, sử dụng lệnh mahout seqdirectory
Tạo các vectors tài liệu với dữ liệu đầu vào là các “sequence files”, sử dụng lệnh mahout seq2sparse Sau bước này, tập các tf-vectors đƣợc hình thành cùng với tập từ điển dữ liệu – dictionary - và tập số lần xuất hiện của mỗi từ - word count
Tạo các vectors theo định dạng phù hợp với CVB, dữ liệu đầu vào các tf-vectors, sử dụng lệnh mahout rowid
Tạo mô hình của giải thuật LDA và tập các chủ đề trên tập học, dữ liệu đầu vào là ma trận các vectors của tập học và tập các từ điển của tập học, sử lệnh lệnh mahout cvb
Kết quả sau bước xử lý dữ liệu, mô hình dữ liệu đã được hình thành gồm các files sau:
lda-model: chính là mô hình dữ liệu thu đƣợc
lda: chứa thông tin các từ và xác suất các từ trong mỗi chủ đề - p(term/topic)
lda-topics chứa thông tin các chủ đề và xác suất từng chủ đề trên mỗi tài liệu - p(topic/document)
Ý tưởng MapReduce trên LDA Áp dụng LDA tập tài liệu D trên P máy tính, tương ứng mỗi máy tính sẽ xử lý = D/P tài liệu
Các từ trong mỗi tài liệu D sẽ đƣợc biểu diễn nhƣ sau:
Phép gán chủ đề z = * + = { , , }, trong đó và chỉ tồn tại trên máy tính P
Tương tự ta cũng có: thể hiện số lần xuất hiện chủ đề trong tài liệu trên máy tính P thể hiện số lần xuất hiện của từ trong chủ đề trên máy tính P
Trong mỗi bước lặp Gibbs Sampling trên mỗi máy tính P, sẽ cập nhập lại bằng cách lấy mẫu mọi theo công thức phân phối hậu nghiệm sau: và cập nhập và - gán chủ đề cho mỗi từ
Sau mỗi bước lặp, trên mỗi máy tính sẽ tính toán lại số lượng các từ trong chủ đề trên tài liệu cục bộ của mình và sử dụng phương thức AllReduce để reduce và đƣa tập tới tất cả máy tính trong cluster
MapReduce xử lý dữ liệu đầu vào và đầu ra có dạng các cặp key- value, đƣợc gọi là tuples Tập các tuples này đƣợc phân bố trên nhiều máy tính, mỗi máy tính xử lý các tập con tuples, đƣợc gọi là shard Thao tác chia tập tuples trên nhiều máy đƣợc gọi là sharding
Một MapReduce bao gồm ba giai đoạn lien tiếp nhau: mapping, shuffling and reducing
Với mỗi shard, MapReduce tạo một thread - map worker - trên máy tính mà shard đó thuộc về Mỗi map worker gọi Map để xử lý mỗi tuple trong shard Đây là mã giả của bước Map
Hình 18: Giai đoạn Map trong Gibbs Sampling
Tập dữ liệu D sẽ được chia ra trên P máy tính, mỗi máy tính tương ứng sẽ có = D/P tài liệu, kí hiệu , đƣợc tổ chức thành các shards trên mỗi máy Các shards này sẽ đƣợc gán tới map worker Mỗi map worker sẽ tải một bản sao chép mô hình và thực hiện bước Map cho mỗi tài liệu để cập nhập việc gán chủ đề
Sau tất cả các bước Gibbs Sampling trên tất cả các tài liệu trong shard đƣợc hoàn thành, map worker sẽ đƣa ra một ma trận ∆C word để cập nhập lại mô hình, mỗi dòng trong ma trận tương ứng với một bước map trên tuple
Trong giai đoạn Reduce, tương ứng với dữ liệu đầu vào (là kết quả của bước map), duyệt qua tất cả từ v trong tập từ vựng, tính toán và đưa ra mô hình cập nhập mới theo công thức sau: + ∑
Sử dụng 9 tài liệu thuộc về 2 danh mục để minh hoạ PLDA chạy Ký tự h là danh mục sự tương tác máy tính con người, m là danh mục lý thuyết đồ thị toán học
Hình 19: Ví dụ minh hoạ MapReduce
Kết quả thực nghiệm
Hiện thực ứng dụng kiểm chứng 49
Luận văn trích xuất ra 20 chủ đề và lấy danh sách 100 từ có trọng số cao nhất (có thể xem chi tiết trong phần phụ lục)
Chủ đề Danh sách 10 từ có trọng số cao nhất
Topic 0 làm, nhiều, startup, công_ty, dự_án, sản_phẩm, việt_nam, giúp, thông_tin, hỏi
Topic 1 startup, nhiều, khởi_nghiệp, website, công_ty, việt_nam, sản_phẩm, thông_tin, giúp, doanh_nghiệp, tham_gia
Topic 2 usd, công_ty, dự_án, đầu_tư, khởi_nghiệp, nhiều, việt_nam, ứng_dụng, công_nghệ, lớn
Topic 3 sản_phẩm, khởi_nghiệp, startup, dự_án, công_ty, tiền, việt_nam, thủy, đầu_tư, xe
Topic 4 làm, startup, nhiều, khởi_nghiệp, hàng, công_ty, dự_án, tiền, nhận, team, sản_phẩm
Topic 5 công_ty, nhiều, khởi_nghiệp, làm, nhà_đầu_tư, startup, sản_phẩm, thành_công, dự_án, công_việc
Topic 6 khởi_nghiệp, đầu_tư, nhiều, công_ty, việt_nam, làm, thị_trường, startup, sản_phẩm, ý_tưởng
Topic 7 sản_phẩm, nhiều, công_ty, ứng_dụng, dùng, nhà_đầu_tư, đầu_tư, ý_tưởng, startup, lớn
Topic 8 công_ty, việt_nam, nhiều, thị_trường, startup, sản_phẩm, làm, khởi_nghiệp, doanh_nghiệp, lớn
Topic 9 công_ty, khởi_nghiệp, thị_trường, nhiều, sản_phẩm, đầu_tư, việt_nam, usd, công_nghệ
Topic 10 công_ty, sản_phẩm, ứng_dụng, khởi_nghiệp, nhiều, dùng, làm, lớn, đầu_tư, tháng, doanh_nghiệp
Topic 11 nhiều, sản_phẩm, làm, dùng, ý_tưởng, việt_nam, ứng_dụng, công_ty, thị_trường, thành_công
Topic 12 việt_nam, khởi_nghiệp, làm, công_ty, công_nghệ, nhiều, sản_phẩm, di_động, thị_trường, khách_hàng
Topic 13 làm, nhiều, startup, đầu_tư, công_ty, vietnam, chia_sẻ, sản_phẩm, enlaunch, khởi_nghiệp
Topic 14 công_ty, làm, việt_nam, phần_mềm, khởi_nghiệp, công_nghệ, startup, nói, lớn, sản_phẩm, làm_việc
Topic 15 khởi_nghiệp, usd, doanh_nghiệp, nhiều, thị_trường, đầu_tư, việt_nam, công_ty, startup
Topic 16 làm, nhiều, startup, sản_phẩm, công_ty, đầu_tư, đăng_ký, thông_tin, khởi_nghiệp, tham_gia
Topic 17 khởi_nghiệp, nhiều, startup, sản_phẩm, đầu_tư, dự_án, giúp, doanh_nghiệp, tiền, tháng, hoạt_động
Topic 18 nhiều, việt_nam, công_ty, uber, ứng_dụng, doanh_nghiệp, startup, khởi_nghiệp, thị_trường
Topic 19 startup, nhiều, công_ty, việt_nam, thông_tin, sản_phẩm, khởi_nghiệp, dự_án, dùng, công_nghệ
Bảng 8: Bảng 20 chủ đề và danh sách 10 từ có trọng số cao nhất
Việc gán nhãn mỗi chủ đề dựa vào từ và trọng số tương ứng cho các từ, chúng ta sẽ thấy được xu hướng, tên chủ đề mà các nhóm từ đề cập Để cho việc gán nhãn chủ đề chính xác hơn, chúng tôi tìm kiếm ngƣợc lại tài liệu mà chứa các từ trên ElasticSearch Từ tập tài liệu có đƣợc, chúng tôi sẽ xem chủ đề của tài liệu, dựa vào đó sẽ gán nhãn phù hợp cho các chủ đề trong mô hình
Hình 22: Công cụ tìm kiếm tài liệu dựa vào những từ xuất hiện Đây là một danh sách nhãn đƣợc gán với các chủ đề trong mô hình
Chủ đề mô hình Nhãn chủ đề
Topic 0 Kinh nghiệm, bài học khởi nghiệm
Topic 1 Tình hình khởi nghiệp Việt Nam
Topic 2 Vốn, đầu tƣ khởi nghiệp
Topic 3 Vốn, đầu tƣ khởi nghiệp
Topic 4 Tình hình khởi nghiệp Việt Nam
Topic 5 Ứng dụng, sản phẩm khởi nghiệp
Topic 6 Kinh nghiệm, bài học khởi nghiệm
Topic 7 Vấn đề, khó khăn khởi nghiệp
Topic 8 Tình hình khởi nghiệp Việt Nam
Topic 9 Tình hình khởi nghiệp Việt Nam
Topic 10 Nhân sự khởi nghiệp
Topic 12 Ứng dụng, sản phẩm khởi nghiệp
Topic 13 Kinh nghiệm, bài học khởi nghiệm
Topic 14 Câu chuyện khởi nghiệp
Topic 15 Vốn, đầu tƣ khởi nghiệp
Topic 16 Kinh nghiệm, bài học khởi nghiệm
Topic 17 Vốn, đầu tƣ khởi nghiệp
Topic 18 Ứng dụng, sản phẩm khởi nghiệp
Topic 19 Kinh nghiệm, bài học khởi nghiệm
Bảng 9: Bảng gán nhãn các chủ đề mô hình
Việc các chủ đề trong mô hình có nhãn trùng nhau vì xu hướng ý nghĩa các từ trong chủ đề cùng hướng về một nội dung/nhãn
Trong ứng dụng hiện thực, đối với các chủ đề cùng một nhãn, chẳng hạn:
{topic i} và {topic j} có cùng chủ đề là A, phần hiện thực sẽ giữ lại một trọng số cao nhất của chủ đề và sau đó sẽ tăng trọng số đó lên một lƣợng bằng trọng số của chủ đề trùng còn lại chia cho tổng số chủ đề Cụ thể nhƣ sau: với i, j là các chủ đề trong mô hình và có cùng chủ đề là A, trong đó trọng số của chủ đề i lớn hơn trọng số chủ đề j ( > ).
Lƣợc đồ “data flow” của ứng dụng
Sau đây là lƣợc đồ “data flow” của ứng dụng:
Hình 23: Data flow ứng dụng
Luồng dữ liệu của ứng dụng có trình tự nhƣ sau:
Dữ liệu đầu vào là một URL
Crawler sẽ thu thập dữ liệu URL
Dữ liệu sau khi thu thập sẽ qua NLP để loại bỏ stopwords, các nhãn từ
(tags) không có ý nghĩa trong câu
Dữ liệu sau khi tinh chỉnh sẽ được lưu trữ trong “data storage” – Hbase, ElasticSearch
Dữ liệu sau quá trình NLP sẽ qua bộ phân tích chủ đề tiềm ẩn, kết quả cuối cùng được một danh sách các chủ đề tiềm ẩn và trọng số tương ứng hiển thị lên giao diện
Hình 24: Ứng dụng thực nghiệm
Hình trên là hình ảnh ứng dụng thực nghiệm:
Phần đầu là một text-box để nhập URL cần phân tích/ biết chủ đề hướng nghiệp tiềm ẩn
Ấn button GO để thu thập, xử lý và phân tích dữ liệu
Phần bên phải gồm 3 tabs: o Tab “Content”: thể hiện các từ/nội dung bài tin tức o Tab “Words after NLP”: chứa các từ sau khi qua bước NLP dữ liệu o Tab “Preview Page”: hiển thị URL nhƣ xem trên trình duyệt web.
Chuẩn bị dữ liệu chạy thực nghiệm 53
Dữ liệu chạy thƣc nghiệm gồm 50 bài (URLs) về thông tin khởi nghiệp, trong đó 40 bài trong tập huấn luyện và 10 bài mới
Trong 40 bài thuộc tập huấn luyện:
Tên miền Số lƣợng bài ictnews.vn 15 action.vn 10 vinacode.vn 5 pandora.vn 10
Tên miền Số lƣợng bài vnexpress.net 5 genk.vn 3 cafebiz.vn 2
Toàn bộ URLs sẽ qua ứng dụng kiểm chứng, kết quả của mỗi lần chạy sẽ được lưu lại trong một bảng và sẽ được so sánh với kết quả thực tế
Dựa vào bảng lưu trữ kết quả, luận văn sẽ nhận xét và đánh giá về độ chính xác của mô hình.
Kết quả chạy thực nghiệm 53
Sau đây là kết quả chạy thực nghiệm qua ứng dụng kiểm chứng:
4.1.3.1 Data thực nghiệm trong bộ huấn luyện Đây là bảng kết quả chạy thực nghiệm (xem chi tiết kết quả chạy phần phụ lục)
Tên miền Tổng số bài Số bài có chủ đề đúng ictnews.vn 15 12 action.vn 10 7 vinacode.vn 5 5 pandora.vn 10 8
Bảng 10: Kết quả thực nghiệm trong bộ huấn luyện
4.1.3.2 Data thực nghiệm ngoài bộ huấn luyện
STT URL Chủ đề thực nghiệm (Top 3) Chủ đề thực tế
/tin-tuc/khoi-nghiep/khoi- nghiep-cong-nghe-duoc-dac- biet-uu-dai-3317367.html
17 - Vốn, đầu từ khởi nghiệp; 6 - Kinh nghiệm, bài học khởi nghiệm; 12 - Ứng dụng, sản phẩm khởi nghiệp
Vốn, đầu tƣ khởi nghiệp
/tin-tuc/khoi-nghiep/that-bai- khoi-nghiep-cua-chang-trai- muon-thoat-ngheo-3316851.html
- Ý tưởng khởi nghiệp; 17 - Vốn, đầu từ khởi nghiệp
/tin-tuc/khoi-nghiep/bi-quyet- khoi-nghiep-thanh-cong- 3316674.html
6 - Kinh nghiệm, bài học khởi nghiệm; 17 - Vốn, đầu từ khởi nghiệp; 14 - Câu chuyện khởi nghiệp
Kinh nghiệm, bài học khởi nghiệp
/tin-tuc/khoi-nghiep/10-trieu- dong-khoi-nghiep-bang-thuong- mai-dien-tu-nhu-the-nao- 3313737.html
17 - Vốn, đầu từ khởi nghiệp; 11 - Ý tưởng khởi nghiệp; 10 - Nhân sự khởi nghiệp Ý tưởng khởi nghiệp
/tin-tuc/khoi-nghiep/nhan- vien-ngan-hang-khoi-nghiep-tu- cam-hung-banh-mi-my-
11 - Ý tưởng khởi nghiệp; 14 - Câu chuyện khởi nghiệp; 17 - Vốn, đầu từ khởi nghiệp Ý tưởng khởi nghiệp
6 http://genk.vn/tin-ict/dang- lam-viec-o-google-luong-10-ty- nam-co-nen-tu-bo-de-lam- startup-20151101144054913.chn
17 - Vốn, đầu từ khởi nghiệp; 14 - Câu chuyện khởi nghiệp; 6 - Kinh nghiệm, bài học khởi nghiệm
Kinh nghiệm, bài học khởi nghiệp
7 http://genk.vn/tin-ict/nhung- sai-lam-ma-nguoi-moi-khoi- nghiep-thuong-mac-phai-p1- 20151110122716608.chn
17 - Vốn, đầu từ khởi nghiệp; 6 - Kinh nghiệm, bài học khởi nghiệm; 11 - Ý tưởng khởi nghiệp
Kinh nghiệm, bài học khởi nghiệp
8 http://genk.vn/internet/startu p-khoi-nghiep-bang-cach-ban-3- cai-la-gia-20-usd-
17 - Vốn, đầu từ khởi nghiệp; 12 - Ứng dụng, sản phẩm khởi nghiệp; 7 - Vấn đề, khó khăn khởi nghiệp
Vốn, đầu tƣ khởi nghiệp
9 http://cafebiz.vn/quang-cao- thuong-hieu/thuong-hieu-ca- nhan-doi-voi-start-up-chon- troi-buoc-hay-tu-do- 20150923073715492.chn
12 - Ứng dụng, sản phẩm khởi nghiệp; 15 - Vốn, đầu từ khởi nghiệp; 6 - Kinh nghiệm, bài học khởi nghiệm Ứng dụng, sản phẩm khởi nghiệp
10 http://cafebiz.vn/cau-chuyen- kinh-doanh/muon-startup-hay- chuan-bi-doi-mat-voi-that-bai- that-bai-va-that-bai-
17 - Vốn, đầu từ khởi nghiệp; 6 - Kinh nghiệm, bài học khởi nghiệm; 11 - Ý tưởng khởi nghiệp
Vấn đề, khó khăn khởi nghiệp
Bảng kết quả chạy thực nghiệm với dữ liệu ngoài bộ huấn luyện
Tên miền Tổng số bài Số bài có chủ đề đúng vnexpress.net 5 5 genk.vn 3 3 cafebiz.vn 2 1
Bảng 11: Kết quả thực nghiệm ngoài bộ huấn luyện
Nhận xét
Phần lớn các dữ liệu thực nghiệm có chủ đề tập trung vào “Kinh nghiệm, bài học khởi nghiệp” chiếm tỷ lệ 38% và “Vốn, đầu tƣ khởi nghiệp” chiếm tỷ lệ 20% Đây là những chủ đề hướng nghiệp phổ biến và có xác suất xuất hiện cao trong các tập dữ liệu
Phần đánh giá kết quả thực nghiệm sử dụng độ đo chính xác - , với công thức nhƣ sau: Đối với dữ liệu trong bộ huấn luyện, xác suất phân tích chủ đề khởi nghiệp trùng với chủ đề thực tế là 80%, cụ thể độ chính xác của mỗi tên miền đƣợc thống kê nhƣ sau:
Tên miền Xác suất đúng – sử dụng độ đo chính xác
Tên miền action.vn có độ đo chính xác thấp nhất vì dữ liệu có nhiều chủ đề không phổ biến Tên miền vinacode.net có độ đo chính xác tuyệt đối vì các bài, các từ trong tên miền thể hiện rõ ràng ý nghĩa các chủ đề Đối với dữ liệu ngoài bộ huấn luyện, độ đo chính xác về phân tích chủ đề khởi nghiệp trùng với chủ đề thực tế là 90% - đây là độ đo cao vì các dữ liệu này có các chủ đề rơi vào 2 chủ đề hướng nghiệp phổ biến đã đề cập ở trên
Đóng góp của luận văn
Luận văn đã tìm hiểu giải thuật LDA, cách suy diễn và ƣớc lƣợng tham số cho mô hình Bên cạnh đó luận văn cũng tìm hiểu nhiều công trình liên quan đến giải thuật LDA, áp dụng mô hình LDA trên dữ liệu khởi nghiệp, đƣa ra những chủ đề tiềm ẩn trong dữ liệu Ngoài ra còn nghiên cứu phương pháp suy diễn phổ biến hiện nay - Gibbs Sampling, đưa ra những điểm mạnh và yếu của phương pháp
Luận văn cũng đã trình bày một hiện thực giải thuật LDA trong Mahout – một thƣ viện khai phá dữ liệu lớn của Apache, và cách áp dụng hiện thực này vào bài toán khởi nghiệp
Luận văn đã tìm hiểu việc xử lý ngôn ngữ tự nhiên – Natural Language Processing NLP, tách các câu, gom nhóm và gán nhãn các từ liên quan trong câu, loại bỏ những nhãn từ không có ý nghĩa
Luận văn đã tìm hiểu và áp dụng vào trong ứng dụng các frameworks phù hợp với dữ liệu tăng trưởng nhanh theo thời gian như Hadoop, HBase,
ElasticSearch Đƣa ra một mô hình ứng dụng có tính mở rộng cao, có thể áp dụng trên lƣợng dữ liệu lớn Tận dụng giải thuật Map-Reduce trên Hadoop để tăng tốc các thao tác dữ liệu trên HBase, xử lý nhanh quá trình tính toán trên Mahout khi chạy trên mô hình nhiều máy tính - cluster Sử dụng ƣu điểm tìm kiếm đầy đủ - full text search - của ElasticSearch trong việc gán nhãn các chủ đề tiềm ẩn, hỗ trợ vấn đề phân tích text/văn bản thành các tokens, loại bỏ stopwords (token analyzer) Bên cạnh đó cũng đã hiện thực một công cụ thu thập tin tức dữ liệu khởi nghiệp từ websites và Facebook
Luận văn đã phát hiện đƣợc 8 chủ đề lớn trong dữ liệu khởi nghiệp, trong đó chủ đề về “Kinh nghiệm, bài học khởi nghiệp” và “Vốn, đầu tƣ khởi nghiệp” là hai chủ đề đƣợc quan tâm nhiều nhất hiện nay, đồng thời xây dựng đƣợc một ứng dụng phân tích chủ đề tiềm ẩn từ một URL bất kỳ về khởi nghiệp
Trình bày quá trình đánh giá sự chính xác của mô hình, sử dụng một phần tập dữ liệu huấn luyện và tập dữ liệu mới.
Hướng phát triển tiếp theo
Luận văn đang chạy trên tập dữ liệu nhỏ nên chƣa tận dụng đƣợc hết mô hình ứng dụng, cần thu thập thêm dữ liệu khởi nghiệp để có đƣợc mô hình tốt hơn
Mô hình hiện tại chƣa phát hiện đƣợc chi tiết sản phẩm khởi nghiệp cụ thể về lĩnh vực nào, chẳng hạn nhƣ về giáo dục, giao thông, ăn uống…vì sự hạn chế của dữ liệu khởi nghiệp huấn luyện
Mở rộng các chủ đề trong bước gán nhãn, cần có những nhãn khởi nghiệp chi tiết và cụ thể hơn, từ đó tính hiệu quả của bài toán sẽ cao hơn.