Bối cảnh và vấn đề nghiên cứu

Nghiên cứu thị trường tuyển dụng là hoạt động giữ vai trò quan trọng đối với các doanh nghiệp, cơ sở đào tạo và người lao động trong xã hội. Việc nắm bắt các yêu cầu cụ thể về vị trí công việc, dải lương phổ biến cũng như chế độ đãi ngộ thông qua các phương pháp khảo sát truyền thống đòi hỏi nguồn nhân lực lớn, chi phí cao và mất nhiều thời gian thực hiện. Với tốc độ thay đổi nhanh của thị trường lao động, phương thức thu thập và phân tích thủ công thường bộc lộ độ trễ thông tin, không phản ánh kịp thời các xu hướng kỹ năng mới. Nhằm giải quyết bài toán này, nhóm tác giả đề xuất giải pháp ứng dụng công nghệ thu thập dữ liệu tự động (web scraping) kết hợp với các mô hình phân tích chủ đề (topic analysis) trên nền tảng nguồn dữ liệu việc làm trực tuyến từ mạng Internet, giúp giảm thiểu sai sót, hạn chế công sức lao động của con người và tăng độ chính xác trong việc lượng hóa nhu cầu nhân lực.

Mục tiêu chung của đồ án là thu thập dữ liệu việc làm cho một nhóm công việc cụ thể trên trang tuyển dụng trực tuyến, sau đó ứng dụng mô hình phân tích chủ đề nhằm trích xuất các yêu cầu chung, mức lương, chế độ đãi ngộ, từ khóa chuyên môn và dự đoán xu hướng kỹ năng. Đề tài xác định 5 nhiệm vụ nghiên cứu cụ thể được đánh số như sau:

  1. Tìm hiểu khái niệm web scraping và cấu trúc tài liệu HTML.
  2. Tìm hiểu khái niệm topic analysis và các kỹ thuật phân tích theo chủ đề (PLSA, LDA).
  3. Thực hiện công việc thu thập dữ liệu web tuyển dụng bằng các thư viện của ngôn ngữ R.
  4. Phân tích theo chủ đề đối với tập dữ liệu thu thập được để rút trích các thông tin quan tâm.
  5. Đánh giá và giải thích kết quả thực nghiệm.

Đối tượng và phạm vi nghiên cứu của đồ án được xác định rõ:

  • Đối tượng nghiên cứu: Các bản tin thông báo tuyển dụng việc làm trực tuyến, tập trung vào các trường dữ liệu tiêu đề vị trí công việc, tên doanh nghiệp, địa điểm làm việc, đường dẫn liên kết, tổng quan và nội dung mô tả chi tiết công việc.
  • Phạm vi không gian: Dữ liệu được trích xuất thực tế từ website tuyển dụng công nghệ Dice (dice.com).
  • Phạm vi chủ đề và dữ liệu: Khảo sát các tin tuyển dụng liên quan trực tiếp đến từ khóa "Big data", thu thập được 15.276 thông báo việc làm với dung lượng lưu trữ 36 MB dưới dạng tệp CSV.
  • Phạm vi thời gian: Quá trình nghiên cứu và thực nghiệm được triển khai từ tháng 03/2019 đến tháng 07/2019 tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

Cơ sở lý thuyết và phương pháp

Về mặt lý thuyết, nghiên cứu tiếp cận dữ liệu dựa trên mô hình không gian vector và biểu diễn văn bản dưới dạng túi từ (bag-of-words) thông qua ma trận tài liệu – từ vựng (document-term matrix), bỏ qua cấu trúc ngữ pháp và thứ tự câu từ. Tần số xuất hiện của các từ vựng trong tập văn bản được xem xét dựa trên định luật Zipf. Trên cơ sở đó, nghiên cứu đi sâu phân tích hai mô hình sinh xác suất phục vụ trích xuất chủ đề tiềm ẩn:

  1. Mô hình Phân tích Ngữ nghĩa Tiềm ẩn Xác suất (PLSA): Biểu diễn mỗi tài liệu dưới dạng một phân phối xác suất trên tập chủ đề, và mỗi chủ đề là một phân phối xác suất trên tập từ vựng. Tham số mô hình được ước lượng thông qua phương pháp hợp lý cực đại (Maximum Likelihood Estimation) bằng thuật toán Cực đại hóa Kỳ vọng (Expectation Maximization - EM), luân phiên giữa bước E (tính kỳ vọng biến ẩn) và bước M (cập nhật ước lượng xác suất) cho đến khi hàm log-likelihood hội tụ.
  2. Mô hình Phân bổ Dirichlet Tiềm ẩn (LDA): Khắc phục các hạn chế của PLSA bằng cách đặt các phân phối tiên nghiệm Dirichlet lên phân phối chủ đề của tài liệu ($\alpha$) và phân phối từ vựng của chủ đề ($\beta$). Quá trình sinh từ trong văn bản được mô hình hóa kết hợp với phân phối Multinomial. Việc ước lượng tham số trong LDA được thực hiện thông qua phương pháp lấy mẫu Gibbs (Gibbs sampling) dựa trên các phân phối xác suất hậu nghiệm có điều kiện.
