Tổng quan nghiên cứu

Trong kỷ nguyên bùng nổ dữ liệu số với hơn 50 triệu tỉ tài liệu web được đánh chỉ mục trên toàn cầu, các công cụ tìm kiếm đóng vai trò là cửa ngõ thiết yếu giúp người dùng tiếp cận thông tin chuẩn xác. Tại thị trường Việt Nam vào năm 2016, hệ thống tìm kiếm Cốc Cốc phải xử lý hàng triệu lượt truy vấn giải trí mỗi tuần, trong đó nhu cầu tìm kiếm phim trực tuyến chiếm tỷ trọng đặc biệt lớn. Tuy nhiên, kiến trúc tìm kiếm đơn máy chủ ban đầu bộc lộ nhiều điểm nghẽn nghiêm trọng khi dữ liệu phim phình to, đồng thời phương pháp gán trọng số heuristic cố định dựa trên cảm quan dẫn đến hiện tượng quá khớp (overfitting) và làm giảm độ chính xác của kết quả trả về.

Nhằm khắc phục triệt để các hạn chế này, luận văn thạc sĩ chuyên ngành Hệ thống Thông tin của tác giả Nguyễn Đông Đức, dưới sự hướng dẫn khoa học của PGS. Nguyễn Ngọc Hóa tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội, đã tập trung nghiên cứu đề tài: "Giải pháp xếp hạng và tính toán song song trên nền tảng Apache Spark". Mục tiêu trọng tâm của nghiên cứu là xây dựng mô hình học máy xếp hạng (Learning to Rank) theo tiếp cận Listwise (thuật toán ListNet) kết hợp cùng năng lực tính toán song song phân tán của Apache Spark và hệ quản trị dữ liệu Elasticsearch. Nghiên cứu được triển khai thực nghiệm trực tiếp trên dữ liệu người dùng thực tế tại công cụ tìm kiếm Cốc Cốc trong giai đoạn năm 2016. Kết quả ứng dụng giải pháp đã chứng minh hiệu quả vượt bậc khi giúp nâng tỷ lệ nhấp chuột CTR từ 8,57% lên 12,3%, đồng thời rút ngắn hơn 58% thời gian lập chỉ mục và hơn 60% thời gian xử lý truy vấn thực tế.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên sự giao thoa giữa lý thuyết truy hồi thông tin hiện đại và các mô hình học máy xếp hạng có giám sát. Về mặt truy hồi thông tin, tác giả phân tích hai nhóm mô hình cốt lõi:

Thứ nhất, mô hình xếp hạng dựa trên độ liên quan bao gồm mô hình không gian vector với hàm tính trọng số TF-IDF được phát triển từ thập niên 1960, mô hình chỉ mục ngữ nghĩa ẩn LSI dựa trên phân rã giá trị suy biến SVD, và mô hình xác suất BM25 cùng mô hình ngôn ngữ thống kê LMIR với hệ số làm mịn lambda.

Thứ hai, mô hình xếp hạng dựa trên độ quan trọng với thuật toán nền tảng PageRank, áp dụng chuỗi Markov duyệt web ergodic cùng hệ số hãm alpha cố định bằng 0,85 để tính toán vector riêng xác định uy tín của trang web.

Trong lĩnh vực học máy xếp hạng (LETOR), luận văn phân định rõ 3 hướng tiếp cận chính: Pointwise (chuyển đổi bài toán xếp hạng thành bài toán hồi quy hoặc phân lớp đơn lẻ), Pairwise (xem xét thứ tự tương đối giữa từng cặp tài liệu) và Listwise (tối ưu hóa trực tiếp thứ tự toàn bộ danh sách tài liệu ứng với một truy vấn). Luận văn lựa chọn thuật toán ListNet thuộc hướng tiếp cận Listwise, sử dụng hàm mất mát Cross Entropy dựa trên phân phối xác suất danh sách để tối ưu hóa không gian giả thuyết với vector đặc trưng 11 chiều, bao gồm các thuộc tính văn bản, độ dài, điểm BM25, thứ hạng PageRank, điểm số IMDb, số lượt click và độ mới của phim.

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp chọn mẫu có chủ đích kết hợp với phân tích dữ liệu nhật ký người dùng (query log) quy mô lớn. Nguồn dữ liệu thực nghiệm bao gồm 117.094 bản ghi thông tin phim thu thập từ thư viện điện ảnh IMDb và 213.253 bản ghi phim trực tuyến bóc tách tự động từ 7 website phim phổ biến tại Việt Nam (phimmoi.net, hayhaytv.vn, hdviet.com, hdonline.vn, phim14.net, bomtan.org, phim3s.net) bằng thư viện Jsoup. Bên cạnh đó, tập mẫu hành vi người dùng gồm 583.129 truy vấn được trích xuất từ lịch sử tìm kiếm 3 tháng liên tiếp của Cốc Cốc để tạo bộ dữ liệu huấn luyện và kiểm thử.

