CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG TRẢ LỜI TỰ ĐỘNG Bài toán xây dựng hệ thống trả lời tự động là một bài toán khó thuộc lĩnh vực xử lý ngôn ngữ tự nhiên. Bởi vì tính nhập nhằng, đa nghĩa, đa ngữ cảnh của ngôn ngữ tự nhiên. Bài toán đặt ra nhiều thách thức để phát hiện ra được câu trả lời phù hợp nhất, thông tin hữu ích nhất. Chương này sẽ giới thiệu tổng quan về hệ thống đối thoại người máy, tìm hiểu các nghiên cứu ở trong và ngoài nước để thấy được tình hình nghiên cứu và các phương pháp tiếp cận của các nghiên cứu trước đây.1 Hệ thống đối thoại người máy Các hệ thống đối thoại người máy (Dialogue systems), còn được gọi là trợ lý tương tác hội thoại, trợ lý ảo và đôi khi được gọi với thuật ngữ là chatbot, được sử dụng rộng rãi trong các ứng dụng khác nhau, từ các dịch vụ kỹ thuật cho đến các công cụ có thể học ngôn ngữ và giải trí [17].
Các hệ thống đối thoại có thể được chia thành các hệ thống hướng mục tiêu trên một miền ứng dụng, ví dụ như các dịch vụ hỗ trợ kỹ thuật, và các hệ thống không có định hướng mục tiêu, ví dụ như các công cụ học ngôn ngữ hoặc các nhân vật trò chơi máy tính [3]. Trong luận văn này, chúng tôi tập trung vào trường hợp thứ hai, là đi xây dựng một mô hình đối thoại cho tiếng Việt trên miền mở do có sẵn nguồn dữ liệu lớn từ các phụ đề Phim tiếng Việt được lấy trên OpenSubtitles năm 2016 [1]. Phương pháp hướng dữ liệu qui mô lớn, trong đó sử dụng dữ liệu đã được ghi tự động để truy vấn tri thức và phát sinh văn bản, đang trở nên ngày càng quan trọng trong lời nói và sự hiểu biết ngôn ngữ và phát sinh ngôn ngữ tự nhiên. Một loạt các phương pháp học máy hướng dữ liệu đã được chứng minh là có hiệu quả bằng việc xử lý ngôn ngữ tự nhiên, bao gồm các công việc liên quan đối thoại như đối thoại chính sách học tập [17], theo dõi trạng thái đối thoại [18,19] và phát sinh ngôn ngữ tự nhiên [20]… Một trong những thách thức chính trong phát triển của hệ thống đối thoại người máy hướng nhiệm vụ, và trong việc mở rộng chúng trong nhiều miền ứng dụng, được nhắc đến trong [22], là sự sẵn có của dữ liệu trên một miền hội thoại cụ thể.
Hệ thống đối thoại cần kết hợp và khai thác nhiều thành phần, ví dụ như 13 nhận dạng giọng nói, hiểu ngôn ngữ tự nhiên, giám sát hội thoại, phát sinh ngôn ngữ tự nhiên, và mỗi thành phần này yêu cầu sẵn có nguồn dữ liệu trên miền cụ thể, tài nguyên và các mô hình. Bao gồm các mô hình ngôn ngữ, mô hình ngữ âm, mô hình hiểu ngôn ngữ, các miền bản thể ontology, các kịch bản tương tác, các khuôn mẫu phát sinh ngôn ngữ, … Mặc dù, nhiều vấn đề AI đã được hưởng lợi ích từ các nguồn dữ liệu ngày càng lớn, thu thập dữ liệu end-to-end cho các hệ thống đối thoại hướng nhiệm vụ vẫn còn là một vấn đề khó khăn. Phương pháp tiếp cận hiện tại để thu thập dữ liệu thoại dẫn đến chi phí phát triển cao và tiêu tốn thời gian cho các nhà phát triển hệ thống. Trừ khi các nguồn lực bên ngoài đã có sẵn (không phải trường hợp cho hầu hết các lĩnh vực), trong miền tập dữ liệu yêu cầu phải có một hệ thống triển khai có khả năng duy trì một cuộc đối thoại với người dùng.
Điều này dẫn đến một vấn đề khởi động: do thiếu dữ liệu để huấn luyện hệ thống ban đầu, các nhà phát triển hệ thống mang gánh nặng về việc phát triển văn phạm và các mô hình ngôn ngữ, hoặc là thủ công hoặc với các nghiên cứu Wizard-of-Oz [22]. Thu thập dữ liệu hội thoại với phiên bản đầu tiên của một hệ thống được triển khai có thiếu sót: chất lượng dữ liệu thu thập có thể phải chịu những bất cập của hệ thống chính nó, và người dùng có thể chịu ảnh hưởng ngôn ngữ của chúng để điều chỉnh cho những khuyết điểm của hệ thống trong việc theo hết một cuộc đối thoại. Kết quả là, tốc độ của tập dữ liệu có thể chậm hơn so với mong muốn. Cuối cùng, quá trình phát triển tốn kém này phải được lặp đi lặp lại trên một lần nữa cho mỗi miền hoặc hệ thống mới, hoặc ngay cả khi chức năng mới được thêm vào.2 Tình hình nghiên cứu trong và ngoài nước Hệ thống trả lời tự động đã được các nhà nghiên cứu quan tâm từ rất lâu rồi, bao gồm các trường đại học, các viện nghiên cứu và các doanh nghiệp.
Việc nghiên cứu về hệ thống trả lời tự động có ý nghĩa trong khoa học và thực tế. Đã có rất nhiều các hội nghị thường niên về xử lý ngôn ngữ tự nhiên, khai phá dữ liệu, xử lý dữ liệu lớn, tương tác người máy, … như TREC, CLEF, tại Việt Nam có KSE, RIVF, ATC, … Theo ý tưởng của Russel và cộng sự [21], thì một hệ thống AI phải được kiểm tra (hành động dưới sự ràng buộc hình thức và phù hợp với các điều kiện kỹ thuật); phải được xác nhận (không theo đuổi các hành vi không mong muốn 14 dưới sự ràng buộc trước); phải an toàn (ngăn chặn các thao tác có chủ ý của các bên thứ ba, hoặc bên ngoài hoặc bên trong); và phải được kiểm soát (con người cần phải có cách để thiết lập lại kiểm soát nếu cần thiết). Việc thiết kế hệ thống đối thoại là một nhiệm vụ đầy thách thức và là một trong những mục tiêu ban đầu của trí tuệ nhân tạo (Turing, 1950) [24]. Trong nhiều thập kỷ, việc thiết kế tác nhân đối thoại đã giúp các hệ thống dựa trên cơ sở tri thức và cơ chế dựa trên luật Rule-based để hiểu các thông điệp đầu vào của con người và tạo ra các phản hồi đáp ứng hợp lý [25,26,27].
Phương pháp tiếp cận hướng dữ liệu nhấn mạnh vào việc học trực tiếp từ các tập ngữ liệu của các cuộc đối thoại tiếng nói hoặc văn bản chữ viết. Gần đây, phương pháp này đã đạt được đà vì lợi thế dữ liệu phong phú [3], tăng sức mạnh tính toán, và các thuật toán học tốt hơn mà tự động hóa quá trình tính năng kỹ thuật [28,29]. Ritter và cộng sự (2010) [30] đã đề xuất phương pháp tiếp cận hướng dữ liệu cho việc xây dựng hệ thống đối thoại, và họ đã trích xuất ra 1,3 triệu cuộc hội thoại từ Twitter với mục đích là phát hiện ra các hành động trong cuộc hội thoại. Bằng việc xây dựng dựa trên sự tương đồng về phân phối trong khuôn khổ mô hình không gian vector, Banchs và Li (2012) [31] đã xây dựng một công cụ tìm kiếm để lấy câu trả lời thích hợp cho bất kỳ một thông điệp đầu vào.
Phương pháp tiếp cận khác tập trung vào nhiệm vụ trên một lĩnh vực cụ thể như các trò chơi [32], và các nhà hàng ăn uống (2016) [33,34]. Cá nhân hóa hệ thống đối thoại đòi hỏi phải đầy đủ thông tin, từ mỗi người dùng và số lượng mẫu đủ lớn để xác định được khoảng không gian. Các phong cách Viết định lượng bằng độ dài từ, độ mạnh của động từ, tính phân cực, và phân phối các hành vi đối thoại đã được sử dụng để mô hình hóa người dùng, bởi Walker 2012, [35]. Những nỗ lực khác tập trung vào việc xây dựng một hồ sơ người dùng dựa trên nhân khẩu học, chẳng hạn như: giới tính, thu nhập, tuổi tác và tình trạng hôn nhân, bởi Bonin 2014, [36].
Với sự ra đời của framework sequence-to-sequence [7], nhiều hệ thống huấn luyện gần đây đã sử dụng các mạng nơ-ron tái phát (RNN) để sinh ra các câu trả lời mới khi đưa vào mạng một câu hỏi hoặc một thông điệp. Ví dụ, Lê Viết Quốc và Vinyals [6] đã đề xuất sử dụng tập dữ liệu là lịch sử hỗ trợ kỹ thuật IT- help desk để huấn luyện mạng LSTM để sinh ra câu trả lời mới. Sordoni và cộng sự (2015) [9] đã xây dựng các cuộc đối thoại Twitter giới hạn bối cảnh lịch sử đến 15 một thông điệp. Với sự giúp đỡ của các mô hình ngôn ngữ được tiền huấn luyện, chúng mã hóa mỗi tin nhắn vào một vector đại diện.
Để loại bỏ sự cần thiết cho một mô hình ngôn ngữ, Serban và cộng sự (2015) [3] đã thử huấn luyện end-to- end trên một mạng RNN. Họ cũng bắt đầu hệ thống của mình với các word embeddings đã được huấn luyện từ trước. Trong khi các hệ thống này có thể sản xuất ra các câu trả lời mới lạ, rất khó để hiểu được bao nhiêu khả năng được sử dụng bởi các mô hình ngôn ngữ tự nhiên so với việc mô hình hóa hội thoại đối thoại liền nhau. Thông thường các phản ứng châu về các câu thường xuyên nhất được quan sát trong tập ngữ liệu được huấn luyện [37].
Sự phớt lờ, hay sự lúng túng BLEU và deltaBLEU được chuyển thể từ mô hình ngôn ngữ và dịch máy, đã được sử dụng để đánh giá phản ứng mới được tạo ra, bởi Yao 2015 [15], Sordoni 2015 [9], Galley 2015 [38]. Những số liệu chỉ đo mức độ lưu loát từ vựng của phản ứng mới và không bắt phạt đối với các ứng viên không mạch lạc liên quan đến ngôn từ đàm thoại. Trong khi việc tìm kiếm các chỉ số tốt hơn thì vẫn còn tiếp tục, tự động đánh giá của các đáp án được sinh ra vẫn là một vấn đề mở, theo Shang, 2015 [39]. Việc xây dựng các chương trình trả lời tự động chatbots và conversational agents đã được theo đuổi bởi nhiều nhà nghiên cứu trong nhiều thập kỷ qua.
Tuy nhiên, hầu hết các hệ thống hội thoại này đòi hỏi một quy trình xử lý khá phức tạp qua nhiều giai đoạn [49, 50]. Hướng tiếp cận của chúng tôi khác với các hệ thống thông thường bằng cách áp dụng mô hình sequence-to-sequence [7] để xây dựng một mô hình end-to-end cho vấn đề thiếu kiến thức miền. Về nguyên tắc, nó có thể kết hợp với các hệ thống khác để ghi nhận một danh sách các đáp án ứng viên, nhưng mô hình của chúng tôi dựa trên việc sản sinh câu trả lời được đưa ra bởi một mô hình xác suất huấn luyện để cực đại hóa xác suất của câu trả lời trong một số ngữ cảnh. Đây là một hướng tiếp cận mới có nhiều triển vọng trong việc xây dựng một hệ thống đối thoại.