Tiêu chí so sánh Mô hình PLSA Mô hình LDA
Số lượng tham số $n(k - 1) + k(|V| - 1)$, tăng tuyến tính theo số lượng tài liệu $n$, dễ dẫn đến hiện tượng quá khớp (overfitting). $k + |V|$, độc lập với số lượng tài liệu trong tập dữ liệu.
Phân phối xác suất sử dụng Phân phối đa thức đơn giản cho phân phối từ vựng và chủ đề, độ lệch xác suất nhỏ. Phân phối Dirichlet cho phân phối từ vựng và chủ đề, cho phép kiểm soát phương sai và độ tập trung xác suất.
Quá trình sinh văn bản Quá trình sinh phân phối từ vựng phụ thuộc vào quá trình sinh phân phối chủ đề. Quá trình sinh phân phối từ vựng độc lập với quá trình sinh phân phối chủ đề.
Khả năng khái quát hóa Không thể gán hoặc tính toán xác suất cho tài liệu mới nằm ngoài tập huấn luyện. Xác định được các tham số xác suất cho các tài liệu mới chưa từng xuất hiện trong tập huấn luyện.

Phương pháp nghiên cứu thực nghiệm được tiến hành bằng ngôn ngữ lập trình thống kê R (phiên bản trên Windows), kết hợp các gói thư viện chuyên dụng:

  • Thu thập dữ liệu web: Sử dụng thư viện rvest và xml2 để phân tích cú pháp HTML, trích xuất dữ liệu qua bộ chọn CSS Selector và XPath.
  • Xử lý ngôn ngữ tự nhiên và mô hình hóa chủ đề: Sử dụng thư viện tm để tiền xử lý văn bản (chuyển chữ thường, xóa khoảng trắng, loại bỏ dấu câu, lọc stopword); thư viện quanteda hỗ trợ quản lý ma trận văn bản; thư viện topicmodels phục vụ chạy thuật toán LDA với thuật toán lấy mẫu Gibbs.

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Trình bày bối cảnh thực tiễn của công tác nghiên cứu thị trường lao động, phân tích nhược điểm tốn kém thời gian và chi phí của khảo sát thủ công. Từ đó, chương xác lập mục tiêu nghiên cứu, 5 nhiệm vụ trọng tâm và bố cục toàn văn đồ án, định hướng việc kết hợp công nghệ web scraping và topic modeling vào phân tích dữ liệu tuyển dụng.

Chương 2: Tổng quan web scraping

Hệ thống hóa cơ sở lý thuyết về kỹ thuật bóc tách dữ liệu web tự động, bao gồm quy trình 3 giai đoạn: xác định nguồn/dữ liệu quan tâm, lựa chọn công cụ trích xuất, tải xuống và lưu trữ. Nội dung đi sâu phân tích cấu trúc ngôn ngữ đánh dấu siêu văn bản HTML, cấu trúc cây phân cấp của các thẻ (tags), các nhóm thẻ định dạng trang, định dạng văn bản, siêu liên kết (<a>) cùng các thuộc tính nền tảng phục vụ việc định vị dữ liệu. Chương cũng khái quát các thách thức về cấu trúc trang web thường xuyên thay đổi, dữ liệu trùng lặp và tính an toàn thông tin khi thực hiện thu thập.

Chương 3: Tổng quan topic analysis

Định nghĩa bài toán phân tích chủ đề dưới dạng ánh xạ từ tập tài liệu $C$ và số lượng chủ đề $k$ sang tập chủ đề $\theta$ cùng mức độ đóng góp của từng chủ đề vào từng tài liệu $\pi_{ij}$. Giới thiệu quy trình 5 bước: lựa chọn dữ liệu, tiền xử lý, số hóa vector (DTM), thu giảm số chiều theo định luật Zipf, áp dụng thuật toán phân tích. Chương trình bày chi tiết toán học của hai mô hình PLSA (thuật toán EM, công thức bước E và M) và LDA (phân phối Dirichlet, phân phối Multinomial, mối quan hệ sinh, công thức lấy mẫu Gibbs sampling và cập nhật tham số $\varphi, \pi$).

