Tìm hiểu kỹ thuật phân cụm để phát hiện ý định trong văn bản ngắn

Chăm sóc khách hàng là một khâu quan trọng trong các doanh nghiệp, bởi nó không những thu thập thông tin để cải thiện sản phẩm, dịch vụ mà còn thấu hiểu nhu cầu khách hàng để hoạch định chiến lược phù hợp hơn. Thời gian gần đây, hoạt động chăm sóc khách hàng dần được tự động hóa nhờ sự phát triển mạnh mẽ của chatbot, hay các thuật toán hỗ trợ hồi đáp tự động dựa trên trí tuệ nhân tạo (AI). Các cuộc hội thoại tự nhiên và thông tin phản hồi chính xác là yếu tố quyết định sự hài lòng của khách hàng. Để đạt được điều đó, việc thấu hiểu ý định người dùng là vô cùng quan trọng. Khác với các kỹ thuật thường thấy, bài viết này cung cấp một phương thức tiếp cận mới, tự động phân cụm dữ liệu từ các tin nhắn văn bản ngắn để xác định và trích xuất ý định của người dùng.

Lập mô hình chủ đề 

Có một số cách để tiếp cận các vấn đề học không giám sát, trong đó kỹ thuật thường xuyên được sử dụng nhất là sử dụng mô hình chủ đề (topic modeling).

Nhiều thuật toán có thể được ứng dụng để thực hiện mô hình hóa chủ đề, nhưng một thuật toán rất phổ biến là Phân bổ Dirichlet tiềm ẩn (tiếng Anh: Latent Dirichlet allocation, hay viết tắt là LDA). LDA là một mô hình sinh mẫu giả định rằng mỗi tài liệu được tạo thành từ sự phân bố của một số chủ đề cố định và mỗi chủ đề được tạo thành từ sự phân bố các từ. Một số khó khăn khi sử dụng LDA (và nhiều thuật toán mô hình hóa chủ đề khác) nằm ở khâu quyết định có bao nhiêu chủ đề thực sự sử dụng, được coi là một siêu tham số mô hình cần thiết. Đồng thời, tính mạch lạc cũng là phương pháp để đánh giá chất lượng của các chủ đề, được tính toán bằng cách đo lường mức độ tương tự của các từ trong mỗi chủ đề. Điểm mạch lạc càng cao thì kết quả càng chính xác.  

Tính nhất quán của LDA được coi là một hàm với các biến số lượng chủ đề được áp dụng cho một mẫu của bộ dữ liệu ngân hàng 77. Nguồn: Toward Data Science

Một hạn chế khác của LDA và các phương pháp tiếp cận mô hình chủ đề tương tự nằm ở việc coi toàn bộ từ vựng trong tài liệu như một “túi từ”, trong đó thứ tự sắp xếp từ không quan trọng. Phương thức này hoạt động tốt đối với các tài liệu dài hơn (với một kho ngữ liệu lớn hơn), trong đó việc xác định các từ cùng xuất hiện có thể cung cấp một bức tranh tốt về các chủ đề. Ngoài ra, thường có một số lượng tương đối nhỏ các chủ đề và các chủ đề khá khác biệt. Tuy nhiên, nội dung văn bản ngắn thường có những thách thức cụ thể, chẳng hạn như xuất hiện hai cụm từ chứa các từ gần giống nhau nhưng ý nghĩa rất khác nhau hoặc hai cụm từ bao hàm cùng một ý định nhưng hầu như không có từ nào chung. Điều này đặc biệt hạn chế tính hữu ích của các phương pháp tiếp cận mô hình chủ đề tiêu chuẩn nhằm xác định ý định trong văn bản ngắn.

Phân cụm embeddings

Ngoài mô hình chủ đề, phân cụm là một cách tiếp cận rất phổ biến khác đối với các vấn đề tự học không giám sát. Để có thể phân cụm dữ liệu văn bản cần đưa ra nhiều quyết định, bao gồm cách xử lý dữ liệu và thuật toán được sử dụng.

Lựa chọn embeddings

Bước đầu tiên cần phải biểu diễn dữ liệu văn bản dưới dạng số, với các phương thức tiếp cận phổ biến bao gồm tạo embeddings, hoặc vector biểu diễn của từng từ để sử dụng cho việc phân cụm. Vì mỗi tin nhắn thường chứa một số lượng từ nhất định, nên có thể chỉ cần lấy trung bình từ việc biểu diễn các từ riêng lẻ trong toàn bộ tin nhắn. Kỹ thuật này hiệu quả trong một số trường hợp, tuy nhiên, giải pháp được đánh giá cao hơn đó là trực tiếp tính toán để tạo embedding một lần cho một câu đầy đủ, như vậy, ý nghĩa và ý định trong câu sẽ rõ ràng hơn. Đặc biệt với các đoạn văn bản ngắn, giải pháp này xử lý những vấn đề về nội dung hay hình thức trùng lặp đã được nêu ra phía trên.

