Sự khác nhau giữa Guided Dialogue và Natural Language Dialogue trong phát triển ChatBot

Sự phát triển của ChatBot đang ngày càng mạnh mẽ. Mọi người đều rất hào hứng với nó và trước khi sử dụng, họ tò mò về một chatbot sẽ trông như thế nào, hoạt động ra làm sao. Hầu hết người dùng nghĩ về một ChatBot như dịch vụ Siri hoặc Alexia có thể hiểu hầu hết mọi thứ và trả lời cho một loạt các câu hỏi. Nhưng trên thực tế, nó tồn tại các mẫu hội thoại khác nhau cho ChatBot.

Guided dialogue

Đây là Hội thoại hướng dẫn, bạn có thể đã gặp rất nhiều trong các ứng dụng nhắn tin. Nguyên tắc ở đây là hướng dẫn người dùng trong quá trình nhận dịch vụ mà họ muốn. Bot sẽ điều khiển cuộc trò chuyện, đặt câu hỏi cho người dùng, đề xuất một loạt các câu trả lời và cho phép người dùng chọn một câu hỏi. Sau đó, quá trình tiếp tục cho đến khi Bot có tất cả thông tin cần để cung cấp cho người dùng thông tin liên quan.

Loại Bot này có vẻ khá cơ bản đối với người dùng. Người dùng mong đợi trải nghiệm giống như Siri, nhưng nó thực sự là một mô hình rất thuận tiện cho hầu hết các doanh nghiệp. Mục tiêu ở đây là làm phiền người dùng càng ít càng tốt, đi thẳng vào vấn đề.

Về mặt kỹ thuật: nhà phát triển có một danh sách các kịch bản khác nhau mà họ phải thực hiện và có thể dễ dàng xây dựng các đường dẫn để trả lời từng kịch bản. Miễn là Bot tự xử lý danh sách các câu trả lời có thể có cho một câu hỏi, sẽ không có nhiều cách xử lý hơn về mặt đàm thoại.

Độ phức tạp tăng lên một chút khi Bot cho phép người dùng trả lời tự do. Trong trường hợp này, nhà phát triển sẽ cần thực hiện các cơ chế khác nhau để đảm bảo Bot thực sự có thể hiểu và sử dụng những gì người dùng nói. Ví dụ:

If the bot asks his name to the user, he should be able to understand that the user did not give his name if he answers 
« Why do you want to know my name? »

Ngay cả khi nó không quan trọng để hiểu bản chất của câu trả lời không được giám sát này, ít nhất Bot cũng phải biết khi nào nên hỏi người dùng để biết thông tin tốt hơn. Trên thực tế, việc hiểu ý nghĩa của một câu trả lời như vậy có thể khó khăn hơn và để làm điều đó tốt hơn nên tìm kiếm một cuộc đối thoại bằng Natural Language Dialogue.

Natural Language Dialogue

Mọi người đều biết Siri. Bạn có thể hỏi hầu hết mọi thứ với Siri, nó sẽ trả lời một cái gì đó. Nhưng điều quan trọng nhất ở đây là bạn có thể hỏi bất cứ điều gì bằng cách nói chuyện của riêng bạn. Điều này là do một Bot như vậy đã được đào tạo để hiểu một câu hỏi được hỏi theo những cách khác nhau. Đây là những gì chúng ta gọi là nhận dạng ngôn ngữ tự nhiên, và nó đã hoàn thành nhờ Deep Learning.

Phát triển loại Bot này có lợi thế lớn là nó cung cấp trải nghiệm cho người dùng tốt hơn. Trong trường hợp này, người dùng không nhất thiết phải được hướng dẫn bởi Bot trong cuộc trò chuyện nhưng có thể hỏi bất cứ điều gì theo cách họ muốn. Ấn tượng đầu tiên đối với người dùng là có quyền kiểm soát cuộc trò chuyện, điều này khá yên tâm.

Nhưng việc cho phép người dùng điều khiển cuộc hội thoại không có nghĩa là không thể sử dụng một Guided Dialogue trong một cuộc trò chuyện bằng Natural Language Dialogue. Thông thường bạn sẽ sử dụng cả hai, như trong ví dụ dưới đây:

Trong ví dụ này, chúng ta thậm chí có thể đơn giản hóa đoạn hội thoại được hướng dẫn nếu người dùng cung cấp thêm thông tin trong câu yêu cầu của mình. Ví dụ:

If he says « I would like to book an Italian restaurant near Nanjing Xi Lu for tomorrow »

Chatbot có thể trích xuất từ loại nhà hàng, địa điểm và ngày
Sau đó, trong đoạn hội thoại được hướng dẫn, nó sẽ tự động bỏ qua các bước này

Natural Language Dialogue gây ra nhu cầu thiết kế và phát triển hơn. Trước tiên, bạn sẽ cần để ChatBot của mình vào một giải pháp nhận dạng ngôn ngữ tự nhiên (hoặc tự mình phát triển một ngôn ngữ, nếu bạn có thời gian) và dạy câu cho Bot của bạn. Quá trình này có thể rất lâu khi bạn cần thu thập, đối với mỗi câu hỏi, càng nhiều biến thể càng tốt để giảm nguy cơ Bot trả lời « Sorry, I didn’t understand ». Bạn sẽ cần theo dõi Bot của mình và theo dõi bất kỳ câu hỏi chưa được trả lời nào cần đưa ra câu trả lời.

Thứ hai, để người dùng hỏi bất cứ điều gì sẽ khiến bạn phải đối phó với các câu ngoài phạm vi, chẳng hạn như:

« who are you? », « are you a clever bot? », « what do you know? », etc…

Những câu này sẽ luôn xuất hiện vì đây là điều tự nhiên khi người dùng thách thức Bot của bạn.

Cuối cùng, một số câu hỏi lạ như ví dụ sau:

if the user says « What do you mean? » 

Cần phải biết câu trả lời trước đó là gì trước khi trả lời câu hỏi này. Điều này làm cho sự phát triển lâu hơn và phức tạp hơn.

Tổng kết

Lựa chọn giữa Guided Language và kết hợp Natural Language là vấn đề phát triển về nhiều khía cạnh như mục đích, ngân sách, tối ưu hóa. Chả hạn, bạn phát triển một trò chơi giải câu đố, nhiều khả năng bạn sẽ đơn giản hóa bằng việc sử dụng Guided Dialogue. Tương tự là ví dụ về việc phát triển một chuỗi phục vụ khách hàng tại một nhà hàng,... Nếu bạn muốn tạo một bot với mục tiêu là giúp mọi người cai thuốc lá thông qua một cuộc trò chuyện càng tự nhiên càng tốt, chọn chỉ sử dụng nhận dạng ngôn ngữ tự nhiên sẽ tốt hơn. Chương trình được coi là ChatBot đầu tiên trong lịch sử là ELIZA, mục tiêu là mô phỏng một nhà trị liệu tâm lý.

Như bạn có thể thấy, phát triển một ChatBot không phải là triển khai một mô hình hoạt động trong mọi trường hợp. Mỗi dự án là duy nhất và một cấu trúc ChatBot duy nhất nên được áp dụng cho nó.

Cảm ơn các bạn đã dành thời gian cho bài viết. Xin hẹn gặp lại !!!

Nguồn tham khảo: https://tutorials.botsfloor.com/chatbot-who-wins-guided-dialogue-and-natural-language-dialogue-781ecb1d96af