Tìm kiếm tương đồng ngữ nghĩa

Một phần của tài liệu Xây dựng hệ quản trị đào tạo tích hợp mạng xã hội (Trang 143 - 146)

5 Phân tích và thiết kế hệ thống

6.6Tìm kiếm tương đồng ngữ nghĩa

Nhóm làm đề tài sử dụng tập dữ liệu Quora Question Pairs để thử nghiệm tìm kiếm giải thuật và mơ hình phù hợp để hiện thực tính năng tìm kiếm về tương đồng ngữ nghĩa. Tập dữ liệu này bao gồm các cặp câu hỏi được lấy từ dữ liệu trên website Quora với nhãn là 0 hoặc 1 tương ứng với trùng hoặc khơng trùng.

Hình 48: Miêu tả tập dữ liệu Quora Question Pairs.

Nhóm làm đề tài thực hiện tiền xử lý các câu hỏi trong tập dữ liệu để phù hợp với nhiều mơ hình và giải thuật khác nhau. Các bước tiền xử lý bao gồm: chuyển đổi dạng viết tắt tiếng anh, chuyển đổi một vài từ đồng nghĩa (như e-mail thành email). Sau đó, nhóm làm đề tài thực hiện kiểm thử với ba giải thuật và mơ hình sau:

1. Mơ hình Sentence Transformer dựa trên biến thể của BERT có tên là RoBERTa (pre- trained)

2. Bộ vector hóa TF-IDF Vectorizer của thư viện sklearn.

3. Sử dụng mơ hình Universal Sentence Encoder của Google (pre-trained).

Nhóm làm đề tài thực hiện đánh các mơ hình trên bằng cách đưa từng cặp câu hỏi vào từng mơ, tính ra embedding và lấy hàm cosine similarity của chúng. Nếu giá trị này lớn hơn 0.5 thì mơ hình đó tiên đốn hai câu văn này trùng nhau, ngược lại là khơng trùng nhau. Từ đó, thu được các ma trận confusion như sau:

Hình 49: Ma trận confusion của mơ hình BERT (với hàng là nhãn, cột là giá trị dự đốn).

Hình 51: Ma trận confusion của Universal Sentence Encoder.Từ đó ta thu được các metric đánh giá ở bảng sau: Từ đó ta thu được các metric đánh giá ở bảng sau:

Mơ hình Precision Recall F-score

Bert 0.51 0.99 0.67

TF-IDF 0.56 0.42 0.48

USE 0.57 0.02 0.04

Bảng 101: Kết quả kiểm thử một vài mơ hình thường dùng cho đánh giá tương đồng ngữ nghĩa

Từ kết quả trên, nhóm làm đề tài quyết định sử dụng mơ hình pretrained RoBERTa của thư viện Sentence-Transformer.

Ngồi ra, nhóm cũng thực hiện kiểm thử hai chiến lược xây dựng mơ hình chỉ sử dụng mơ hình Bi-Encoder và kết hợp cả Bi-Encoder và Cross-Encoder (được mơ tả ở phần Cơ sở lý thuyết). Nhóm làm đề tài thử nghiệm trên cùng tập dữ liệu là Quora, sử dụng thư viện đánh giá BEIR (một thư viện chuyên đánh giá cho các mơ hình thuộc tìm kiếm ngữ cảnh), thu được kết quả như sau:

Mơ hình NDCG@1 NDCG@3 NDCG@5 NDCG@10

Bi-Encoder 0.727 0.76882 0.7865 0.80529

Bi-Encoder +

Cross-Encoder 0.722 0.76724 0.78778 0.80402

Mơ hình MAP@1 MAP@3 MAP@5 MAP@10

Bi-Encoder 0.62954 0.73068 0.74782 0.75966

Bi-Encoder +

Cross-Encoder 0.62351 0.72751 0.74716 0.75769

Bảng 103: Đánh giá theo MAP

Có thể thấy, việc thêm Cross-encoder vào hệ thống khơng làm tăng chất lượng của mơ hình trong việc tìm kiếm theo ngữ cảnh như nhận định ban đầu. Nhóm làm đề tài quyết định chỉ sử dụng một Bi-encoder để hiện thực tính năng tìm kiếm theo tương đồng ngữ cảnh.

6.6.2 Tích hợp vào hệ thống

Hệ thống tận dụng cơng nghệ ElasticSearch để lưu trữ dữ liệu câu hỏi đã được chuyển thành dạng embedding dưới kiểu dữ liệu dense vector. Khi truy vấn, chúng ta sử dụng hàm cosine similarity làm score để sắp xếp kết quả (thay vì sử dụng BM25 như tìm kiếm truyền thống).

Hình 52: Truy vấn tìm kiếm theo hàm sắp xếp custom là cosine similarity (cịn có tên là angular).

Một phần của tài liệu Xây dựng hệ quản trị đào tạo tích hợp mạng xã hội (Trang 143 - 146)