Chương 4: Thực hiện thu thập các thông báo tuyển dụng

Khảo sát danh mục các website tuyển dụng phổ biến tại Việt Nam và trên thế giới. Xác định mục tiêu thu thập thực nghiệm là website dice.com với từ khóa "Big data". Giới thiệu các đặc tả kỹ thuật của ngôn ngữ R, các hàm phổ biến trong thư viện rvest và xml2. Trình bày thuật toán lặp duyệt phân trang kết quả tìm kiếm, trích xuất 6 trường thông tin vào khung dữ liệu (data.frame) và lưu trữ thành công 15.276 thông báo việc làm vào tệp tin CSV với dung lượng 36 MB sau khoảng 20 giờ chạy thực nghiệm.

Chương 5: Ứng dụng topic model phân tích thông báo tuyển dụng

Trình bày các thư viện xử lý văn bản trong R gồm tm, quanteda và topicmodels. Thực hiện quy trình làm sạch dữ liệu văn bản cho trường mô tả công việc (job_description): ngắt câu, tách từ, loại bỏ ký tự lạ, lọc bỏ các hư từ (stopword). Thiết lập các tham số đầu vào cho thuật toán phân tích chủ đề LDA với số lượng chủ đề cố định $k = 10$, siêu tham số $\alpha = 5$ và $\beta = 0.1$ để tiến hành trích xuất phân phối từ vựng và chủ đề.

Chương 6: Đánh giá kết quả phân tích

Biểu diễn trực quan các kết quả trích xuất bằng các biểu đồ thống kê: biểu đồ 50 từ có tần số xuất hiện cao nhất, biểu đồ chi tiết phân phối từ trong các chủ đề, biểu đồ tỷ lệ đóng góp của 10 chủ đề vào tập tài liệu Big Data. Tiến hành đặt tên định tính cho các chủ đề và thống kê số lần xuất hiện của các từ khóa công nghệ, kỹ năng chuyên môn cốt lõi nhằm giải thích thực trạng nhu cầu tuyển dụng.

Thiết kế và triển khai thực nghiệm

Nghiên cứu xây dựng một hệ thống xử lý dữ liệu hoàn chỉnh từ khâu thu thập đến mô hình hóa trên môi trường máy trạm độc lập. Chi tiết cấu hình phần cứng và công cụ phần mềm phục vụ quá trình thực nghiệm được ghi nhận như sau:

Thành phần hệ thống Thông số kỹ thuật / Phiên bản
Bộ vi xử lý (CPU) Intel Core i5-7500, xung nhịp 2.5 GHz
Bộ nhớ trong (RAM) 8 GB
Ổ đĩa cứng (HDD) 1 TB
Hệ điều hành Microsoft Windows 10 Pro
Môi trường lập trình Rwin 3.4.4
Thời gian thu thập dữ liệu Khoảng 20 giờ hoạt động liên tục với đường truyền mạng ổn định

Cấu trúc lưu trữ dữ liệu trong quá trình cào web được tổ chức dưới dạng khung dữ liệu tổng hợp (full_df) chứa các đối tượng thành phần:

  • job_title: Tiêu đề vị trí công việc tuyển dụng.
  • company_name: Tên đơn vị, tổ chức hoặc doanh nghiệp tuyển dụng.
  • job_location: Địa điểm làm việc đăng ký.
  • links: Đường dẫn URL dẫn tới trang chi tiết của tin tuyển dụng.
  • job_description: Nội dung mô tả chi tiết công việc.
  • job_overview: Nội dung tổng quan sơ lược về công việc.

Quy trình triển khai cào dữ liệu được vận hành theo vòng lặp tự động duyệt qua các trang danh sách kết quả tìm kiếm trên dice.com: trích xuất dữ liệu danh mục, truy cập đường dẫn chi tiết để lấy trường mô tả, ghép các vector vào khung dữ liệu df cục bộ, gộp vào full_df bằng hàm rbind() và hoàn tất bằng việc ghi dữ liệu ra tệp CSV. Sau đó, tệp dữ liệu được đưa vào quy trình tiền xử lý văn bản và huấn luyện mô hình LDA với 10 chủ đề xác định.

Kết quả và đóng góp

