Tổng quan nghiên cứu

Trong bối cảnh World Wide Web bùng nổ với hơn 50 triệu tỉ tài liệu được đánh chỉ mục trên không gian số toàn cầu, nhu cầu tìm kiếm và truy hồi thông tin chính xác của người dùng trở nên cấp thiết hơn bao giờ hết. Tại thị trường Việt Nam, công cụ tìm kiếm Cốc Cốc ghi nhận hàng triệu lượt truy vấn mỗi tuần dành riêng cho nhu cầu giải trí và thưởng thức phim ảnh trực tuyến. Trước đây, hệ thống tìm kiếm phim chuyên biệt được xây dựng và vận hành đơn lẻ trên một máy chủ với các trọng số xếp hạng heuristic được tinh chỉnh thủ công. Cấu trúc này nhanh chóng bộc lộ hạn chế lớn về năng lực mở rộng khi cơ sở dữ liệu phình to, đồng thời gây ra hiện tượng quá khớp (over-fitting) đối với nhiều dạng truy vấn phức tạp.

Nhằm giải quyết triệt để nút thắt cổ chai về hiệu năng và chất lượng tìm kiếm, 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 tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã đề xuất giải pháp xếp hạng kết quả tìm kiếm kết hợp tính toán song song. Mục tiêu cốt lõi của đề tài là xây dựng kiến trúc phân tán dựa trên nền tảng Apache Spark và công cụ Elasticsearch, ứng dụng kỹ thuật học máy xếp hạng (Learning to Rank) theo phương pháp Listwise nhằm tự động hóa tối ưu độ liên quan giữa truy vấn và tài liệu. Nghiên cứu được triển khai thực nghiệm trực tiếp trên hệ thống tìm kiếm thực tế của Cốc Cốc trong năm 2016. Kết quả cho thấy giải pháp đã rút ngắn thời gian xử lý truy vấn hơn 2,5 lần trên cụm 3 máy tính, đồng thời nâng tỷ lệ nhấp chuột (Click-Through Rate - CTR) từ 8,57% lên 12,30%, tạo bước đột phá về cả năng lực tính toán phân tán lẫn trải nghiệm người dùng 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 trên nền tảng lý thuyết truy hồi thông tin (Information Retrieval) cổ điển kết hợp các mô hình học máy hiện đại. Về xếp hạng theo độ liên quan, luận văn ứng dụng mô hình không gian vector (Vector Space Model) với trọng số TF-IDF, mô hình xác suất Best Match 25 (BM25) và mô hình ngôn ngữ thống kê LMIR. Về xếp hạng theo độ quan trọng, thuật toán PageRank kinh điển dựa trên chuỗi Markov với hệ số hãm alpha bằng 0,85 được khai thác để đo lường mức độ uy tín của liên kết web.

Điểm trọng tâm trong khung lý thuyết của đề tài là phương pháp học máy xếp hạng (Learning to Rank) với ba hướng tiếp cận: Pointwise, Pairwise và Listwise. Trong đó, cách tiếp cận Listwise thông qua thuật toán ListNet được lựa chọn làm giải pháp chủ đạo nhờ khả năng tối ưu trực tiếp danh sách tài liệu ứng với từng truy vấn, khắc phục triệt để nhược điểm xem xét cục bộ của Pointwise và Pairwise. Để thực thi tính toán phân tán, luận văn khai thác cấu trúc dữ liệu RDD (Resilient Distributed Datasets) của Apache Spark – nền tảng cho phép tính toán trên bộ nhớ RAM với tốc độ nhanh hơn Hadoop MapReduce từ 10 đến 100 lần, kết hợp với cơ chế phân mảnh Shard và nhân bản Replicas trong hệ thống phân tán Elasticsearch.

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

Nghiên cứu áp dụng quy trình thực nghiệm nghiêm ngặt trên tập dữ liệu thực tế quy mô lớn từ hệ thống Cốc Cốc. Dữ liệu đầu vào bao gồm 117.094 bản ghi thông tin phim từ thư viện IMDb và 213.253 bản ghi phim trực tuyến thu thập từ 7 cổng phim lớn tại Việt Nam thông qua công cụ bóc tách HTML Jsoup. Cỡ mẫu hành vi người dùng gồm 583.129 truy vấn kèm lịch sử nhấp chuột (query log) được tích lũy liên tục trong 3 tháng. Phương pháp chọn mẫu là chọn mẫu có chủ đích dựa trên luật lọc, trích xuất chính xác các truy vấn khớp với cơ sở dữ liệu phim và có liên kết nhấp chuột trỏ về các tên miền xem phim trực tuyến uy tín.