Bộ mã hóa câu toàn cầu của Google (Google’s Universal Sentence Encoder – USE) xuất bản năm 2018 là một mô hình nhúng câu phổ biến, được đào tạo dựa trên nhiều loại dữ liệu, bao gồm Wikipedia, tin tức trên website, và các thảo luận trên diễn đàn. Mô hình này được đánh giá là hiệu quả trong việc xác định ý nghĩa câu. 

Universal Sentence Encoder model. Nguồn: TensorFlow Hub

Năm 2019, Reimers và Gurevych lần đầu giới thiệu một kỹ thuật có tên gọi là Sentence-BERT, một biến thể khác của kiến trúc BERT. Mô hình này sử dụng kiến trúc mạng siamese để tạo ra biểu diễn của câu.

Giảm chiều dữ liệu

Hầu hết các câu sau khi nhúng đều có kích thước lớn (> 500 thuộc tính mỗi câu). Việc giảm kích thước trước khi phân cụm góp phần cải thiện đáng kể đến kết quả.

Kỹ thuật giảm kích thước phổ biến năm 2020 là Phép chiếu xấp xỉ và phép chiếu thống nhất cho phép giảm kích thước (UMAP), nhanh hơn và có khả năng mở rộng cao hơn nhiều so với t-SNE, đồng thời bảo toàn cấu trúc tổng thể của dữ liệu tốt hơn nhiều. 

Lựa chọn thuật toán phân cụm

Lựa chọn tốt nhất là các thuật toán dựa trên mật độ vì chúng không yêu cầu chỉ định số lượng cụm và không quan tâm đến hình dạng cụm. Phân cụm không gian dựa trên mật độ phân cấp (HDBSCAN) đã trở nên phổ biến vì nó có ít siêu tham số hơn và trực quan hơn DBSCAN, đồng thời có hiệu quả mạnh mẽ đối với các cụm có mật độ thay đổi. 

Tạo cụm từ UMAP + HDBSCAN

Hiện tại đã có sẵn 2 thư viện để xâu chuỗi UMAP và HDBSCAN với nhau cho mục đích mô hình hóa chủ đề: Top2Vec (github và paper) và BERTopic (github và article). Tuy nhiên, các siêu tham số mặc định được sử dụng trong cả 2 thư viện đều không xử lý hiệu quả các vấn đề với văn bản ngắn và một kho dữ liệu nhỏ (hầu hết dữ liệu cuối cùng được phân loại bị nhiễu và chỉ tìm thấy tổng số ba cụm). Bài viết này sử dụng trực tiếp UMAP và HDBSCAN để điều chỉnh siêu tham số phù hợp. 

UMAP có một số siêu tham số kiểm soát chu trình giảm kích thước, và 2 trọng số quan trọng nhất là n_neighbors và n_components. Tham số n_neighbors kiểm soát cách UMAP cân bằng cấu trúc cục bộ và tổng thể của dữ liệu. Tham số này kiểm soát kích thước của vùng lân cận liên đới tới UMAP để tìm hiểu cấu trúc đa tạp, vì thế các giá trị thấp hơn của n_neighbors sẽ tập trung nhiều hơn vào cấu trúc cục bộ. Tham số n_components kiểm soát kích thước nhúng cuối cùng sau khi thực hiện giảm kích thước trên dữ liệu đầu vào. HDBSCAN cũng có một số siêu tham số quan trọng, nhưng tham số quan trọng nhất cần xem xét là min_cluster_size. Tham số min_samples mặc định bằng min_cluster_size nếu không có chỉ định khác và khi min_samples càng lớn thì càng có nhiều điểm bị loại bỏ dưới dạng nhiễu/ ngoại lệ. Trong trường hợp tham số min_samples nhỏ hơn min_cluster_size cho thấy các điểm đã được dán nhãn là ngoại lệ và hợp nhất chúng với các cụm lân cận tương tự nhất của chúng. 

Một chú ý rằng UMAP là thuật toán ngẫu nhiên và nó sử dụng tính ngẫu nhiên để tăng tốc các bước gần đúng để sau đó tối ưu hóa. 

Xác định chức năng cho điểm