Nghiên cứu mang lại các kết quả định lượng cụ thể được trích xuất trực tiếp từ 15.276 thông báo tuyển dụng:

  1. Kết quả dữ liệu thu thập: Xây dựng thành công tập dữ liệu 36 MB phản ánh đầy đủ thông tin tuyển dụng thực tế đối với lĩnh vực dữ liệu lớn tại thời điểm năm 2019.
  2. Khám phá chủ đề: Mô hình LDA phân tách dữ liệu thành 10 chủ đề riêng biệt ($k = 10$). Nội dung các chủ đề tập trung phản ánh các nhóm vai trò và công việc cốt lõi như chuyên viên dữ liệu (data), lập trình viên (developer), kỹ sư phần mềm (software), kiến trúc hệ thống dữ liệu. Dựa vào phân phối các từ có trọng số xác suất cao nhất trong mỗi chủ đề, nhóm nghiên cứu đã gán nhãn dự đoán cho các chủ đề chính.
  3. Thống kê từ khóa kỹ năng và công nghệ: Qua việc phân tích tần suất xuất hiện của 50 từ đứng đầu và các từ khóa công nghệ trọng tâm, nghiên cứu đưa ra các phát hiện định lượng:
    • Các ngôn ngữ lập trình: Số lượng thông báo việc làm yêu cầu kỹ năng Java và Python chiếm tỷ lệ áp đảo hoàn toàn so với ngôn ngữ R.
    • Nền tảng dữ liệu lớn: Sự xuất hiện dày đặc của các công nghệ cốt lõi gồm Hadoop, Spark, AWS, Azure.
    • Cơ sở dữ liệu và xử lý văn phòng: Kỹ năng truy vấn cơ sở dữ liệu SQL duy trì vị trí thiết yếu; đặc biệt, kỹ năng sử dụng công cụ bảng tính Excel vẫn được các nhà tuyển dụng đòi hỏi với tần suất cao, tương đương với các hệ thống phân tán phức tạp như Hadoop hay AWS.
    • Công cụ trực quan hóa dữ liệu: Tableau là từ khóa công cụ BI xuất hiện với tần số đáng kể trong tập dữ liệu.

Về mặt đóng góp, đề tài chứng minh tính khả thi của việc ứng dụng kết hợp kỹ thuật khai phá web tự động và mô hình xác suất LDA vào phân tích thị trường lao động. So với cách tiếp cận khảo sát truyền thống, giải pháp giúp tự động hóa toàn diện quy trình, tiết kiệm thời gian, loại bỏ các chi phí điều tra khảo sát thủ công và cung cấp dữ liệu khách quan hỗ trợ việc định hướng chương trình đào tạo sinh viên ngành Công nghệ thông tin theo sát nhu cầu tuyển dụng thực tế.

Hạn chế và hướng nghiên cứu tiếp

Báo cáo khóa luận ghi nhận một số hạn chế kỹ thuật và phạm vi thực nghiệm:

  • Kết quả tạo lập các chủ đề của thuật toán LDA có sự thay đổi nếu thứ tự dữ liệu văn bản đầu vào bị xáo trộn.
  • Kết quả phân phối chủ đề sau khi phân tích chưa được tích hợp trực tiếp cho bài toán phân loại tự động hay tìm kiếm tài liệu chuyên sâu.
  • Mô hình túi từ chưa xét đến mối quan hệ tương đồng về ngữ nghĩa ngữ cảnh cũng như quan hệ cú pháp giữa các từ ngữ trong cấu trúc câu.
  • Dữ liệu thực nghiệm mới chỉ giới hạn trên một trang web tuyển dụng (dice.com) với một từ khóa khảo sát ("Big data"); khâu xử lý trùng lặp dữ liệu còn phải can thiệp thủ công bằng cách loại bỏ các bản ghi không phù hợp.

Hướng phát triển tiếp theo được nhóm tác giả đề xuất:

  • Mở rộng phạm vi thu thập dữ liệu trên nhiều website tuyển dụng khác nhau (bao gồm các cổng thông tin việc làm tại Việt Nam như VietnamWorks, TopDev, ITviec).
  • Tự động hóa hoàn toàn thuật toán phát hiện và loại bỏ các tin tuyển dụng trùng lặp, tối ưu hóa tiền xử lý.
  • Cải tiến mô hình phân tích chủ đề bằng cách tích hợp phân tích cú pháp, ngữ nghĩa hoặc áp dụng kết quả phân tích để xây dựng hệ thống gợi ý và tìm kiếm việc làm thông minh cho ứng viên.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho sinh viên, học viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin, Khoa học dữ liệu hoặc những người làm nghiên cứu trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và khai phá dữ liệu web (Web Mining).

