Tìm kiếm theo 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 32 - 35)

2 Cơ sở lý thuyết và công nghệ

2.1 Cơ sở lý thuyết

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

Tìm kiếm theo tương đồng ngữ nghĩa (Semantic Similarity Search) là một tác vụ trong mảng Xử lý ngôn ngữ tự nhiên, giúp tìm kiếm các tài liệu trong kho tài liệu dựa trên mức độ tương đồng về mặt ngữ nghĩa so với câu truy vấn ban đầu. Tác vụ này có nhiều ứng dụng trong thực tế, đặc biệt là ở các trang web và hệ thống vấn đáp. Ở các hệ thống này, người dùng thường có nhu cầu tra vấn các câu trả lời đối với câu hỏi mà mình sắp đặt ra, nhưng lại rất ngại việc phải tự tạo câu hỏi và gửi đến hệ thống, vì nhiều lý do như: thời gian chờ để được trả lời có thể lâu, câu hỏi có thể khơng được diễn đạt q tốt, v.v.. Do đó, việc xây dựng một cơng cụ tìm kiếm có khả năng dựa vào ngữ nghĩa để cho ra được kết quả tương đồng với câu hỏi mà người dùng muốn đặt là rất quan trọng. Một số ứng dụng khác của bài tốn này có thể kể đến như: phát hiện đạo văn, phát hiện spam, v.v..

Tác vụ tìm kiếm này có thể được chia thành ba cơng đoạn như sau:

1. Xây dựng dạng biểu diễn vector cho câu văn (hoặc đoạn văn) sao cho mối quan hệ ngữ nghĩa giữa các từ được đảm bảo và các câu văn có độ tương đồng cao sẽ nằm gần nhau trong siêu phẳng chứa các vector biểu diễn đó. Cách làm này có tên gọi là sentence embedding. Một số phương pháp sentence embedding nổi tiếng có thể kể đến như TF- IDF vectorizer, Doc2Vec, BERT, Universal Sentence Encode, …

2. Lưu trữ các vector biểu diễn của toàn bộ kho dữ liệu ở một cơ sở dữ liệu nào đó. Các hệ cơ sở dữ liệu tìm kiếm như ElasticSearch đã có hỗ trợ lưu trữ dense vector (là dạng biểu diễn sinh ra bởi kỹ thuật sentence embedding kể trên) và đánh index. Một số giải pháp có hiệu năng cao hơn sử dụng việc tìm kiếm Approximate Nearest Neighbor (xấp xỉ việc tìm kiếm K đối tượng gần giống nhất) để tăng hiệu năng, có thể kể đến là ANN, FAISS, nhưng lại thiếu khả năng lọc tài liệu dựa theo nghiệp vụ của hệ thống. (ví dụ lọc câu hỏi theo thể loại Sức khỏe chẳng hạn).

3. Tại thời điểm truy vấn, câu truy vấn sẽ được đưa vào mơ hình sentence embedding như ở bước 1 rồi đưa vào các cơ sở dữ liệu tìm kiếm ở 2 để tìm ra K tài liệu hoặc câu văn có ngữ nghĩa giống nhất dựa trên chỉ số tương đồng nào đó (thường dùng nhất là cosine similarity).

Việc lựa chọn kỹ thuật sentence embedding do vậy có vị trí quan trọng trong việc ảnh hưởng đến chất lượng của hệ thống tìm kiếm. Kỹ thuật được nhóm lựa chọn để hiện thực

trong bài luận văn là BERT (Bidirectional Encoder Representations from Transformers). Đây là một mơ hình dùng để giải quyết tác vụ language modelling trong NLP: xác định xác suất một câu văn cho trước có hợp lệ trong ngơn ngữ chỉ định hay khơng. Mơ hình này có thể được mở rộng để giải quyết nhiều bài toán NLP khác như Question Answering, Named Entity Recognition, v.v..

Mơ hình BERT mặc dù khơng được huấn luyện trực tiếp để giải quyết bài toán Câu văn tương đồng, chúng ta hồn tồn có thể fine-tuning mơ hình này để nó phù hợp với bài tốn đặt ra. Điều này là bởi BERT có khả năng lưu trữ ý nghĩa và bản chất của từ trong câu văn dưới dạng dense vector (trái ngược với one-hot vector chỉ chứa duy nhất một giá trị 1 và toàn bộ đều là 0). Hình thức fine-tuning này sử dụng cách huấn luyện Siamese Network khá nổi tiếng trong bài tốn nhận diện khn mặt:6

Khi huấn luyện, hai câu văn (hoặc đoạn văn) lần lượt được đưa vào BERT để sinh ra các vector chứa đựng thơng tin ngữ cảnh của câu văn. Vì kết quả trả ra này có số chiều khác nhau phụ thuộc vào độ dài ban đầu của câu văn, lớp pooling (thường là mean pooling) được thêm vào để chuẩn hóa độ dài vector thành 768. Sau đó, ta sử dụng hàm mục tiêu cosine similarity và hàm mất mát là mean-squared error để huấn luyện mơ hình. Một số hàm mất mát khác như Softmax, hay Triplet Loss cũng được dùng để huấn luyện mơ hình (được mơ tả kỹ trong [21]). Dữ liệu được huấn luyện thường có nhãn là một chỉ số thể hiện mức độ tương đồng giữa hai câu văn và được chuẩn hóa về thành từ 0 đến 1. Việc sử dụng dữ liệu kiểu này thay vì dữ liệu có nhãn là giá trị nhị phân 0 hoặc 1 (không tương đồng hoặc tương đồng) là tối quan trọng để bảo đảm mơ hình ngồi khả năng nhận diện sự tương đồng thì cịn có thể xếp hạng được mức độ tương đồng đó – thiết yếu cho bài tốn Tìm kiếm theo tương đồng ngữ nghĩa ban đầu.