Phương pháp phân tích được thực hiện thông qua việc xây dựng pipeline tính toán song song phân tán. Dữ liệu sau khi làm sạch được đánh chỉ mục vào Elasticsearch thông qua module Elasticsearch-jdbc. Thuật toán ListNet được huấn luyện bằng thư viện RankLib 2.7 trên tập dữ liệu 230.000 cặp truy vấn - tài liệu. Hạ tầng thực nghiệm gồm cụm 4 máy chủ chạy hệ điều hành Debian 8.0: 1 máy chủ Master (CPU 24 lõi 2.7 GHz, 64GB RAM, 1TB HDD) và 3 máy chủ Worker (mỗi máy CPU 24 lõi 2.7 GHz, 32GB RAM, 2TB HDD). Lý do lựa chọn Apache Spark 1.6.1 và cấu trúc RDD (Resilient Distributed Datasets) là khả năng xử lý tính toán trong bộ nhớ RAM nhanh gấp 100 lần so với Hadoop MapReduce truyền thống, đáp ứng hoàn hảo yêu cầu tìm kiếm thời gian thực.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình thực nghiệm đối sánh giữa mô hình xử lý đơn máy và mô hình phân tán 3 máy tính đã mang lại những kết quả định lượng rõ rệt:

Thứ nhất, tốc độ đánh chỉ mục dữ liệu được tối ưu hóa vượt trội. Khi lập chỉ mục cho 117.094 bản ghi IMDb, 213.253 dữ liệu phim online và 583.129 bản ghi click của người dùng, hệ thống đơn máy mất 32 phút 15 giây. Khi triển khai trên cụm 3 máy song song với Apache Spark và Elasticsearch, thời gian giảm xuống chỉ còn 13 phút 27 giây, đạt mức tiết kiệm 58,2% thời gian xử lý.

Thứ hai, thời gian huấn luyện mô hình học máy được rút ngắn ấn tượng. Với tập dữ liệu huấn luyện gồm 230.000 truy vấn và tài liệu, mô hình đơn máy cần 2 giờ 30 phút để hoàn thành, trong khi cụm tính toán song song 3 máy chỉ mất 44 phút, tương đương mức giảm 70,7% thời gian huấn luyện (nhanh hơn xấp xỉ 3,41 lần).

Thứ ba, hiệu năng xử lý truy vấn người dùng tăng tốc mạnh mẽ. Thử nghiệm chạy hàng loạt trên 930.321 truy vấn thực tế cho thấy thời gian phản hồi giảm từ 45 phút 23 giây trên 1 máy xuống còn 18 phút 09 giây trên 3 máy tính (giảm 60,0% độ trễ xử lý).

Thứ tư, chất lượng xếp hạng và trải nghiệm người dùng được nâng cao vượt bậc. Đánh giá tỷ lệ nhấp chuột CTR trong hai khung thời gian đối chứng liên tiếp 10 ngày (giai đoạn trước áp dụng từ 03/09/2016 đến 13/09/2016 và giai đoạn sau áp dụng từ 14/09/2016 đến 24/09/2016) cho thấy: số lượt hiển thị tăng từ 923.070 lên 1.029.097 lượt, số lượt nhấp chuột tăng mạnh từ 79.107 lên 126.579 lượt, kéo theo chỉ số CTR tăng từ 8,57% lên 12,3% (tăng trưởng tương đối 43,5%).

Thảo luận kết quả

Nguyên nhân cốt lõi giúp hệ thống đạt được bước nhảy vọt về hiệu năng tính toán là nhờ cơ chế phân vùng dữ liệu và tính toán song song đa luồng của Apache Spark kết hợp cùng kiến trúc Shard phân tán của Elasticsearch. Thay vì đọc/ghi liên tục trên đĩa cứng như Hadoop MapReduce, Spark lưu trữ trực tiếp các tập dữ liệu trung gian vào bộ nhớ RAM thông qua cấu trúc RDD bất biến, giúp triệt tiêu độ trễ nghẽn cổ chai I/O. Khi người dùng gửi truy vấn, hệ thống phân tán sẽ trích xuất top 500 bản ghi thô từ Elasticsearch, sau đó Spark thực hiện tính toán song song 11 chiều vector đặc trưng và áp dụng mô hình ListNet để tổng hợp kết quả trả về người dùng qua JSON Web Service.