Mặc dù thường được sử dụng với các thuật toán phân nhóm khác nhau, Điểm số hình bóng (Silhouette Score) không phải là chỉ số xác thực tốt nhất cho các thuật toán dựa trên mật độ như DBSCAN và HDBSCAN vì kỹ thuật này giả định rằng tất cả các điểm đều được gán cho một nhóm và không thể xử lý nhiễu hay các ngoại lệ một cách thích hợp. Xác thực cụm dựa trên mật độ (DBCV) đã được một số người đề xuất và sử dụng để điều chỉnh siêu tham số HDBSCAN. Bài viết này tận dụng thuộc tính probabilities HDBSCAN hữu ích, với độ mạnh mà mỗi mẫu là một phần của cụm được chỉ định. Điểm nhiễu có xác suất bằng không; các điểm trong cụm có các giá trị được chỉ định tỷ lệ với mức độ tồn tại trong cụm.

Tìm kiếm siêu tham số ngẫu nhiên

Với kích thước tập dữ liệu chỉ là 1.000 mẫu, vẫn mất khoảng 3 giây để tạo các cụm và tính điểm cho một tập hợp đầu vào nhất định. Kích thước tập dữ liệu càng lớn sẽ càng mất nhiều thời gian. Thực hiện tìm kiếm ngẫu nhiên thay vì tìm kiếm toàn bộ lưới là một chiến lược thay thế khá hiệu quả.

Tối ưu hóa Bayes với Hyperopt

Tìm kiếm ngẫu nhiên không gian siêu tham số hoạt động khá tốt, nhưng có một lựa chọn tốt hơn chính là Tối ưu hóa Bayes với 3 bước chính:

Bước 1: xác định hàm mục tiêu muốn tối ưu hóa. Các ràng buộc tối ưu hóa được bao gồm trong hàm mục tiêu bằng cách thêm một thuật ngữ phạt nếu số lượng cụm nằm ngoài phạm vi mong muốn

Bước 2: thu nhỏ hàm mục tiêu trên không gian tìm kiếm siêu tham số bằng cách sử dụng thuật toán Công cụ ước tính Parzen có cấu trúc cây (TPE):

Bước 3: Chạy tìm kiếm Bayes với 100 đánh giá tối đa trên không gian tham số 

Đồng  thời, giai đoạn này có thể hình dung các cụm hoặc kiểm tra thủ công một số trong số chúng để đảm bảo chúng có ý nghĩa. 

Đánh giá hiệu suất, biết các nhãn sự thật cơ bản

Thay vì kiểm tra tất cả các nhóm theo cách thủ công nên đánh giá định lượng các hoạt động của mô hình. Hai số liệu thường được sử dụng để đánh giá phân cụm văn bản là Thông tin tương hỗ được chuẩn hóa và Chỉ số ngẫu nhiên được điều chỉnh. Cả hai chỉ số đều có giá trị từ 0 đến 1, và giá trị càng lớn thì độ hiệu quả càng cao.

Ghi nhãn cụm tự động

Cách tiếp cận để thực hiện ghi nhãn cụm tự động là trích xuất cặp hành động-đối tượng phổ biến nhất trong các cụm từ đang xử lý để quy ước làm nhãn cụm. Kỹ thuật được áp dụng thường xuyên: nối động từ phổ biến nhất, tân ngữ trực tiếp và hai danh từ đứng đầu từ mỗi cụm. Gói spaCy với thuật toán phân tích cú pháp có thể bổ trợ trong chu trình này. 

Trong bài viết này đã phác thảo một khuôn khổ nhằm tận dụng kiến thức miền, dễ dàng phân cụm các tài liệu văn bản ngắn và áp dụng các nhãn mô tả để hiểu ý định người dùng trong các câu thoại ngắn. Mục đích của bài viết này hướng tới tiếp cận các tập dữ liệu nhỏ, nhưng phương thức tiếp cận vẫn sẽ hoạt động hiệu quả với các tập dữ liệu lớn hơn. 

Bài viết liên quan

    Cảm ơn bạn đã quan tâm và ủng hộ.

    File hiện tại không thể tải xuống
    Vui lòng liên hệ hỗ trợ.

    VinOCR eKYC

    Chọn ảnh từ máy của bạn

    Chọn ảnh demo dưới đây hoặc tải ảnh lên từ máy của bạn

    Tải lên ảnh CMND/CCCD/Hộ chiếu,...

    your image
    Chọn ảnh khác
    Tiến hành xử lý

    Thông tin đã được xử lý

    Mức độ tin cậy: 0%

    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -

    Xác thực thông tin thẻ CMND/CCCD

    Vui lòng sử dụng giấy tờ thật. Hãy đảm bảo ảnh chụp không bị mờ hoặc bóng, thông tin hiển thị rõ ràng, dễ đọc.

    your image
    Chọn ảnh khác

    Ảnh mặt trước CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh mặt sau CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh chân dung

    This site is registered on wpml.org as a development site.