Mơ hình được huấn luyện như trên cịn có một tên gọi khác là Bi-Encoder, để phân biệt với mơ hình cũng dùng hình thức sentence embedding để nhận dạng độ tương đồng là Cross- Encoder.

[6] Tham khảo [21]

Hình 6: Phương pháp huấn luyện và sử dụng BERT để tiên đoán mức độ tương đồng giữ các câu văn. để tiên đoán mức độ tương đồng giữ các câu văn.

Hình 7: Sự khác nhau giữa Bi-Encoder và Cross-Encoder.

Hình trên7 thể hiện điểm khác biệt trong việc huấn luyện hai mơ hình Bi-Encoder và Cross-Encoder. Ở Cross-encoder, hai câu văn được đưa vào mơ hình BERT cùng lúc rồi đưa qua một bộ classifier (có thể là hàm sigmoid) để cho ra giá trị từ 0 đến 1. Các tác giả ở [21] cho rằng Cross-Encoder có chất lượng tốt hơn Bi-Encoder, nhưng vì khơng sản sinh ra sentence embedding nên khơng thể dùng vào mục đích index vào cơ sở dữ liệu. Rõ ràng nếu ta sử dụng Cross-Encoder để tìm kiếm thì hiệu năng sẽ cực kì chậm vì mơ hình phải tính tốn O(n) lần embedding trung gian. Ngược lại, nếu dùng Bi-encoder, ta có thể tính embedding của tồn bộ kho văn trước, lúc truy vấn ta chỉ cần tính tốn embedding cho câu truy vấn và tính cosine similarity giữa nó với các câu văn cịn lại. Vì cosine similarity là một hàm số khá hiệu quả về mặt tính tốn, hiệu năng được đảm bảo.

Tuy vậy, Cross-Encoder vẫn có thể được sử dụng để bổ trợ Bi-Encoder trong việc sắp xếp lại các kết quả tìm kiếm của Bi-Encoder. Hình dưới đây minh họa một phương pháp sử dụng cả hai mơ hình để tiến hành tìm kiếm theo tương đồng ngữ nghĩa (trích từ [19]):

Hình 8: Mơ tả q trình tìm kiếm dựa vào tiến trình Retrieve-Rerank.

Ta cho Bi-Encoder lọc ra một số lượng các kết quả tìm kiếm tiềm năng nhất và đưa vào Cross-Encoder để nó sắp xếp lại kết quả cho phù hợp rồi lọc ra K kết quả phù hợp nhất. Vì Cross-encoder được đánh giá là có chất lượng tiên đốn tốt hơn Bi-Encoder, ta mong muốn

các kết quả trả ra sẽ phù hợp với câu truy vấn nhất và có thứ tự đúng đắn nhất. Thứ tự của kết quả trả ra cũng đặc biệt quan trọng trong các dạng bài tốn Truy vấn thơng tin như này. Rõ ràng nếu kết quả trả ra của hệ thống có phù hợp với người dùng đến mấy nhưng nếu người dùng phải lướt qua nhiều trang mới thấy được kết quả thì cũng vơ giá trị.

Các chỉ số thường được sử dụng để đánh giá kết quả tìm kiếm được áp dụng trong bài toán này (và cũng thường được áp dụng ở bài toán Giới thiệu) là MRR, MAP, NDCG và Recall at K. Tóm tắt các chỉ số này như sau:

 Mean Reciprocal Rank: với Q là tập hợp các truy vấn đến cơng cụ tìm kiếm, ranki là vị

trí của kết quả phù hợp đầu tiên từ câu truy vấn i.

MRR= 1 |Q|i=1 |Q| 1 ranki

Có thể thấy cơng thức này chỉ tập trung nhiều vào thứ hạng của kết quả tìm kiếm phù hợp đầu tiên (trong bài toán là kết quả đầu tiên tương đồng với câu truy vấn ban đầu).  Mean Average Position: được tính bằng cách lấy trung bình các Average Position của

từng câu truy vấn trong tập truy vấn, với Average Position được định nghĩa dựa trên tổng của tích Precision tại từng chập k phần tử đầu tiên của kết quả trả về (k chạy từ 1 đến n là số lượng phần tử trả về) và chỉ số biểu thị cho sự phù hợp của kết quả trả ra tại (0 nếu không phù hợp, 1 nếu phù hợp), chia cho số lượng các kết quả phù hợp:

AP=k=1 n P(k)rel(k) ∑ k=1 n rel(k)

Hệ số này hoạt động khá tốt trong trường hợp việc đánh giá sự phù hợp giữa câu truy vấn và kết quả chỉ có giá trị 0 hoặc 1.

 Trong trường hợp mức đồ phù hợp có thể nhận một dãy số, hệ số thường được sử dụng sẽ là Normalized Discounted Cumulative Gain. Biểu diễn hệ số này dưới dạng công thức khá phức tạp nên sẽ không được thực hiện trong bài luận văn này. NDCG khá tương đồng với MAP. Cả hai cùng cho giá trị lớn đối với những câu truy vấn có kết quả mà ở đó các item phù hợp được sắp xếp lên đầu. NDCG có khả năng tiếp nhận được sự khác nhau về mức độ phù hợp giữa các kết quả trong câu truy vấn (kết quả này phù hợp hơn kết quả kia).

2.2 Công nghệ sử dụng2.2.1 Front-end: VueJS

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 32 - 35)

Tải bản đầy đủ (PDF)

(185 trang)