Quy trình phân tích sử dụng vector đặc trưng 11 chiều bao gồm: điểm số BM25 tiêu đề và nội dung, chỉ số IDF, độ dài văn bản, thứ hạng trang, thứ hạng domain, điểm đánh giá IMDb, tổng lượt click lịch sử và khoảng cách năm sản xuất. Thuật toán ListNet trong thư viện RankLib 2.7 được triển khai huấn luyện trên tập dữ liệu 230.000 cặp truy vấn - tài liệu. Việc lựa chọn kết hợp Apache Spark và Elasticsearch thay vì cơ sở dữ liệu quan hệ truyền thống xuất phát từ yêu cầu xử lý song song trên bộ nhớ trong, giúp loại bỏ hoàn toàn độ trễ I/O đĩa cứng. Toàn bộ quá trình nghiên cứu và thử nghiệm diễn ra xuyên suốt năm 2016 trên hạ tầng gồm 1 máy chủ Master (64GB RAM) và 3 máy chủ Worker (32GB RAM, 24 nhân CPU 2,7 GHz).

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 trên môi trường phân tán đã chứng minh tính ưu việt rõ rệt của giải pháp thông qua các số liệu định lượng:

Thứ nhất, về tốc độ đánh chỉ mục: Khi tiến hành đánh chỉ mục cho 117.094 bản ghi IMDb, 213.253 bản ghi phim online và 583.129 bản ghi log click, cụm 3 máy chủ tính toán song song chỉ mất 13 phút 27 giây, nhanh hơn 2,39 lần so với thời gian 32 phút 15 giây trên một máy chủ đơn lẻ.

Thứ hai, về hiệu năng huấn luyện mô hình: Với tập dữ liệu huấn luyện gồm 230.000 truy vấn và tài liệu, thời gian huấn luyện thuật toán ListNet giảm mạnh từ 2 giờ 30 phút trên máy đơn xuống còn 44 phút trên cụm 3 máy chủ Spark, tương đương mức tiết kiệm 70,67% thời gian xử lý.

Thứ ba, về năng lực phản hồi truy vấn: Khi kiểm thử trên tập dữ liệu gồm 930.321 truy vấn thực tế của người dùng, hệ thống phân tán hoàn thành trong 18 phút 09 giây so với 45 phút 23 giây của máy tính đơn, tăng tốc độ xử lý lên 2,50 lần.

Thứ tư, về chất lượng xếp hạng và mức độ tương tác: Đánh giá A/B trong 10 ngày sau khi triển khai chính thức (14/09/2016 – 24/09/2016) ghi nhận tỷ lệ CTR đạt 12,30% trên 1.579.000 lượt hiển thị, tăng trưởng vượt bậc 43,52% so với tỷ lệ CTR 8,57% (79.107 lượt nhấp trên 923.070 lượt hiển thị) của 10 ngày trước khi áp dụng mô hình (03/09/2016 – 13/09/2016).

Thảo luận kết quả

Sự gia tăng vượt trội của chỉ số CTR từ 8,57% lên 12,30% phản ánh tính đúng đắn của việc áp dụng mô hình học máy ListNet kết hợp vector 11 đặc trưng. Thay vì dựa vào cảm quan để gán trọng số cố định, mô hình tự động cân bằng giữa độ tương đồng ngữ nghĩa BM25, uy tín nội dung IMDb và dữ liệu phản hồi thực tế từ người dùng, đưa các liên kết xem phim chất lượng cao nhất lên vị trí đầu danh sách.