Nội dung đồ án có giá trị tham khảo rõ nét ở các khía cạnh:

  • Nền tảng toán học chi tiết về việc suy diễn tham số, giải thuật EM trong PLSA và kỹ thuật lấy mẫu Gibbs trong mô hình LDA.
  • Quy trình mẫu về thiết lập mã nguồn R sử dụng rvest để bóc tách cấu trúc HTML động/tĩnh trên các cổng việc làm.
  • Trình tự tiền xử lý văn bản, xây dựng DTM và thiết lập tham số cho gói topicmodels.
  • Cung cấp số liệu tham khảo cho các cơ sở giáo dục đại học trong việc điều chỉnh khung chương trình đào tạo kỹ sư công nghệ thông tin tiệm cận nhu cầu của doanh nghiệp.

Câu hỏi thường gặp

Đề tài sử dụng trang web nào để thu thập dữ liệu và thu được kết quả quy mô bao nhiêu?

Nghiên cứu thực hiện thu thập dữ liệu từ website tuyển dụng công nghệ dice.com dựa trên từ khóa tìm kiếm "Big data". Kết quả thu được tệp dữ liệu định dạng CSV chứa 15.276 thông báo việc làm thô với dung lượng 36 MB, được trích xuất liên tục trong khoảng 20 giờ.

Tập dữ liệu thu thập gồm những trường thông tin cụ thể nào?

Dữ liệu lưu trữ trong tệp CSV gồm 6 trường thông tin: tiêu đề công việc (job_title), tên công ty tuyển dụng (company_name), địa điểm làm việc (job_location), liên kết chi tiết (links), nội dung mô tả chi tiết công việc (job_description) và tóm tắt tổng quan công việc (job_overview).

Thuật toán LDA được cài đặt với các tham số đầu vào như thế nào?

Mô hình LDA được triển khai thông qua thư viện topicmodels trong R với số lượng chủ đề cần xác định được cố định là $k = 10$, siêu tham số Dirichlet cho phân phối chủ đề trên tài liệu là $\alpha = 5$, và siêu tham số Dirichlet cho phân phối từ vựng trên chủ đề là $\beta = 0.1$.

Sự khác biệt cơ bản về số lượng tham số giữa mô hình PLSA và LDA được tác giả chỉ ra là gì?

Trong PLSA, số lượng tham số cần ước lượng là $n(k - 1) + k(|V| - 1)$, tăng tuyến tính theo số lượng tài liệu $n$ nên dễ dẫn tới quá khớp khi dữ liệu lớn. Trong khi đó, mô hình LDA chỉ có $k + |V|$ tham số, không phụ thuộc vào số lượng tài liệu trong tập dữ liệu.

Kết quả phân tích từ khóa công nghệ cho thấy xu hướng nổi bật nào về ngôn ngữ lập trình và kỹ năng văn phòng?

Kết quả thống kê tần suất từ khóa cho thấy số lượng thông báo việc làm yêu cầu kỹ năng lập trình Java và Python nhiều hơn hẳn so với ngôn ngữ R. Đồng thời, kỹ năng sử dụng công cụ bảng tính Excel vẫn được các nhà tuyển dụng quan tâm ở mức cao, tương đương với các nền tảng xử lý dữ liệu lớn như AWS, Hadoop và Spark.

Kết luận

Khóa luận tốt nghiệp của nhóm tác giả đã nghiên cứu và ứng dụng thành công kỹ thuật web scraping cùng mô hình phân tích chủ đề LDA để khai phá 15.276 thông báo tuyển dụng việc làm lĩnh vực dữ liệu lớn trên trang Dice.com. Nghiên cứu đã làm rõ nền tảng lý thuyết toán học của các mô hình sinh xác suất PLSA và LDA, đồng thời xây dựng quy trình thực nghiệm hoàn chỉnh trên môi trường ngôn ngữ R từ thu thập dữ liệu, tiền xử lý đến trích xuất 10 chủ đề tiềm ẩn. Các kết quả định lượng về tần suất từ khóa chuyên môn như Java, Python, SQL, Excel, Hadoop và AWS phản ánh khách quan yêu cầu thực tế của thị trường tuyển dụng đối với kỹ sư công nghệ thông tin. Đây là tài liệu tham khảo hữu ích cho việc nghiên cứu khai phá văn bản và hỗ trợ định hướng đào tạo công nghệ bám sát nhu cầu doanh nghiệp.