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.
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.
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.
Tính năng am hiểu ý định người dùng là một tính năng vượt trội được áp dụng trong hệ thống Chatbot phát triển bởi VinBigData – Vinbot. Đặc biệt, Vinbot còn có khả năng nhận biết ngữ điệu và cường độ để tìm hiểu sắc thái cảm xúc của khách hàng, và đối thoại tự nhiên như con người. Tìm hiểu thêm về Vinbot và hệ sinh thái sản phẩm của VinBigData: Tại đây |