Về mặt kiến trúc, sự kết hợp giữa Elasticsearch Sharding và Apache Spark RDD đã giải quyết triệt để nút thắt I/O đĩa cứng. Dữ liệu sau khi đánh chỉ mục phân tán được Spark truy xuất đồng thời và nạp trực tiếp vào RAM để xử lý học máy, giúp thời gian phản hồi giảm tỷ lệ thuận theo số lượng nút tính toán. Trong các báo cáo phân tích, toàn bộ dữ liệu này có thể được trực quan hóa hiệu quả thông qua biểu đồ cột kép đối sánh thời gian xử lý giữa 1 máy và 3 máy, kết hợp biểu đồ đường thể hiện xu hướng tăng trưởng của tỷ lệ CTR qua hai giai đoạn thử nghiệm.

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

Dựa trên kết quả nghiên cứu và thực tế triển khai tại Cốc Cốc, tác giả đề xuất 4 nhóm giải pháp chiến lược nhằm tối ưu hóa hệ thống:

Thứ nhất, mở rộng quy mô hạ tầng tính toán phân tán. Đội ngũ kỹ thuật hạ tầng cần nâng cấp cụm máy chủ Spark từ 3 nodes hiện tại lên 10 đến 15 nodes trong quý tiếp theo. Giải pháp này hướng tới mục tiêu duy trì độ trễ phản hồi dưới 50 mili-giây khi khối lượng phục vụ vượt mức 5.000.000 lượt truy vấn mỗi ngày.

Thứ hai, làm giàu không gian vector đặc trưng học máy. Nhóm kỹ sư Khoa học dữ liệu nên bổ sung từ 5 đến 8 đặc trưng ngữ nghĩa sâu và tín hiệu ngữ cảnh người dùng trong vòng 6 tháng tới. Mục tiêu đề ra là nâng cao độ chính xác của kết quả gợi ý, thúc đẩy tỷ lệ CTR tăng trưởng thêm 15% đến 20%.

Thứ ba, thiết lập quy trình tái huấn luyện mô hình tự động (Continuous Training Pipeline). Bộ phận Vận hành AI cần xây dựng luồng tự động cập nhật và huấn luyện lại thuật toán ListNet định kỳ 7 ngày một lần dựa trên kho dữ liệu hơn 1.000.000 bản ghi click log mới, đảm bảo hệ thống luôn thích ứng với các phim mới phát hành và duy trì chỉ số MRR trên mức 0,85.

Thứ tư, nhân rộng mô hình sang các dịch vụ tìm kiếm chuyên biệt khác. Ban Quản lý sản phẩm Cốc Cốc nên phê duyệt việc chuyển giao khung kiến trúc Spark – Elasticsearch sang các mảng tìm kiếm tin tức, địa điểm và thương mại điện tử trong năm tài chính tới, kỳ vọng thúc đẩy mức độ tương tác toàn nền tảng tăng tối thiểu 25%.

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

Luận văn là nguồn tài liệu hữu ích và có giá trị ứng dụng cao cho 4 nhóm đối tượng:

Thứ nhất, kỹ sư phát triển máy tìm kiếm (Search Engine Engineers): Nắm vững phương pháp tích hợp công cụ tìm kiếm toàn văn Elasticsearch với khung tính toán Apache Spark để xử lý hàng triệu bản ghi theo thời gian thực.

Thứ hai, chuyên gia Khoa học dữ liệu và Học máy (Data Scientists & ML Engineers): Khai thác quy trình trích xuất vector 11 đặc trưng và phương pháp huấn luyện giải thuật ListNet bằng thư viện RankLib, áp dụng cho các hệ thống gợi ý và xếp hạng dữ liệu lớn.

Thứ ba, giảng viên, nghiên cứu sinh và học viên ngành Hệ thống Thông tin / Khoa học Máy tính: Sử dụng làm tài liệu tham khảo chuẩn mực về bài toán truy hồi thông tin (IR), hiểu rõ lộ trình chuyển dịch từ các thuật toán truyền thống (TF-IDF, BM25, PageRank) sang mô hình học máy phân tán.

Thứ tư, kiến trúc sư giải pháp Dữ liệu lớn (Big Data Architects): Tham khảo case study thực tế trong việc cấu hình Shard/Replicas, khai thác cơ chế RDD trong bộ nhớ để giải quyết triệt để bài toán thắt nút cổ chai I/O trên hệ thống máy chủ doanh nghiệp.

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

