Xây dựng hệ thống Agent hội thoại hiện thân cho tương tác người - máy

  • Số trang: 69 |
  • Loại file: PDF |
  • Lượt xem: 21 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VŨ QUỐC HUY XÂY DỰNG HỆ THỐNG AGENT HỘI THOẠI HIỆN THÂN CHO TƢƠNG TÁC NGƢỜI-MÁY LUẬN VĂN THẠC SĨ Hà Nội – 2008 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ------------ VŨ QUỐC HUY XÂY DỰNG HỆ THỐNG AGENT HỘI THOẠI HIỆN THÂN CHO TƢƠNG TÁC NGƢỜI-MÁY Ngành: Công Nghệ Thông Tin Chuyên ngành: Công Nghệ Phần Mềm Mã số: 68 40 10 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC TS. BÙI THẾ DUY Hà Nội – 2008 Mục lục Các hình vẽ ................................................................................................................... i Thuật ngữ tiếng Anh ....................................................................................................ii CHƢƠNG 1. MỞ ĐẦU ............................................................................................ 1 CHƢƠNG 2. AGENT HỘI THOẠI HIỆN THÂN ................................................... 3 2.1. Ứng dụng của agent hội thoại ............................................................................ 3 2.2. Các loại agent hội thoại ..................................................................................... 6 2.3. Chatterbot.......................................................................................................... 6 2.3.1. Các kỹ thuật xây dựng chatterbot ................................................................ 7 2.3.1.1. Phƣơng pháp tìm từ khóa ...................................................................... 7 2.3.1.2. Phƣơng pháp tìm mẫu ........................................................................... 7 2.3.1.3. Phân tích ngôn ngữ tự nhiên ................................................................. 9 2.3.1.3.1. Phân tích cú pháp ......................................................................... 11 2.3.1.3.2. Phân tích ngôn từ ......................................................................... 12 2.3.1.3.3. Phân tích ngữ nghĩa ..................................................................... 13 2.3.1.3.4. Phân tích thực tế .......................................................................... 14 2.3.2. Xây dựng cơ sở dữ liệu cho chatterbot ...................................................... 16 2.3.3. Một số kỹ thuật cải tiến cho chatterbot ...................................................... 19 2.4. Agent hội thoại hiện thân ................................................................................. 20 2.4.1. Sự phát triển.............................................................................................. 22 2.4.2. Động lực phát triển ................................................................................... 23 2.4.3. Hội thoại trực tiếp với con ngƣời .............................................................. 24 2.4.4. Yêu cầu kiến trúc ...................................................................................... 25 2.4.5. Kiến trúc hội thoại hiện thân ..................................................................... 26 2.4.6. Mô hình tính cách và cảm xúc ................................................................... 28 2.4.7. Một số agent hội thoại hiện thân ............................................................... 29 2.4.7.1. REA - An Embodied Conversational Agent ........................................ 29 2.4.7.2. Ola – một agent hội thoại với cử chỉ điệu bộ....................................... 32 CHƢƠNG 3. MÔ HÌNH MẶT 3D BIỂU CẢM ..................................................... 35 3.1. Giới thiệu ........................................................................................................ 35 3.2. Mô hình hóa khuôn mặt ................................................................................... 40 3.3. Mô hình hóa khuôn mặt với các lớp đa giác..................................................... 41 3.4. Mô hình khuôn mặt với bề mặt tham số ........................................................... 42 3.5. Mô hình hóa cử động trên khuôn mặt .............................................................. 43 3.5.1. Hoạt ảnh khung chính ............................................................................... 44 3.5.2. Hoạt ảnh tham số hóa ........................................................................... 44 3.5.3. Hoạt ảnh dựa trên giả cơ ........................................................................... 44 3.5.4. Hoạt ảnh dựa trên cơ ................................................................................. 44 CHƢƠNG 4. HỆ THỐNG AGENT HỘI THOẠI HIỆN THÂN ............................. 45 4.1. Giới thiệu ........................................................................................................ 45 4.2. Hệ thống hội thoại ........................................................................................... 45 4.2.1. AIMLBot .................................................................................................. 45 4.2.2. AIML - Artificial Intelligence Markup Language...................................... 47 4.2.2.1. Thẻ category ....................................................................................... 48 4.2.2.2. Thẻ pattern ......................................................................................... 49 4.2.2.3. Thẻ template ....................................................................................... 49 4.3. Hệ thống khuôn mặt 3D biểu cảm ................................................................... 50 4.4. Tích hợp .......................................................................................................... 51 CHƢƠNG 5. KẾT LUẬN ...................................................................................... 60 TÀI LIỆU THAM KHẢO.......................................................................................... 62 Các hình vẽ Hình 1: Luồng dữ liệu trong agent hội thoại ............................................................... 11 Hình 2: Thành phần chính xử lý ngôn ngữ tự nhiên trong CA .................................... 13 Hình 3: Một số agent hội thoại 3D và 2D ................................................................... 22 Hình 4: Chi tiết kiến trúc hội thoại ............................................................................. 26 Hình 5: Mô hình cảm xúc OCC ................................................................................. 29 Hình 6: Conversational agent architecture .................................................................. 32 Hình 7: Nhân vật hoạt hình 3D .................................................................................. 33 Hình 8: 3D face ......................................................................................................... 37 Hình 9: Mô hình mặt theo CANDIDE và GRETA ..................................................... 41 Hình 10: Bề mặt B-spline .......................................................................................... 43 Hình 11: Các lớp cơ bản của AIMLBot...................................................................... 46 Hình 12: Mẫu file AIML............................................................................................ 48 Hình 13: Khuôn mặt biểu lộ cảm xúc ......................................................................... 51 Hình 14: Mô hình tƣơng tác với hệ thống .................................................................. 52 Hình 15: Giao diện tƣơng tác của hệ thống ................................................................ 59 i Thuật ngữ tiếng Anh Conversational agent Embodied Agent hội thoại conversational Agent hội thoại hiên thân agent – ECA Multimodal interface Giao diện đa hình thái. Language Xử lý ngôn ngữ tự nhiên Natural Processing - NPL OCC (Ortony, Collins, Mô hình cảm xúc OCC Clore) ii CHƢƠNG 1:MỞ ĐẦU CHƢƠNG 1. MỞ ĐẦU Chúng ta đang sống trong thời kỳ phát triển mạnh mẽ của công nghệ thông tin. Ngày nay con ngƣời đã chế tạo ra rất nhiều các thiết bị -"công cụ thông minh"- phục vụ cho cuộc sống của chính mình nhƣ máy tính, robot, hệ thống viễn thông, các máy công cụ..., đẩy nhanh quá trình phát triển tự động hoá. Nhƣng để sử dụng linh hoạt hơn, khai thác có hiệu quả hơn, dễ dàng điều khiển những thiết bị hơn, cùng với việc điều khiển các công cụ "thông minh" đó chúng ta lại vấp phải một hàng rào cản rất lớn, đó là sự trao đổi thông tin hay là sự tƣơng tác giữa ngƣời và máy. Đây là một vấn đề nghiên cứu lớn đã và đang đƣợc nhiều nƣớc trên thế giới quan tâm, ví dụ nhƣ Mỹ đã có những nghiên cứu đầu tiên từ những năm 70, Ba Lan từ thập kỷ 80 của thế kỷ 20 và hiện nay Trung Quốc cũng đã bắt đầu. Kết quả nghiên cứu tới nay đã có nhƣng chƣa nhiều, nhƣng tầm quan trọng của việc hội thoại giữa ngƣời và máy thì chúng ta có thể nhận thức đƣợc dễ dàng. Hiện tại quá trình tƣơng tác giữa con ngƣời và máy tính chủ yếu thông qua các thiết bị nhƣ chuột, bàn phím, màn hình, đó là những thiết bị và cách thức truyền thống để chúng ta “nói chuyện” với máy tính. Chúng ta cố gắng học cách di chuyển chuột thành thạo, gõ phím nhanh nhất có thể và tạo ra những màn hình có khả năng cảm ứng để đẩy nhanh quá trình tƣơng tác với máy, song tất cả những nỗ lực và sự cải thiện đó cũng không làm cho “cuộc trò chuyện” giữa ngƣời và máy đƣợc tự nhiên hơn. Những quá trình tƣơng tác giữa ngƣời và máy nhƣ trên vẫn mang tính chất một chiều, máy chờ đợi những dữ liệu từ phía ngƣời dùng rồi phản hồi lại một cách cứng nhắc, không dáng điệu cử chỉ, không có biểu lộ cảm xúc. Cùng với sự phát triển của công nghệ và thành công trong các lĩnh vực nghiên cứu trong nhiều năm qua, chúng ta đang tiếp cận đƣợc những cuộc hội thoại giữa ngƣời và máy tự nhiên hơn. Cụ thể với những thành quả trong các lĩnh vực khoa học nhƣ ngôn ngữ học, phân tích cấu trúc câu, phân tích tiếng nói, nhận dạng tiếng nói, trí tuệ nhân tạo mà chúng ta đã và đang xây dựng đƣợc những hệ thống hội thoại tƣơng tác giữa ngƣời và máy giống nhƣ giữa con ngƣời và con ngƣời. Những hệ thống hội thoại nhƣ vậy sẽ làm cho quá trình giao tiếp giữa ngƣời và máy trở nên hiệu quả hơn, một cách tự nhiên hơn. Máy tính không chỉ đơn thuần đón nhận thông tin từ con ngƣời qua các thiết bị nhƣ bàn phím, chuột, màn hình mà nó còn có thể chấp nhận dữ liệu từ nhiều cách thức khác nhau nhƣ âm thanh, hình ảnh, các thiết bị khác. Nhờ đặc điểm đa 1 CHƢƠNG 1:MỞ ĐẦU cách thức (multimodal) đầu vào nhƣ vậy càng làm cho quá trình tƣơng tác giữa ngƣời và máy trở nên thân thiện, dễ dàng hơn. Hội thoại giữa con ngƣời và con ngƣời không đơn thuần chỉ dùng lời nói, một phƣơng thức rất quan trọng trong hội thoại của con ngƣời đó là cảm xúc. Từ cử chỉ, nét mặt, chuyển động của đầu, ánh mắt đều giúp ngƣời đối thoại có thể nhận biết đƣợc cảm xúc của ngƣời nói. Chính nhờ những phƣơng tiện giao tiếp phi ngôn ngữ nhƣ vậy đã làm cho hội thoại của con ngƣời trở nên phong phú và giàu ý nghĩa hơn. Các nhà khoa học cũng đang nghiên cứu để sự tƣơng tác giữa con ngƣời và máy trở nhiên tự nhiên nhƣ vậy. Agent hội thoại hiện thân là một trong những giải pháp đang thu hút đƣợc nhiều sự quan tâm. Trong luận văn này tôi sẽ trình bày những nghiên cứu để xây dựng một hệ thống agent hội thoại hiện thân, hệ thống này đƣợc kết hợp từ hai hệ thống con đó là agent hội thoại và mô hình khuôn mặt 3D thể hiện cảm xúc. Ngoài việc có thể hội thoại với ngƣời dùng thông qua cách gõ văn bản thì ứng dụng này đƣợc mở rộng để có thể biểu lộ cảm xúc và những cảm xúc này sẽ đƣợc thể hiện trên mô hình khuôn mặt 3D, đồng thời có cử động của đôi môi mô phỏng câu trả lời với ngƣời sử dụng. Luận văn đƣợc tổ chức nhƣ sau, chƣơng 1 giới giới thiệu các vấn đề, nhu cầu và mục đích của luận văn. Trong chƣơng này, chúng ta thấy đƣợc phƣơng hƣớng các nghiên cứu và bố cục tổ chức trong luận văn. Chƣơng 2 giới thiệu tổng quan về agent hội thoại hiện thân, chúng ta sẽ có cái nhìn bao quát về một trong lĩnh vực tƣơng tác ngƣời máy, những ứng dụng, kỹ thuật và một số agent hội thoại hiện thân đang đƣợc phát triển trên thế giới. Chƣơng 3 giới thiệu mô hình khuân mặt 3D biểu cảm. Trong chƣơng này chúng ta sẽ tìm hiểu phƣơng pháp mô hình hóa khuôn mặt, mô hình hóa cử động cơ để có thể tạo ra các trạng thái cảm xúc khác nhau. Chƣơng 4 trình bày hệ thống agent hội thoại hiện thân bao gồm tính năng hội thoại và bày tỏ cảm xúc qua khuôn mặt 3D. Trong chƣơng này sẽ đƣa ra phƣơng pháp tích hợp và kỹ thuật trao đổi thông tin giữa hệ thống hội thoại và mô hình khuôn mặt 3D. Chƣơng 5 tổng kết những kết quả nghiên cứu và phân tích ƣu điểm nhƣợc điểm. Cuối cùng là hƣớng nghiên cứu và cải tiến trong tƣơng lai cho sự nghiên cứu này. 2 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN CHƢƠNG 2. AGENT HỘI THOẠI HIỆN THÂN Ngày này máy tính đƣợc mọi ngƣời sử dụng ngày càng nhiều không chỉ tại nơi làm việc mà còn ở nhà, do vậy một môi trƣờng thân thiện hơn cho việc tƣơng tác giữa ngƣời và máy trở là một nhu cầu cần thiết. Nếu con ngƣời có thể tƣơng tác với các máy tính một cách tự nhiên hơn thì công việc có thể đƣợc thực hiện nhanh hơn rất nhiều. Trong đa số trƣờng hợp, con ngƣời tƣơng tác với nhau thông qua lời nói, chữ viết và các cách thức phi ngôn ngữ nhƣ cử chỉ, nét mặt, dáng điệu. Trong tƣơng lai, các máy tính cần có khả năng hiểu đƣợc ngôn ngữ để tƣơng tác tự nhiên thực sự với con ngƣời. Không những hiểu ngôn ngữ, mà nó còn có thể đƣa ra các phản hồi một cách tự nhiên với ngƣời dùng thông qua ngôn từ. Những nhu cầu tất yếu này chính là động lực cho sự ra đời của agent hội thoại. Trƣớc tiên, ta hãy xem xét khái niệm “agent”. Theo định nghĩa của Wooldridge và Jennings [1995], “agent là một hệ thống máy tính được đặt trong môi trường nào đó, có khả năng tự quản hành động trong môi trường này để đạt được những mục đích thiết kế của nó”. Định nghĩa này bao gồm các hệ thống điều khiển, các phần mềm daemon, web spider, virtual assistant (ví dụ nhƣ Word paperclip). Nhƣ vậy agent khác với một phần mềm máy tính ở đặc điểm có khả năng tự quản hành động trong môi trƣờng hoạt động. Agent hội thoại là một chƣơng trình hiểu đƣợc ngôn ngữ tự nhiên và có khả năng đáp ứng một cách thông minh với những yêu cầu ngƣời dùng. Trong luận văn này, tôi sẽ nghiên cứu một số vấn đề và thách thức liên quan đến việc tạo ra một agent hội thoại tích hợp với khuôn mặt 3D biệu lộ cảm xúc. Phƣơng tiện truyền đạt của agent trong luận văn này thông qua gõ văn bản, nhƣng dữ liệu đầu vào có thể đến từ bất cứ nơi nào, cho dù đó là ngôn ngữ nói, một quyển sách, một văn bản gõ vào hay các phƣơng tiện khác. Những vấn đề đƣợc thảo luận trong nghiên cứu này sẽ giải quyết công việc sau khi chúng ta chuyển đổi dữ liệu đầu vào của ngƣời dùng sang một dạng thức cơ bản mà có thể làm việc trên máy tính. Sau đó các agent sẽ sử dụng một số thuật toán để xem xét ý nghĩa của dữ liệu. 2.1. Ứng dụng của agent hội thoại 3 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN Agent hội thoại đƣợc ứng dụng rất rộng rãi trong nhiều lĩnh vực nhƣ là chăm sóc khách hàng, trong các game giải trí, trung tập chăm sóc sức khỏe và nhiều lĩnh vực khác. Agent hội thoại là công nghệ giao tiếp tận dụng ngôn ngữ tự nhiên và những kỹ thuật ngôn ngữ sử dụng máy tính, sao cho máy tính giống nhƣ con ngƣời. Họ có thể hỗ trợ một loạt các ứng dụng trong đời sống nhƣ kinh doanh, giáo dục, chính phủ, y tế, và vui chơi giải trí. o Dịch vụ khách hàng: Đáp ứng lại những câu hỏi chung chung của khách hàng về sản phẩm và dịch vụ ví dụ nhƣ, trả lời các câu hỏi về việc áp dụng cho việc mua xe ô tô trả góp hoặc việc thế chấp nhà cửa. o Công việc giấy tờ (Help desk): Đáp ứng với những câu hỏi của nội bộ nhân viên, ví dụ nhƣ, trả lời các câu hỏi nhân sự. o Trang web navigation: chỉ dẫn khách hàng đến phần có nội dung thích hợp của các trang web phức tạp - một Website thuê xe. o Hướng dẫn bán hàng: Cung cấp các giải đáp và hƣớng dẫn trong quá trình bán hàng, đặc biệt là các sản phẩm phức tạp bán cho các khách hàng mới. o Hỗ trợ kỹ thuật: Đáp ứng với các vấn đề kỹ thuật, chẳng hạn nhƣ chẩn đoán một vấn đề về một sản phẩm hay điện thoại. Trong thƣơng mại, giao tiếp rõ ràng là yếu tố quyết định cho thu hút, phục vụ và giữ các khách hàng. Các công ty của họ phải giáo dục cho các khách hàng tiềm năng của họ về sản phẩm và dịch vụ. Vì vậy họ cũng phải nâng cao sự hài lòng của khách hàng và giữ chân khách hàng bằng cách phát triển sự hiểu thấu đáo những nhu cầu của khách hàng. Khách hàng cần tìm kiếm câu trả lời nhanh và chính xác cho câu hỏi của họ. Họ nản lòng khi tìm kiếm vô vọng thông qua các trang web, mất thời gian khi xếp hàng chờ tƣ vấn của các nhân viên chăm sóc khách hàng, chẫm trễ sự phản hồi qua email. Cải thiện dịch vụ và hỗ trợ khách hàng là rất cần thiết cho nhiều công ty vì nếu không sẽ phải trả giá đắt cho sự thất bại: các tổn thất của khách hàng và các thiệt hại của doanh thu. Chi phí cung cấp dịch vụ và hỗ trợ thì cao, chất lƣợng thì thấp, trong khi kỳ vọng của khách hạng lại cao hơn tất cả. Đạt đƣợc sự phản hồi khách hàng chính sác và nhất quán là một thách thức và thời gian phản hồi thƣờng quá lâu. Trong nhiều 4 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN trƣờng hợp, tính hiệu quả còn bi đát hơn khi mà các công ty chuyển tăng mức độ hoạt động trên các ứng dụng tự phục vụ trên nền tảng Web, những cái thuộc về phần mềm quản lý quan hệ khách hàng. Trong thập kỷ vừa qua, quản lý quan hệ khách hàng (CRM) đã nổi lên nhƣ là một lớp ứng dụng chính của các phần mềm doanh nghiệp. CRM bao gồm ba loại ứng dụng chủ yếu: tự động hóa lực lƣợng bán hàng, tiếp thị và các dịch vụ hỗ trợ khách hàng. Tự động hóa lực lƣợng bán hàng tập trung vào các giải pháp cho theo dõi, quản lý tài khoản và liên lạc và quản lý các mối quan hệ đối tác. Tự động hóa tiếp thị nhắm vào quản lý chiến dịch và các nhu cầu tiếp thị thƣ điện tử , cũng nhƣ phân tích và phân loại khách hàng. Các ứng dụng dịch vụ khách hàng cung cấp các giải pháp cho hệ thống call trung tâm, quản lý tri thức, và các ứng dụng dịch vụ điện tử cho các ứng dụng web phối hợp, gửi thƣ điện tử tự động hóa và live chat. Đây là chính là kiểu thứ ba của hệ thống dịch vụ khách hàng mà áp dụng công nghệ agent hội thoại. Các công ty đối mặt với thách thức làm sao tăng tính khả dụng và chất lƣợng của các dịch vụ khách hàng trong khi kiểm soát chi phí đƣợc của họ. Sẽ rất tốn kém nếu thuê những nhân sự đã đƣợc đào tạo bài bản để thực hiện các nghiệp vụ ở tổng đài tƣ vấn, trung tâm phản hồi thƣ điện tử, live chat. Tình hình càng trở nên xấu hơn bởi thực tế là: chất lƣợng phục vụ phải đạt tới mức khách hàng cảm thấy hài lòng với tính chính xác và sự nhanh chóng. Các công ty thƣờng sử dụng nhiều kênh thông qua đó khách hàng có thể liên lạc với họ. Đó là bao gồm các kênh đắt tiền nhƣ các hệ thống trả lời điện thoại và các hệ thống tƣơng tác thoại. Càng ngày họ theo phƣơng pháp tiếp cần dựa trên nền tảng Web bởi vì các công ty cố gắng nhắm đáp ứng nhu cầu ngày càng tăng của các dịch vụ trong khi vẫn kiểm soát các chi phí hỗ trợ bằng nhân lực. Các kênh dịch vụ điện tử bao gồm thƣ điện tử, live chat, cũng nhƣ tìm kiếm và email tự động trả lời. Cân bằng giữa chi phí và tính hiệu quả trong hỗ trợ khách hàng đặt công ty vào tình trạng tiến thoái lƣỡng nan. Mặc dù chất lƣợng của sự hỗ trợ bằng nhân lực là hiệu quả nhất, nhƣng nó cũng là đắt đỏ nhất. Các công ty thƣờng bị ảnh hƣởng lớn từ việc luân chuyển nhân viên, cùng với chi phí đào tạo, làm cho sự hấp dẫn của sự trợ giúp bằng nhân lực cũng giảm. Hơn nữa, tỉ lệ luân chuyển nhân viên cao tăng khả năng 5 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN khách hàng sẽ gặp phải những nhân viên thiếu kinh nghiệm, những ngƣời cung cấp thông tin không chính xác và thống nhất. Trong lĩnh vực giải trí, agent hội thoại cũng đƣợc đƣa và các trò chơi nhất là trong các game nhập vai giúp cho tƣơng tác giữa ngƣời chơi và game đƣợc thoải mái và giống thật hơn trong các tình huống chơi. Chính nhờ những agent hội thoại mà trò chơi sẽ cuốn hút và có nội dung hơn. 2.2. Các loại agent hội thoại Lĩnh vực nghiên cứu agent hội thoại rất rộng và đa dạng. Chúng ta có thể phân loại agent hội thoại theo các tiêu chí nhƣ: thể thức, thiết bị, ứng dụng,…. Cụ thể nhƣ với kiểu phân loại theo thể thức chúng ta có hệ thống agent nhƣ dƣới đây: o Hệ thống dựa trên văn bản o Hệ thống hộp thoại cùng lời nói o Hệ thống giao diện đồ họa o Hệ thống kết hợp 2.3. Chatterbot Thuật ngữ "ChatterBot" đã đƣợc Michael Mauldin đặt ra lần đầu tiên vào năm 1994 để mô tả những chƣơng trình hội thoại trên máy tính. Chatterbot cũng có thể gọi là “talk bot”, “chat bot” hay “chatterboxe”. Chatterbot là một chƣơng trình máy tính đƣợc thiết kế để mô phỏng một cuộc hội thoại thông minh với một hoặc nhiều ngƣời thông qua lời nói hay văn bản. Các chƣơng trình nhƣ vậy cũng còn đƣợc biết đến với cái tên là thực thể hội thoại nhân tạo (Artificial Conversational Entity - ACE) và dù đã có thể hiểu đƣợc đa dạng đầu vào của ngƣời dùng, nhƣng hầu hết các chatterbot chỉ đơn giản quét các từ khóa trong dữ liệu đƣợc đƣa vào và cho ra một trả lời phù hợp nhất với từ khóa từ trong cơ sở dữ liệu. Các chatterbot kinh điển đƣợc phát triển từ rất sớm phải kể đến đó là Eliza ra đời năm 1966 và PARRY năm 1972. Gần đây thì có các chƣơng trình nhƣ Racter, Verbots, ALICE và ELLA. 6 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN Sự phát triển của các chatterbot cũng nhƣ trong lĩnh vực nghiên cứu về chủ đề này đã mở rộng mục đích ứng dụng. Trong khi Eliza và PARRY chủ yếu đƣợc sử dụng trong các cuộc hội thoại thông qua bàn phím, thì Racter đã đƣợc sử dụng để "viết" một câu chuyện đƣợc gọi là The Policeman's Beard is Half Constructed. ELLA thì lại bao gồm một tập hợp các trò chơi và chức năng để có thêm các tính năng mở rộng tiềm năng của các chatterbot. Các chatterbot đƣợc xây dựng dựa trên các kỹ thuật nhƣ tìm mẫu (pattern matching), tìm từ khóa (keyword matching), phân tích ngôn ngữ tự nhiên (natural language parsing) hay các kỹ thuật khác. Bên cạnh đó sự nghiên cứu về chatterbot cũng đề cập đến một số vấn đề liên quan tới con ngƣời nhƣ tính cách, cảm xúc, trí nhớ để mô phỏng hội thoại với con ngƣời thực tế hơn. 2.3.1. Các kỹ thuật xây dựng chatterbot 2.3.1.1. Phương pháp tìm từ khóa Kỹ thuật tìm từ khóa là kỹ thuật đơn giản nhất để tạo ra chatterbot. Những chatterbot đƣợc tạo từ kỹ thuật này đơn thuần chỉ phản hồi lại ngƣời dùng dựa vào những từ, cụm từ đƣợc định nghĩa trƣớc rồi đƣa ra các câu trả lời tƣơng ứng. Một ví dụ đơn nhất mà chúng ta có thể thấy của việc áp dụng kỹ thuật này đó là câu lệnh “man” trong linux hay unix, đây cũng có thể coi là một chatterbot đơn giản. Khi ngƣời dùng gõ “man ls” thì hệ thống sẽ đƣa lại một loạt các dòng văn bản hƣớng dẫn cho câu lệnh “ls” trong linux. Khi ngƣời dùng đƣa vào một từ không phải là từ khóa hay câu lệnh biết trƣớc thì hệ thống sẽ không thể tìm đƣợc sự phản hồi thích hợp. 2.3.1.2. Phương pháp tìm mẫu Kỹ thuật “pattern matching” là tìm kiếm một hoặc một số các mô hình phù hợp với câu mà ngƣời dùng nhập vào. Nói chung một mô hình đƣợc định nghĩa nhƣ là một câu trong ngôn ngữ tự nhiên, trong đó có một số phần đƣợc thay thế bởi các thể đại diện có thể phù hợp với bất kỳ nhóm các từ trong câu phù hợp. Với mỗi mô hình đƣợc định nghĩa trong cơ sở dữ liệu, thì sẽ có một mẫu tƣơng ứng đƣợc sử dụng để tạo ra câu trả lời cho một câu. Các đại từ trong câu gốc sẽ đƣợc 7 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN chuyển đổi cho phù hợp với ngữ cảnh hội thoại. Ví dụ nhƣ các từ "I, my, mine" trở thành "you, your, yours" và theo cách khác. Ví dụ, một mô hình trong chƣơng trình Eliza gốc có thể đƣợc thể hiện nhƣ sau: I want * trong đó ký tự „*‟ có thể đƣợc thay thế bởi chuỗi các từ bất kỳ. Các mẫu tƣơng ứng để tạo ra câu trả lời có thể đƣợc thể hiện nhƣ dƣới đây: What would it mean to you if you got * trong đó ký tự „*‟ đƣợc thay thế bởi dãy các từ phù hợp với các thẻ đại diện trong mô hình. Một ứng dụng theo mô hình này có thể có những hộp thoại sau đây: User: I want to know how it works. Eliza: What would it mean to you if you got to know how it works? Trong hộp thoại tiếp theo, cũng dựa trên cùng một mô hình là một ví dụ về sự đổi ngôi: User: I want to talk to my adviser. Eliza: What would it mean to you if you got to talk to your adviser? Bên cạnh danh sách các mô hình, chƣơng trình Eliza cũng chứa một danh sách các câu có thể đƣợc đƣa trong câu trả lời mà không phù hợp với bất kỳ một trong các mô hình, nhƣ: What does that suggest to you ? Please go on. Đối với nhât vật ảo, các mô hình đều đƣợc xây dựng từ cơ sở dữ liệu của lời thoại nhân vật từ cuốn sách hoặc script. Chúng đều dựa trên những lời của bất kỳ nhân vật khác có trƣớc. Và mẫu phản hồi đƣợc sinh ra từ các câu trả lời của nhân vật trong 8 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN hội thoại gốc. Hiện tại, các mô hình đƣợc chọn một cách thủ công, và trong tƣơng lai, chúng tôi dự định thực hiện một trình sinh mẫu và mô hình tự động. Theo ý tƣởng trong chƣơng trình Eliza, chatterbot của chúng ta cũng có chứa một danh sách các câu ngẫu nhiên mà có thể trả lời đƣợc những câu mà ngƣời dùng đƣa vào. 2.3.1.3. Phân tích ngôn ngữ tự nhiên Kỹ thuật phân tích ngôn ngữ tự nhiên là cách tiếp cận cao cấp cho các chatterbot. Những dữ liệu vào của ngƣời dùng sẽ đƣợc áp dụng các kỹ thuật phân tích ngôn ngữ để chatterbot đƣa ra phản hồi một cách tự nhiên. Phân tích ngôn ngữ tự nhiên (natural language parsing - NLP) là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con ngƣời. Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tƣ duy và giao tiếp. Những nỗ lực nghiên cứu quan trọng về NLP đã đƣợc bắt đầu từ những năm 1960. Tuy nhiên, quá trình nghiên cứu NLP tƣơng đối chậm trong thập kỷ đầu tiên, bởi vì cấu trúc thủ công xây của hệ thống NLP đã tốn nhiều thời gian, khó khăn và đổ vỡ. Tuy nhiên, trong những năm 1990, có ba yếu tố dẫn đến việc thúc đẩy tiến độ trong nghiên cứu NLP. Đầu tiên đã đƣợc phát triển rộng lớn của “corpora of tagged text”, chẳng hạn nhƣ Brown Corpus, Penn Treebank [LDC, 2003], và British National Corpus [Bri, 2003]. Thứ hai là sự phát triển của thống kê, học máy (machine-learning) và các kỹ thuật kinh nghiệm trong việc văn phạm trích dẫn, ontologies, và các thông tin khác từ tagged corpora. Yếu tố thứ ba đó là các cuộc ganh đua, chẳng hạn nhƣ MUC và TREC [Nat, 2003]. Sự kết hợp của những yếu tố này đã dẫn đến việc cải thiện nhanh kỹ thuật để tự động hoá trong việc xây dựng hệ thống NLP. Phân tích ngôn ngữ tự nhiên chính xác và hiệu quả là rất cần thiết để có đƣợc agent hội thoại hiệu quả. Để phản hồi một cách thích hợp cho sự bày tỏ của ngƣời dùng, agent hội thoại phải (1) hiểu đƣợc những lời phát biểu, (2) xác định những hành động xảy ra khi phản hồi lại lời nói và (3) thực hiện các hành động, trong đó có thể bao gồm trả lời với văn bản, trình bày trang web hoặc các thông tin khác và hệ thống xử lý sẽ ghi các thông tin vào một cơ sở dữ liệu. Khi áp dụng xử lý ngôn ngữ tự nhiên, agent hội thoại có thể trò chuyện phong phú và giống nhƣ hội thoại giữa con ngƣời và 9 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN con ngƣời, không giống nhƣ các kỹ thuật “pattern matching”, chỉ tìm kiếm các từ khóa (đối với các agent đơn giản nhƣ ELIZA), mà phƣơng pháp này sẽ có thể phân tích, suy luận từ những thông tin mà ngƣời trò chuyện đƣa ra. Ví dụ khi khách hàng nói: Tôi muốn mua nó ngay bây giờ Agent đầu tiên phải xác định ý nghĩa thực của lời phát biểu: ngƣời dùng muốn mua một cái gì đó, cái đó có thể đã đƣợc đề cập trong cuộc hội thoại. Ngoài ra, agent phải luận ra đƣợc các mục tiêu mà ngƣời sử dụng tìm kiếm để hoàn tất một lời phát biểu mang ý nghĩa nhƣ trên. Mặc dù phát biểu của ngƣời dùng là một dạng khẳng định, nó cũng thể hiện bày tỏ nhằm đến một yêu cầu để hoàn thành quá trình mua hàng. Sau khi agent đã hiểu rõ lời thoại, nó phải tạo ra hành động nhƣ thế nào. Những hành động thích hợp phụ thuộc vào các mục tiêu hiện tại của agent (ví dụ nhƣ, bán các sản phẩm, hoặc giải quyết khiếu nại), lịch sử hộp thoại (những lời phát biểu trƣớc giữa agent và khách hàng), và agent có thể truy vấn các thông tin trong cơ sở dữ liệu, chẳng hạn nhƣ dữ liệu về các khách hàng đặc biệt hoặc về các sản phẩm. Ví dụ, agent có mục tiêu bán sản phẩm, thì thảo luận trƣớc đó xác định đƣợc mặt hàng tiêu thụ tại trang web, và danh mục các sản phẩm cho thấy các mục để đƣợc trong kho, do đó những hành động tiếp theo có thể là trình ra một đơn đặt hàng và yêu cầu của ngƣời sử dụng hoàn thành nó. Nếu cuộc thảo luân trƣớc đó không xác định đƣợc rõ ràng một mặt hàng, thì hành động tiếp là gợi ra mô tả về một mặt hàng cho khách hàng. Tƣơng tự, nếu nhƣ mặt hàng đó không còn trong kho thì có thể đƣa cho khách hàng sự lựa chọn khác. Cuối cùng, agent phải phản hồi bằng những hành động thích hợp. Những hành động đó có thể bao gồm một lời bày tỏ, cung cấp thông tin theo nhiều cách thức khác, chẳng hạn nhƣ ảnh sản phẩm, và thực hiện các hành động khác nhƣ ghi thông tin log vào cơ sở dữ liệu. Ví dụ, nếu hành động tiếp theo là đƣa ra đơn đặt hàng cho khách để họ hoàn tất đăng ký, thì agent nên đƣa ra đƣợc những lời phát biểu cảm tình nhƣ “Xin mời quý khách điền thông tin vào nội dung dƣới đây để hoàn tất việc mua bán”, và đƣa khách hàng đến trang web sản phẩm tƣơng ứng, bên cạnh đó ghi lại các thông tin log vào cơ sở dữ liệu. Hình 1 mô tả luồng dữ liệu trong hệ thông agent hội thoại. 10 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN Hình 1: Luồng dữ liệu trong agent hội thoại Quá trình xử lý của mỗi lời phát biểu gồm ba thành phần chính trong đƣợc hiển thị trong Hình 2. Thành phần đầu tiên trong kiến trúc này, trình thông dịch (Interpreter), thực hiện bốn loại phân tích: o Phân tích cú pháp (syntactic) o Phân tích ngôn từ (discourse) o Phân tích ngữ nghĩa (semantic) o Phân tích thực tế (pragmatic) 2.3.1.3.1. Phân tích cú pháp Phân tích cú pháp (syntactic analysis) xác định các mối quan hệ giữa các từ trong câu. Để hiểu đƣợc câu đã gõ, điều đầu tiên chúng ta phải phân tích cú pháp câu đó. Có rất nhiều phƣơng pháp phân tích, song ở đây chúng ta giả sử rằng bộ phân tích sẽ có một số ngữ nghĩa trong nó. Nhƣng phân tích câu thôi chƣa đủ khi mà có rất nhiều câu nhập nhằng, mơ hồ, nhƣ là tham khảo đến một nội dung hay đối tƣợng đã đƣợc nói trƣớc, cũng nhƣ tình huống và ngữ cảnh để làm sáng tỏ ý nghĩa của từ hoặc cụm từ. Ví dụ, trong câu: 11 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN I would like a fast computer Thì phân tích cú pháp sẽ xác định đƣợc “would like” là cụm động từ chính. “I” là chủ ngữ của câu và “a fast computer” là bổ ngữ. Với nhiều agent hội thoại trƣớc kia chủ yếu dựa vào phƣơng pháp “so mẫu” (pattern matching), không cần một phƣơng pháp phân tích cú pháp nào, nhƣng cách tiếp cận này không linh động. Số lƣợng câu mà agent nhận diện ngày càng tăng, do đó số lƣợng mẫu cần thiết để nhận diện các câu cũng bùng nổ nhanh chóng và phức tạp. 2.3.1.3.2. Phân tích ngôn từ Phân tích ngôn từ (discourse analysis) xác định các mối quan hệ giữa các câu. Một phần quan trọng của phân tích ngôn từ (discourse) là giải quyết sự tham chiếu, nhiệm vụ của việc xác định này là tìm ra đƣợc chủ thể đƣợc biểu thị bằng những từ ngữ tham chiếu, nhƣ là từ "it" trong, "I would like to buy it now." “It” đƣợc đại diện cho một chủ thể nào đó mà đã đƣợc đề cập trong cuộc hội thoại. Hay ví dụ nhƣ trong câu: How much does it cost? Trong câu này, đối tƣợng mà từ “it” tham chiếu đến là phụ thuộc vào ngữ cảnh. Nếu bạn đang ở trong một cửa hàng, thì nó sẽ ám chỉ đến thứ gì đó và hỏi ngƣời bán hàng về giá của vật đó, tất nhiên lúc đó ngƣời bán hàng đã biết chính xác vật mà bạn ám chỉ. Tuy nhiên trong hầu hết các trƣờng hợp, câu nhƣ vậy sẽ khó hiểu trong một số ngữ cảnh, khi mà từ “it” đã đƣơc đề cập trong cuộc hội thoại trƣớc đó. Trong tình cảnh đó, chúng ta thƣờng viện lý do để hỏi lại “it” là gì. Đó gọi là đồng tham chiếu (coreferencing). Đồng tham chiếu (coreferencing) Nhiều ngƣời đã đề cập đến vấn đề đồng tham chiếu nhƣ [Allen 95, Hobbs 77]. Đối với những ngƣời còn lại đều có những phƣơng pháp đề xuất khác nhau để giải quyết. Để chọn đúng đối tƣợng nào đƣợc tham chiếu trực tiếp hoặc gián tiếp chúng ta cần giữ lại danh sách những đối tƣợng đã đƣợc giới thiệu trƣớc đó và một số thông tin về chúng để khám phá cái nào là phù hợp nhất trong câu hiện tại. Công việc này thƣờng đƣợc thực hiện bằng cách sắp xếp theo thứ tự thời gian (ví dụ chúng ta tìm 12 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN kiếm đối tƣợng đƣợc nhắc đến trong câu trƣớc, rồi câu trƣớc nữa, vân..vân…). Ngoài ra một số mục thì đƣợc suy ra từ những câu trƣớc, ví dụ nhƣ cuộc hội thoại dƣới đây: A: When does the train to Hanoi leave? B: At 9:20pm A: How much does it cost? Trong tình huống này từ “it” hiển nhiên ám chỉ đến vé chứ không phải là đoàn tàu. Trong hoàn cảnh này thì từ “ticket” là đƣợc suy luận ra. Tuy nhiên khi chúng ta giải quyết đƣợc “it” ám chỉ đến đối tƣợng nào thì vẫn chƣa xong. Chúng ta cần trình bày câu này để máy tính dễ dàng xử lý. Điều này chúng ta cần một cách biểu diễn trung gian, gọi là dạng thức logic (logic form). 2.3.1.3.3. Phân tích ngữ nghĩa Phân tích ngữ nghĩa (semantic analysis) bao gồm xác định ý nghĩa của câu. Thông thƣờng, điều này bao gồm biểu diễn câu ở dạng thức hữu cơ để sắp xếp các câu với ý nghĩa tƣơng tự trở về một dạng thức duy nhất để thuận tiện cho việc suy luận. Phƣơng pháp tiếp cận phân tích ngữ nghĩa bao gồm: o Thay thế mỗi danh từ và động từ trong phân tích cú pháp với một từ có nghĩa tƣơng ứng với một tập các từ đồng nghĩa, chẳng hạn nhƣ Wordnet synsets [1]. o Biểu diễn câu nhƣ một khung trƣờng hợp [2], cây phụ thuộc [Harabagiu et al., 2000][3], hoặc biểu diễn hợp lý, chẳng hạn nhƣ xem xét vị ngữ đầu tiên. Hình 2: Thành phần chính xử lý ngôn ngữ tự nhiên trong CA 13 CHƢƠNG 2:AGENT HỘI THOẠI HIỆN THÂN 2.3.1.3.4. Phân tích thực tế Cuối cùng, trình thông dịch (Interpreter) phải tiến hành phân tích thực tế (pragmatic analysis), xác định tính thực tế của cuộc trao đổi, có nghĩa là, những lời nói (hoặc giao tiếp) [Searle, 1979] mà cuộc trao đổi đang tiến hành. Ví dụ, "Can you show me the digital cameras on sale?" Là trong mẫu câu hỏi, nhƣng kết quả thực tế của nó là yêu cầu cho xem máy ảnh. "I would like to buy it now" là một câu tuyên bố, nhƣng thực tế cũng là một yêu cầu. Tƣơng tự, “I don‟t have enough money” là một lời khƣớc từ cho câu hỏi “Would you like to proceed to checkout?” nhƣng lại là một yêu cầu từ phản hồi “Is there anything you need from me?” Kết quả “thông dịch” lời phát biểu của ngƣời dùng sẽ đƣợc chuyển vào “Quản lý hội thoại” – Dialog Manager, đảm nhiệm việc xác định các hành động phản hồi. Những hành động thích hợp phụ thuộc vào việc phiên dịch câu của khách hàng và trạng thái hội thoại của agent, biểu thị mục đích hội thoại hiện tại của agent. Trong các agent hội thoại đơn giản nhất, chỉ có một trạng thái hội thoại, tƣơng ứng với mục tiêu của câu trả của câu hỏi tiếp theo. Đối với các agent phức tạp hơn, lời phát biểu của khách hàng có thể đƣợc chuyển từ trạng thái hội thoại này sang trang thái hội thoại khác. Nhìn chung, trạng thái hội thoại mới là một chức năng của trạng thái hiện tại, sự trình bày và thông tin của khách hàng, sản phẩm và dịch vụ có trong quá trình thảo luận. Có thể cần truy vấn cơ sở dữ liệu và suy luận để xác định ra trạng thái hội thoại mới. Quản lý hội thoại (Dialog Manager) chịu trách nhiệm xác định và phản hồi lại những thay đổi trong chủ đề đàm thoại. Ví dụ nếu agent không thể trả lời đƣợc câu hỏi của ngƣời dùng khi mà ngƣời dùng không cung cấp thêm thông tin, thì trạng thái hội thoại sẽ đƣợc xét lại phản ánh mục đích thu thập thông tin. Tƣơng tự, nếu ngƣời dùng không hiểu câu hỏi và yêu cầu rõ ràng, thì trạng thái hội thoại cũng phải đƣợc thay đổi sang trạng thái tƣơng ứng với việc làm rõ vấn đề. Khi mục tiêu thu thập thông tin hoặc làm rõ vấn đề đƣợc hoàn thành thì Dialog Manager phải quay về trạng thái đã bị gián đoạn. Ba phƣơng pháp tiếp cận có thƣờng đƣợc áp dụng để quản lý hộp thoại. Phƣơng pháp đầu tiên sử dụng một finite-state automaton (FSA) nhƣ là một mô hình hộp thoại. Sự chuyển đổi trong FSA tƣơng ứng với các mệnh đề cá nhân, và các trạng 14
- Xem thêm -