Ở bài viết trước, chúng tôi đã giới thiệu sơ lược về Chatbot về khái niệm cũng như cách thức vận hành đơn giản nhất của Chatbot. Lần này, chúng tôi sẽ cung cấp cho các bạn về các phương pháp, thuật toán là cơ sở hoạt động của Chatbot hay nói cách khác Chatbot hoạt động ra sao?
Xem thêm:
TỔNG QUAN VỀ CHATBOT (PHẦN 1): CHATBOT LÀ GÌ?
TỔNG QUAN VỀ CHATBOT (PHẦN 3): LỢI ÍCH CỦA CHATBOT
Nguồn: Designed by Freepik.com
Chatbot được xây dựng dựa trên những phương pháp sau:
Pattern matchers: phát hiện trùng khớp các mẫu câu
Các Chatbot hoạt động bằng cách sử dụng phương pháp này để tìm kiếm các mẫu câu có trong câu hỏi của người dùng và xem có khớp với các câu hỏi đã được “huấn luyện” lưu trữ trong hệ thống để đưa ra câu trả lời phù hợp nhất. Phương pháp Pattern matchers dựa theo cấu trúc tiêu chuẩn của ngôn ngữ lập trình “Artificial Intelligence Markup Language” (AIML). Ví dụ:
Giả sử bạn hỏi “Bigdatauni là công ty thuộc lĩnh vực gì” hay hỏi “Lĩnh vực hoạt động của Bigdatauni là gì” thì Chatbot sẽ trả về câu trả lời “BIGDATAUNI là công ty chuyên về lĩnh vực Big data và data analytics”.
Algorithm: Chatbot hoạt động bằng cách sử dụng thuật toán
Giả sử trong trường hợp có rất nhiều câu hỏi riêng biệt với ý định khác nhau đến từ khách hàng, mà Chatbot chỉ có thể phản hồi khi tất cả câu hỏi này đã được thiết lập, “huấn luyện” cho Chatbot với các kịch bản đối thoại đều được lưu trữ trong database. Khi đó, sự phức tạp sẽ gia tăng khi Chatbot cố gắng kết nối các mẫu câu và tạo nên một cấu trúc phân tầng trong hệ thống. Vì thế các nhà phát triển đã đưa những thuật toán vào Chatbot để giảm việc phân loại quá nhiều các câu hỏi (thay vào đó là nhóm chúng lại theo các điều kiện khác nhau) và tạo ra một cấu trúc mới dễ quản lý hơn, tăng độ chính xác cho các phản hồi được Chatbot đưa ra đến khách hàng, người dùng.
Thuật toán Multinational Naïve Bayes là thuật toán phổ biến nhất để phân loại các text (văn bản) trong NLP (Natural language processing – lập trình ngôn ngữ tự nhiên). Ví dụ, giả sử tập hợp các câu hỏi, tin nhắn tương tác của khách hàng cùng ý định, chủ đề (đã được thống kê lại) trong một lớp cụ thể (gọi là Class). Tương tự sẽ có nhiều Class được tạo. Nếu khách hàng nhắn 1 câu từ mới bất kỳ, Chatbot sẽ đối chiếu từng từ trong câu mới này so với các câu đã tập hợp trong các Class. Một từ giống sẽ được cho 1 điểm, Class nào nhiều điểm (score) thì Chatbot tự hiểu câu mới đó thuộc Class ấy và đưa ra phản hồi chính xác đến khách hàng. Ví dụ: ta tập hợp các câu hỏi sau vào Class: “hỏi về chương trình khuyến mãi”
- “Cửa hàng có chương trình khuyến mãi nào không?”
- “Chương trình khuyến mãi … áp dụng từ ngày mấy?”
Ta tập hợp các câu hỏi sau vào Class: “hỏi về ngày giờ mở cửa”
- “Cửa hàng mở cửa đến mấy giờ?”
- “Cửa hàng mở cửa từ ngày mấy?”
Giả sử có khách hàng hỏi: “Chương trình khuyến mãi tháng 12 bắt đầu vào ngày mấy?”
- Trong câu có cụm từ “Chương trình khuyến mãi” khớp với 4 từ trong 1 câu ở Class: “hỏi về chương trình khuyến mãi” vậy Class score: 4 điểm.
- Trong câu các từ “tháng”, “12”, “bắt”, “đầu”, “vào” không khớp với bất kỳ từ nào ở Class nào vậy suy ra Class: no matches.
- Cụm từ “ngày mấy” có 2 từ khớp trong Class: “hỏi về chương trình khuyến mãi” nên Class score: 2 điểm.
- Cụm từ “ngày mấy” có 2 từ khớp trong Class: “hỏi về ngày giờ mở cửa” nên Class score: 2 điểm.
- Vậy ta có tổng điểm Class score của Class: “hỏi về chương trình khuyến mãi” là 6 điểm và Class: “hỏi về ngày giờ mở cửa” là 2 điểm. Do đó Chatbot sẽ hiểu câu “Chương trình khuyến mãi tháng 12 bắt đầu vào ngày mấy?” thuộc Class: “hỏi về chương trình khuyến mãi” và sẽ cung cấp thông tin chính xác đến khách hàng.
Lưu ý: điểm số chỉ thể hiện độ tin cậy, và sự liên quan nhất định của các câu hỏi, tin nhắn mà khách hàng đưa ra đối với 1 Class cụ thể chứ không đảm bảo độ chính xác hoàn toàn.
Artificial Neural Network: mạng nơ-ron nhân tạo
Một mạng nơ-ron là một nhóm các nút nối với nhau, gần giống như mạng khổng lồ các nơ-ron trong não người. Mạng nơ-ron nhân tạo hay thường gọi ngắn gọn là mạng nơ-ron là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học (theo wikipedia). Phương pháp này là tính toán tỷ lệ chính xác dữ liệu đầu ra (output) từ dữ liệu đầu vào (input) bằng cách tính toán các trọng số cho mỗi kết nối (connection) từ các lần lặp lại trong khi “huấn luyện” dữ liệu cho Chatbot. Mỗi bước “huấn luyện” dữ liệu cho Chatbot sẽ sửa đổi các trọng số dẫn đến dữ liệu output được xuất ra với độ chính xác cao.
Artificial neural network (ANN) – https://chatbotslife.com/how-neural-networks-work-ff4c7ad371f7
Mỗi câu sẽ được phân thành từng từ và mỗi từ chính là dữ liệu đầu vào input đưa vào ANN. Các từ sẽ được kết nối với nhau và khi huấn luyện dữ liệu cho Chatbot, các kết nối này sẽ được đo bằng trọng số cho hàng ngàn lần lặp lại ở các thời điểm khác nhau. Mỗi lần lặp lại trọng số sẽ tăng, độ chính xác sẽ cao. Đây chính là lý do tại sao ở bài viết trước chúng tôi có nói “Chatbot được “huấn luyện” và hoàn thiện trong thời gian dài sẽ tăng khả năng “tự học”, tự phát triển về phạm vi hiểu biết các ý đình của người dùng và đạt được độ chính xác, độ tin cậy cao trong các phản hồi đưa ra”.
Khi ta huấn luyện thường xuyên, thì Chatbot sẽ có khả năng phân tích nhiều câu hỏi, tin nhắn khác nhau của khách hàng dựa trên những trọng số đã được tính toán trong quá trình huấn luyện hay được gọi là độ tin cậy, để xác định Class cho từng câu và đưa ra phản hồi chính xác. Đây chính là phương pháp cơ bản, khởi đầu cho các công nghệ Machine Learning (học máy) và AI (trí tuệ nhân tạo), do đó nhiều người có thể kết luận Chatbot chính là thành quả của AI hay sản phẩm của Machine Learning.
Tuy nhiên độ phức tạp sẽ càng cao, và đòi hỏi những nhà phát triển phải áp dụng các công nghệ phần mềm để tăng tốc độ xử lý. Lấy ví dụ ban đầu có hàng chục câu hỏi khác nhau với hơn 100 từ khác nhau và chúng thuộc 10 Class khác nhau, thì ANN sẽ xử lý một ma trận kết nối 100×10, nhưng trong tương lai sẽ có nhiều câu hỏi khác, thêm nhiều Class khác tùy theo nhu cầu của người dùng hay khách hàng và kích cỡ ma trận sẽ tiếp tục tăng đòi hỏi tốc độ xử lý phải cao.
Natural Language Understanding (NLU)
Natural Language Understanding (NLU) là phương pháp giúp các hệ thống máy tính ví dụ như Chatbot hiểu được các câu lệnh của người dùng mà không phải dựa trên bất kỳ ngôn ngữ, câu thoại, cấu trúc nào được format sẵn ở trong hệ thống, giúp Chatbot phản hồi nhanh chóng đến người dùng. NLU là phương pháp để ta xác minh liệu Chatbot có hiểu những gì ta đang nói? NLU thường được sử dụng cho các Chatbot nhận diện giọng nói. Các công ty, tập đoàn công nghệ hàng đầu thế giới đã đi đầu trong việc ứng dụng NLU vào quá trình hình thành các công nghệ AI đầu tiên, là cha đẻ của Chatbot. Ví dụ như Alexa của Amazon, Siri của Apple, Google’s Assistant của Google và Cortana của Microsoft như đã nói ở bài viết trước.
Nguồn: https://bigdata-madesimple.com/
NLU giúp giải quyết một trong những vấn đề mà bất kỳ công nghệ AI nào cũng gặp phải không chỉ riêng Chatbot đó chính là: làm thế nào để xử lý những dữ liệu đầu vào (input) không có cấu trúc cụ thể, không có định dạng rõ ràng, không có thuật toán, quy tắc quản lý chặt chẽ; biến chúng thành các nhóm cấu trúc nhất định để hệ thống có thể hiểu được và tương tác lại với con người. NLU có thể giúp Chatbot hiểu được ý định của mỗi người dùng thậm chí không cần được “huấn luyện” từ trước, NLU vượt lên trên cả việc hiểu và giải thích từ ngữ thông thường. NLU thậm chí còn được lập trình với khả năng hiểu được ý nghĩa người dùng bất chấp các lỗi phổ biến như phát âm sai hoặc không đúng văn phạm, chính tả.
Natural Language Processing (NLP)
Thuật ngữ NLU theo một số người thường được cho là có thể hoán đổi với thuật ngữ NLP. Nhưng NLU thực sự là một tập hợp con của NLP mà thôi. Xử lý ngôn ngữ tự nhiên (NLP) đề cập đến tất cả các hệ thống phối hợp với nhau để xử lý mọi tương tác giữa hệ thống và con người bằng ngôn ngữ của con người. Nói cách khác, NLP cho phép mọi người và hệ thống nói chuyện với nhau một cách tự nhiên. NLP phải sử dụng database có chứa các dữ liệu đối thoại lịch sử để làm cơ sở nhận dạng, chuyển đổi dữ liệu đầu vào của người dùng thành dữ liệu có cấu trúc và tiến hành phân loại.
Và để giao tiếp tự nhiên với con người, thì NLP phải là một phần quan trọng của bất kỳ công nghệ AI nào được sáng tạo và đưa vào sử dụng. Một hệ thống NLP hiệu quả thu thập các câu hỏi, tin nhắn của người dùng, phân tích theo từng từ, nắm được ý định của người dùng, xác định hành động phù hợp và phản hồi lại bằng ngôn ngữ mà người dùng sẽ hiểu. NLP Chatbot xử lý ngôn ngữ tự nhiên bằng cách chuyển đổi lời nói hoặc văn bản của người dùng thành dữ liệu có cấu trúc và đưa ra các câu trả lời tương ứng.
Trên hình là cơ cấu cơ bản của một Chatbot sử dụng NLP và công nghệ Machine learning. Khi người dùng gửi tin nhắn nến Chatbot trên nền tảng nhắn tin (Messaging platform) như Facebook messenger thì thông tin sẽ được đưa đến hệ thống NLP để Chatbot phân tích và hiểu được ý định người dùng (Bot Logic). Sau khi nắm được ý định người dùng, Chatbot sẽ phân loại và gửi đến cơ sở thông tin (Information Sources) để chọn ra các câu trả lời tương ứng, chính xác và ra lệnh (Actions) để phản hồi lại người dùng.
Ngoài khả năng tự phân tích dựa vào NLP, Chatbot sẽ tự nhận dạng nhanh chóng các tin nhắn của người dùng và tạo khả năng tự học (Machine Learning) thông qua các thuật toán được nhà phát triển áp dụng và quá trình “huấn luyện lâu dài” trong tương lai.
Đến đây là kết thúc bài viết về “Chatbot hoạt động như thế nào?”, ở bài viết tiếp theo, chúng tôi sẽ đề cập một trong những phần quan trọng khi nói về Chatbot đó chính là lợi ích của Chatbot, tại sao lại có xu hướng ứng dụng Chatbot vào hoạt động của các tổ chức. Mời các bạn đón đọc.
Công ty BigDataUni chúng tôi với chuyên môn và kinh nghiệm lâu năm trong lĩnh vực Big Data sẵn sàng hỗ trợ các công ty đối tác trong việc xây dựng và quản lý hệ thống dữ liệu một cách hợp lý, tối ưu nhất để hỗ trợ cho việc phân tích và đưa ra các giải pháp. Các dịch vụ của chúng tôi bao gồm “Tư vấn và xây dựng hệ thống Big Data”, “Khai thác dữ liệu Big Data dựa trên các mô hình thuật toán”, “Xây dựng các chiến lược phát triển thị trường, chiến lược cạnh tranh”.
Ngoài ra, chúng tôi cũng đang thử nghiệm và cho ra mắt dịch vụ xây dựng và quản lý hệ thống Chatbot liên kết trên nền tảng Zalo, Facebook và các nền tảng khác, có thể tạo nhiều kịch bản đối thoại khác nhau, lưu trữ dữ liệu lớn các cuộc đối thoại với khách hàng phục vụ cho việc khai thác Big Data sau này.