Vì sao luận văn lựa chọn hướng tiếp cận Listwise thay vì Pointwise hay Pairwise?

Thuật toán ListNet thuộc nhánh Listwise tối ưu hóa trực tiếp cấu trúc của toàn bộ danh sách kết quả ứng với mỗi truy vấn, phản ánh sát thực nhất bản chất bài toán tìm kiếm. Trong khi Pointwise bỏ qua thứ tự vị trí và Pairwise chỉ xét từng cặp tài liệu rời rạc, Listwise giúp kết quả xếp hạng tự nhiên và chính xác hơn, nâng tỷ lệ CTR từ 8,57% lên 12,30%.

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

Apache Spark xử lý và lưu trữ dữ liệu trực tiếp trên bộ nhớ RAM thông qua cấu trúc RDD, đạt tốc độ nhanh hơn Hadoop tới 100 lần trên RAM và 10 lần trên ổ cứng. Trong thực nghiệm với 230.000 mẫu dữ liệu, Spark trên cụm 3 máy chủ đã rút ngắn thời gian huấn luyện từ 2,5 giờ xuống chỉ còn 44 phút.

Hệ thống sử dụng những đặc trưng cốt lõi nào để huấn luyện mô hình xếp hạng phim?

Mô hình khai thác vector đặc trưng 11 chiều toàn diện, kết hợp giữa độ tương đồng văn bản (điểm BM25 và IDF của tiêu đề/nội dung), tín hiệu chất lượng tác phẩm (điểm đánh giá từ 117.094 bản ghi IMDb, năm sản xuất), uy tín nguồn cấp (hạng trang, hạng domain) và phản hồi thực tế từ người dùng (tổng lượt click).

Làm thế nào để hệ thống lọc chính xác các truy vấn tìm kiếm phim từ kho query log?

Hệ thống áp dụng cơ chế xác thực kép: đối soát từ khóa truy vấn với 213.253 bản ghi phim đã đánh chỉ mục trong Elasticsearch, đồng thời kiểm tra liên kết nhấp chuột có thuộc danh sách các tên miền phim trực tuyến uy tín hay không, từ đó thu được 583.129 mẫu truy vấn chuẩn xác.

Hiệu năng xử lý thực tế thay đổi như thế nào khi mở rộng từ 1 máy lên 3 máy chủ?

Hiệu năng hệ thống tăng trưởng gần như tuyến tính: thời gian đánh chỉ mục gần 913.000 bản ghi giảm từ 32 phút 15 giây xuống 13 phút 27 giây; thời gian thực thi cho 930.321 truy vấn giảm từ 45 phút 23 giây xuống 18 phút 09 giây, chứng minh năng lực mở rộng quy mô vượt trội.

Kết luận

Công trình nghiên cứu thạc sĩ của tác giả Nguyễn Đông Đức đã đóng góp những giá trị học thuật và thực tiễn vững chắc:

  • Hoàn thiện mô hình tìm kiếm và xếp hạng chuyên biệt kết hợp giữa Apache Spark và Elasticsearch, giải quyết triệt để giới hạn xử lý của hệ thống máy chủ đơn.
  • Ứng dụng thành công thuật toán học máy xếp hạng ListNet trên không gian vector 11 đặc trưng, nâng cao độ chính xác cho bài toán tìm kiếm phim trực tuyến.
  • Rút ngắn hơn 70% thời gian huấn luyện mô hình và tăng tốc độ xử lý gần 1.000.000 truy vấn lên gấp 2,5 lần trên cụm tính toán phân tán.
  • Nâng tỷ lệ tương tác người dùng (CTR) từ 8,57% lên 12,30% chỉ sau 10 ngày vận hành thử nghiệm trên môi trường thực tế của Cốc Cốc.
  • Định hình lộ trình mở rộng quy mô cụm máy chủ và chuyển giao công nghệ cho các phân hệ tìm kiếm tin tức, mua sắm trong 6 đến 12 tháng tới.

Bạn đọc và các nhà phát triển quan tâm có thể tiếp tục nghiên cứu toàn văn luận văn để áp dụng giải pháp tính toán song song và học máy xếp hạng vào các bài toán xử lý dữ liệu lớn hiện đại.