Về chất lượng xếp hạng, mô hình ListNet đã chứng minh tính ưu việt hoàn toàn so với các công thức heuristic gán trọng số thủ công trước đây. Bằng việc tối ưu trực tiếp trên toàn bộ danh sách kết quả thay vì từng cặp riêng lẻ, ListNet kết hợp hài hòa giữa độ khớp ngữ nghĩa (BM25 tiêu đề, nội dung), độ uy tín website (PageRank, domain rank), đánh giá chuyên môn (điểm IMDb) và phản hồi thực tế từ cộng đồng (số lượt click). Kết quả này hoàn toàn nhất quán với các nghiên cứu công bố tại hội nghị SIGIR về tập dữ liệu LETOR, khẳng định hướng tiếp cận Listwise là sự lựa chọn tối ưu cho các công cụ tìm kiếm hiện đại. Dữ liệu thực nghiệm của luận văn được trực quan hóa thông qua các bảng đối chuẩn thời gian thực thi và biểu đồ so sánh CTR trước - sau, minh chứng rõ ràng tính khả thi khi tích hợp vào môi trường sản xuất thực tế của Cốc Cốc.

Đề xuất và khuyến nghị

Dựa trên kết quả thực nghiệm thành công tại công cụ tìm kiếm Cốc Cốc, luận văn đề xuất 4 nhóm giải pháp chiến lược nhằm tối ưu hóa hạ tầng và mở rộng mô hình xếp hạng:

Thứ nhất, tối ưu hóa cấu hình Sharding và Replicas trên cụm phân tán Elasticsearch. Đội ngũ Kỹ sư Hạ tầng Dữ liệu cần thiết lập số lượng Shard tương thích với số node tính toán thực tế và kích thước dữ liệu dự kiến trong 12 tháng tới, nhằm mục tiêu duy trì độ trễ truy vấn dưới 50ms cho tải 10.000 truy vấn mỗi giây (QPS).

Thứ hai, mở rộng triển khai mô hình học máy xếp hạng Listwise sang các mảng tìm kiếm chuyên biệt khác. Đội ngũ Kỹ sư Tìm kiếm (Search Engineers) nên ứng dụng framework Spark - ListNet này cho các dịch vụ tìm kiếm thương mại điện tử, tin tức thời sự và video trực tuyến trong vòng 6 tháng tới, hướng tới mục tiêu nâng tỷ lệ CTR trung bình toàn hệ thống lên trên 15%.

Thứ ba, nâng cấp thuật toán sang các mô hình tiên tiến như LambdaMART hoặc Deep Learning to Rank. Nhóm Nghiên cứu và Phát triển AI cần triển khai thử nghiệm các giải pháp tăng cường cây quyết định (Gradient Boosted Decision Trees) và mạng nơ-ron sâu trong lộ trình 9 tháng, đặt mục tiêu cải thiện chỉ số đánh giá xếp hạng chuẩn hóa NDCG@10 thêm tối thiểu 5%.

Thứ tư, xây dựng quy trình tự động hóa tái huấn luyện mô hình liên tục (Continuous Retraining Pipeline). Bộ phận MLOps cần thiết lập hệ thống tự động trích xuất hơn 500.000 log click mới mỗi tuần để cập nhật trọng số mô hình định kỳ hàng ngày, đảm bảo hệ thống luôn thích ứng kịp thời với các xu hướng giải trí mới của người dùng trong vòng 4 tháng tới.

Đối tượng nên tham khảo luận văn

Luận văn mang lại giá trị học thuật và thực tiễn sâu sắc cho 4 nhóm đối tượng chính:

Thứ nhất, Kỹ sư Dữ liệu lớn (Big Data Engineers) và Kỹ sư MLOps. Nhóm đối tượng này có thể tham khảo chi tiết kiến trúc tích hợp giữa Apache Spark Core, Spark SQL, thư viện kết nối Elasticsearch-Hadoop và hạ tầng Elasticsearch 4 máy chủ để thiết kế các pipeline xử lý dữ liệu lớn theo thời gian thực có khả năng chịu lỗi cao.

Thứ hai, Kỹ sư Phát triển Hệ thống Tìm kiếm (Search Engineers). Tài liệu cung cấp toàn bộ quy trình xây dựng máy tìm kiếm chuyên biệt, từ thu thập dữ liệu bằng Jsoup, xử lý bóc tách HTML, trích xuất vector đặc trưng 11 chiều đến xây dựng dịch vụ trả kết quả JSON tốc độ cao.

Thứ ba, Học viên cao học và Nghiên cứu sinh ngành Khoa học Máy tính, Hệ thống Thông tin. Luận văn là tài liệu tham khảo chuẩn mực về các thuật toán Learning to Rank (Pointwise, Pairwise, Listwise với ListNet, RankLib) cùng các phương pháp đánh giá định lượng trong lĩnh vực truy hồi thông tin.

Thứ tư, Nhà quản trị sản phẩm công nghệ (Technical Product Managers). Luận văn cung cấp phương pháp luận thực chứng về việc tối ưu hóa trải nghiệm người dùng, minh chứng qua việc chuyển dịch các cải tiến thuật toán thành chỉ số tăng trưởng kinh doanh cụ thể (nâng CTR thêm 3,73% tuyệt đối).

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

Tại sao luận văn lựa chọn tiếp cận Listwise thay vì Pointwise hay Pairwise?

Tiếp cận Pointwise chỉ tối ưu điểm số độc lập từng tài liệu, còn Pairwise chỉ xét cặp nhị phân dẫn đến mất cân bằng thứ hạng tổng thể. Listwise (tiêu biểu là ListNet) trực tiếp nhận toàn bộ danh sách tài liệu làm đầu vào và tối ưu hàm mất mát dựa trên xác suất hoán vị, phản ánh chính xác nhất mục tiêu hiển thị thực tế của công cụ tìm kiếm.

Apache Spark đem lại ưu thế vượt trội gì so với Hadoop MapReduce trong bài toán này?

Apache Spark sử dụng cấu trúc RDD xử lý dữ liệu trực tiếp trên bộ nhớ RAM, giúp tốc độ tính toán nhanh gấp 100 lần so với thao tác đọc/ghi đĩa từ của Hadoop. Trong thực nghiệm, Spark đã giúp giảm thời gian huấn luyện 230.000 mẫu từ 2 giờ 30 phút xuống còn 44 phút.

Vector đặc trưng 11 chiều của mô hình gồm những nhóm thông tin nào?

Vector 11 chiều gồm 4 nhóm yếu tố: nhóm tương đồng văn bản (IDF, độ dài, điểm BM25 của tiêu đề và nội dung), nhóm uy tín liên kết (thứ hạng trang web và domain rank), nhóm chất lượng chuyên môn (điểm số IMDb) và nhóm hành vi người dùng cùng độ mới (tổng lượt click, năm sản xuất).

Vai trò của Elasticsearch trong mô hình kết hợp với Spark là gì?

Elasticsearch đóng vai trò là hệ thống lưu trữ và tìm kiếm full-text phân tán, cho phép lọc nhanh top 500 tài liệu thô liên quan nhất từ hàng trăm nghìn bản ghi thông qua cơ chế phân vùng Shard, tạo đầu vào gọn nhẹ cho Spark thực hiện xếp hạng chi tiết.

Việc CTR tăng từ 8,57% lên 12,3% có ý nghĩa như thế nào trong thực tế?

Mức tăng 3,73% tuyệt đối (tương đương 43,5% tăng trưởng tương đối) trên mẫu hơn 1 triệu lượt hiển thị chứng minh kết quả tìm kiếm đã đáp ứng chính xác ý định của người dùng, giúp họ tìm thấy liên kết xem phim phù hợp ngay tại các vị trí hiển thị đầu tiên mà không cần đổi từ khóa.

Kết luận

Luận văn thạc sĩ của tác giả Nguyễn Đông Đức đã giải quyết trọn vẹn bài toán tối ưu hóa công cụ tìm kiếm thông qua các đóng góp nổi bật:

  • Hệ thống hóa toàn diện cơ sở lý thuyết truy hồi thông tin và các mô hình học máy xếp hạng tiên tiến từ Pointwise, Pairwise đến Listwise.
  • Thiết kế kiến trúc tích hợp hoàn chỉnh giữa Apache Spark và Elasticsearch, khai thác tối đa sức mạnh tính toán song song trên bộ nhớ để giải quyết bài toán dữ liệu lớn.
  • Đề xuất bộ vector đặc trưng 11 chiều tối ưu, kết hợp hài hòa giữa chất lượng nội dung, độ uy tín nguồn tin và tín hiệu tương tác thực tế của người dùng.
  • Thực nghiệm thành công trên dữ liệu thực tế tại Cốc Cốc, chứng minh năng lực rút ngắn 70,7% thời gian huấn luyện và nâng tỷ lệ nhấp chuột CTR từ 8,57% lên 12,3%.
  • Mở ra lộ trình nâng cấp hệ thống trong 3 đến 9 tháng tới với các thuật toán Gradient Boosting và Deep Learning to Rank cho toàn bộ các dịch vụ tìm kiếm chuyên biệt.

Các nhà phát triển hệ thống và nhóm kỹ sư dữ liệu quan tâm đến tối ưu hóa công cụ tìm kiếm phân tán có thể áp dụng ngay khung kiến trúc này để nâng cao hiệu năng và độ chính xác cho nền tảng của mình.