Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh trí tuệ nhân tạo (AI) và xử lý ngôn ngữ tự nhiên (NLP) phát triển nhanh chóng, các trợ lý ảo (Virtual Assistants) hay Chatbot như Apple Siri, Google Assistant và Amazon Alexa đã trở nên phổ biến, hỗ trợ người dùng thực hiện các công việc thường nhật như đặt báo thức, gọi điện thoại hoặc tra cứu thông tin. Tuy nhiên, các trợ lý ảo thương mại tại thời điểm nghiên cứu vẫn tồn tại một số hạn chế nhất định về tính linh hoạt trong quản lý công việc chuyên sâu. Cụ thể, Google Assistant bị giới hạn khi chỉ hỗ trợ thiết lập lịch trình hoặc lời nhắc trong phạm vi thời gian ngắn (thường trong vòng 1 ngày), chưa tối ưu cho nhu cầu quản lý đa tác vụ trong khung thời gian dài của các nhà quản lý và người dùng bận rộn.

Để giải quyết vấn đề trên, đề tài khóa luận "Design chat-bot for planning task by Dialogflow and Google Calendar" (Thiết kế Chat-bot quản lý công việc bằng Dialogflow và Google Calendar) được thực hiện nhằm xây dựng một trợ lý ảo chuyên biệt mang tên Planning Assistant. Hệ thống có khả năng tiếp nhận yêu cầu bằng ngôn ngữ tự nhiên để thiết lập, chỉnh sửa, xóa và đề xuất lịch trình phù hợp trên Google Calendar với phạm vi thời gian mở rộng.

Theo văn bản nhiệm vụ đề tài (Task of the Thesis), các nội dung và nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Lựa chọn phương pháp tiếp cận để trích xuất thông tin từ yêu cầu dạng văn bản (so sánh NLTK, Stanford Core NLP và Dialogflow).
  2. Thu thập dữ liệu thủ công phục vụ tác vụ huấn luyện (training task).
  3. Thiết kế hệ thống ý định (intent system) cho tác vụ lập kế hoạch trên nền tảng Dialogflow.
  4. Lựa chọn các phương pháp huấn luyện phù hợp cho Agent.
  5. Sử dụng Google Calendar API để thực thi các tác vụ quản lý trên Google Calendar.
  6. Xây dựng hệ thống back-end xử lý dữ liệu trung gian giữa Dialogflow và Google Calendar API.
  7. Đánh giá hiệu quả của mô hình hiểu ngôn ngữ tự nhiên (NLU) và so sánh hoạt động của Agent với Google Assistant.

Sản phẩm đầu ra được xác định gồm hai thành phần chính: Dialogflow Agent và chương trình Planning Assistant.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Công nghệ xử lý ngôn ngữ tự nhiên (NLP/NLU), nền tảng phát triển chatbot Dialogflow của Google, giao diện lập trình ứng dụng Google Calendar API và hệ thống phần mềm back-end điều phối.
  • Phạm vi không gian và thời gian: Đề tài được thực hiện bởi sinh viên ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa thuộc Khoa Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), hoàn thành và bảo vệ vào tháng 7 năm 2018.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng nền tảng dựa trên các khái niệm và mô hình kỹ thuật sau:

  • Lịch sử và phân loại Chatbot: Hệ thống chatbot trải qua 3 thế hệ phát triển (Thế hệ 1: Hệ thống dựa trên luật - Rule-based; Thế hệ 2: Học có giám sát - Supervised Learning; Thế hệ 3: Kết hợp học có giám sát và không giám sát). Cấu trúc chatbot truyền thống gồm 3 khối: Responder (giao diện tiếp nhận/trả kết quả), Classifier (bộ phân loại và phân tách logic) và Graph-master (bộ não chứa thuật toán khớp mẫu). Kiến trúc hiện đại được chia thành hai dạng chính: Mô hình sinh (Generative models dựa trên Deep Learning) và Mô hình truy xuất (Retrieval-based models dựa trên luật, ngữ cảnh và câu trả lời định sẵn).
  • Học máy (Machine Learning - ML): Áp dụng các tác vụ Học có giám sát (Supervised Learning gồm Hồi quy - Regression và Phân loại - Classification) và Học không giám sát (Unsupervised Learning gồm Phân cụm - Clustering và Phi phân cụm - Non-clustering như bài toán Cocktail party).
  • Quy trình trích xuất thông tin trong NLP (Information Extraction Pipeline): Gồm 5 bước xử lý tuần tự:
    1. Phân đoạn câu (Sentence Segmentation): Chia văn bản thành các câu riêng biệt, khắc phục lỗi của biểu thức chính quy [.?!][()"]+[A-Z] (vốn gây ra 6,5% lỗi trên tập dữ liệu Brown corpus và WSJ).
    2. Tách từ (Tokenization): Phân chia câu thành các đơn vị ngôn ngữ (tokens), xử lý các trường hợp đặc biệt như email, ngày tháng hoặc ký hiệu kỹ thuật.
    3. Gán nhãn từ loại (Part of Speech Tagging - POS Tagging): Gán nhãn ngữ pháp cho từng từ dưới dạng bộ giá trị (word, tag) để làm đầu vào cho nhận diện thực thể.
    4. Nhận diện thực thể định danh (Named Entity Recognition - NER): Trích xuất các cụm danh từ chỉ người, tổ chức, địa điểm, thời gian, ngày tháng, tỷ lệ phần trăm.
    5. Nhận diện quan hệ (Relation Recognition): Trích xuất mối quan hệ giữa các thực thể theo 4 nhóm chính: Role, PART, AT và SOCIAL.
  • Giao diện lập trình ứng dụng (API): Cơ chế trao đổi dữ liệu qua định dạng JSON, giao thức ủy quyền và xác thực chuẩn OAuth 2.0.

Phương pháp nghiên cứu thực tế:

  • Thiết kế và tích hợp hệ thống: Xây dựng kiến trúc liên kết giữa giao diện người dùng, máy chủ back-end, Dialogflow API V2 và Google Calendar API.
  • Thu thập và gán nhãn dữ liệu: Thu thập dữ liệu câu lệnh lập lịch thủ công, gán nhãn thực thể và ý định bằng các công cụ trực quan trên Dialogflow.
  • Thực nghiệm và so sánh: Thử nghiệm hai chế độ huấn luyện trên Dialogflow là Hybrid (kết hợp Rule-based và ML) và ML only (chỉ dùng học máy); tiến hành kiểm thử hiệu năng trích xuất thực thể và so sánh tính năng thực tế với Google Assistant.

Thiết kế và triển khai

Hệ thống Planning Assistant được thiết kế theo mô hình 3 khối chức năng liên kết chặt chẽ:

[Người dùng / Giao diện UI] 
 [Hệ thống Back-end]

1. Kiến trúc hệ thống và luồng dữ liệu

  • Giao diện người dùng (UI): Tích hợp hộp văn bản (textbox) để người dùng nhập câu lệnh tự nhiên (ví dụ: "Make an alarm at 6 p.m tomorrow").
  • Hệ thống Back-end: Nhận chuỗi văn bản từ UI, chuyển tiếp tới Dialogflow API. Sau khi nhận phản hồi định dạng JSON chứa ý định (intent), hành động (action) và các tham số (parameters), back-end chuyển đổi dữ liệu thành cấu trúc phù hợp, lựa chọn phương thức thực thi tương ứng trên Google Calendar API (như tải lên, liệt kê, xóa sự kiện) và hiển thị kết quả xử lý lại cho người dùng trên UI.

2. Cấu hình NLU Agent trên Dialogflow

  • Phiên bản API và thiết lập: Đề tài sử dụng Dialogflow API V2. Ngưỡng phân loại học máy (ML Classification Threshold) được thiết lập ở mức 0.3.
  • Chế độ khớp (Match Mode): Chọn chế độ Hybrid (kết hợp giữa Rule-based do Google cung cấp và Học máy) nhằm bù đắp cho hạn chế về quy mô tập dữ liệu huấn luyện nhỏ.
  • Thiết kế Intent và Training Phrases:
    • Sử dụng hai chế độ nhập biểu thức: Example Mode (nhập câu mẫu rồi bôi đen gán nhãn) và Template Mode (xác định cấu trúc ngữ pháp gắn với thực thể). Template Mode được áp dụng chủ yếu cho thực thể title (tiêu đề công việc).
    • Khai báo các thực thể (Entities) phục vụ bóc tách thông tin: content, title, date, time, action.
  • Cấu hình Ngữ cảnh (Contexts): Thiết lập các thẻ ngữ cảnh đầu vào (Input Context) và ngữ cảnh đầu ra (Output Context) để liên kết chuỗi hội thoại nhiều lượt. Ví dụ: khi Intent Set alarm được kích hoạt sẽ tạo Output Context, cho phép Intent tiếp theo là Set alarm-cancel nhận diện chính xác đại từ thay thế (như từ "it" trong câu "Hold on. I want to cancel it") để hủy đúng sự kiện vừa tạo.
  • Định dạng phản hồi tham số: Sử dụng $parameter_name (giá trị mặc định), $parameter_name.original (giá trị nguyên bản trong câu nhập) và #context_name.parameter_name (giá trị tham số từ ngữ cảnh trước).
  • Tính năng bổ trợ: Tích hợp công cụ Small Talks (xử lý giao tiếp xã giao thông thường) và Prebuilt Agents để mở rộng phạm vi phản hồi.

3. Tích hợp Google Calendar API và Hàm xử lý Back-end

  • Xác thực bảo mật: Sử dụng giao thức OAuth 2.0 để cấp quyền truy cập tài khoản Google Calendar của người dùng.
  • Xử lý logic thời gian: Back-end hiện thực các giải thuật phân tích chuỗi thời gian chuyên biệt:
    • Hàm get_datetimeset(): Xử lý và chuẩn hóa mốc thời gian bắt đầu và kết thúc khi tạo mới sự kiện.
    • Hàm get_datetimeremove(): Phân tích mốc thời gian để tìm kiếm và xóa sự kiện trùng khớp trên lịch.
  • Xử lý sự kiện trùng lặp: Hệ thống phát hiện các sự kiện trùng lịch và đưa ra cảnh báo hoặc gợi ý điều chỉnh khung thời gian phù hợp.

Nội dung chính theo từng chương

Section 1: Introduction

Chương này trình bày tổng quan lý thuyết về Chatbot, Học máy, Xử lý ngôn ngữ tự nhiên, Google Calendar và Giao diện lập trình ứng dụng (API):

  • Giới thiệu định nghĩa Chatbot theo từ điển Oxford, phép thử Turing (Turing Test) năm 1950, chương trình Eliza của Joseph Weizenbaum tại MIT và 3 thế hệ phát triển của bot hội thoại. Phân tích 4 động lực chính thúc đẩy người dùng sử dụng chatbot theo nghiên cứu năm 2017: Năng suất (Productivity), Giải trí (Entertainment), Xã hội (Social and relational factors), và Sự tò mò (Curiosity).
  • Trình bày chi tiết cấu trúc 3 thành phần cổ điển (Responder, Classifier, Graph-master) và 2 kiến trúc hiện đại (Generative model vs Retrieval-based model).
  • Khái quát lịch sử Machine Learning từ Perceptron (1957), Nearest Neighbor (1967), EBL (1981), Lan truyền ngược - Backpropagation (Geoffrey Hinton, 1986) đến Deep Belief Nets (2006). So sánh phương pháp truyền thống dựa trên luật (Rule-based) với phương pháp tiếp cận bằng Học máy.
  • Trình bày 5 bước trong quy trình trích xuất thông tin NLP và phân tích các trường hợp khó xử lý trong phân tách câu, tách từ và gán nhãn thực thể.
  • Giới thiệu các tính năng của Google Calendar (Reminder, Smart suggestion, Event from email) và vai trò của REST API trong phát triển phần mềm hiện đại.

Section 2: Materials and Methods

Chương này tập trung mô tả chi tiết phương pháp xây dựng hệ thống Planning Assistant:

  • Phân tích ca điển hình (Case study) của Domino’s Pizza từ năm 2016 trong việc ứng dụng Dialogflow để xử lý các kịch bản đặt món phức tạp trên nhiều nền tảng và thiết bị tích hợp Google Assistant.
  • Hướng dẫn chi tiết quy trình thiết lập Agent trên giao diện Dialogflow Console, quản lý cấu hình API V2, phân biệt Client token và Developer token.
  • Phân tích cơ chế hoạt động của Intent, cách thức gán nhãn Entities, quản lý biến tham số trong Response, và nguyên lý vận hành của thẻ Contexts để ghi nhớ ngữ cảnh hội thoại.
  • Giới thiệu công cụ giám sát Training Tool trên Dialogflow nhằm theo dõi lịch sử hội thoại, phân tích các câu lệnh phân loại sai và phê duyệt (Approve) dữ liệu tái huấn luyện.
  • Mô tả chi tiết giao thức OAuth 2.0, kiến trúc hệ thống Back-end và lưu đồ thuật toán của hai hàm cốt lõi: get_datetimeset() và get_datetimeremove().

Kết quả và đóng góp

1. Kết quả thử nghiệm và đánh giá

Đề tài tiến hành đánh giá hiệu năng phân loại và nhận dạng của Agent thông qua việc thử nghiệm các chế độ huấn luyện và đối chiếu tính năng trực tiếp với Google Assistant.

Tiêu chí / Phương pháp Chế độ Hybrid (Rule-based + ML) Chế độ ML only (Chỉ dùng học máy)
Đặc điểm dữ liệu đầu vào Phù hợp với tập dữ liệu nhỏ, ít mẫu huấn luyện Đòi hỏi tập dữ liệu lớn để đạt độ chính xác cao
Cơ chế hoạt động Kết hợp luật ngôn ngữ có sẵn của Google với ML Phụ thuộc hoàn toàn vào các ví dụ huấn luyện (Examples)
Độ chính xác nhận dạng Đạt hiệu quả nhận dạng tốt hơn trên tập mẫu giới hạn Thường xảy ra lỗi phân loại nếu thiếu mẫu bao quát
Ngưỡng tin cậy (Threshold) Cấu hình tối ưu tại F1-score với mức ngưỡng 0.3 Dễ rơi vào Fallback Intent khi câu lệnh biến đổi

Bảng tổng hợp so sánh tính năng giữa Planning Assistant và Google Assistant dựa trên các nội dung thử nghiệm trong khóa luận:

Tính năng / Khả năng Trợ lý Planning Assistant (Đề tài) Google Assistant (Nguyên bản)
Phạm vi thiết lập lịch trình Hỗ trợ phạm vi thời gian rộng, linh hoạt nhiều ngày Chủ yếu giới hạn trong phạm vi 1 ngày
Quản lý đa tác vụ (Multi-tasks) Cho phép thiết lập và quản lý đồng thời nhiều nhiệm vụ Xử lý từng tác vụ đơn lẻ, phụ thuộc câu lệnh tức thời
Đề xuất lịch trình phù hợp Có hệ thống gợi ý lịch trình để tránh xung đột Hỗ trợ gợi ý cơ bản theo ngữ cảnh Gmail/Địa điểm
Khả năng xóa/sửa sự kiện Nhận diện ngữ cảnh liên hoàn (nhờ thẻ Contexts) Yêu cầu xác nhận lệnh tường minh từng bước
Đồng bộ hóa dữ liệu Đồng bộ trực tiếp hai chiều qua Google Calendar API Tích hợp sẵn trong hệ sinh thái Google

2. Đóng góp của đề tài

  • Xây dựng hoàn chỉnh một ứng dụng trợ lý ảo kết hợp công nghệ NLU đám mây (Dialogflow) với dịch vụ quản lý lịch trình phổ biến (Google Calendar).
  • Giải quyết hạn chế về mặt thời gian của Google Assistant, cho phép người dùng và nhà quản lý thiết lập kế hoạch dài hạn và kiểm soát lịch trình mọi nơi thông qua nền tảng Google Calendar.
  • Đưa ra giải pháp xử lý ngữ cảnh nhiều lượt (multi-turn conversation) hiệu quả thông qua việc cấu hình Input/Output Contexts trên Dialogflow và giải thuật bóc tách thời gian tại Back-end.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế

  • Hạn chế về quy mô dữ liệu: Do dữ liệu huấn luyện được thu thập thủ công với số lượng còn ít, mô hình NLU của Planning Assistant mới chỉ xử lý tốt các câu lệnh có cấu trúc đơn giản, quen thuộc.
  • Độ nhạy cảm với cấu trúc câu: Hệ thống dễ gặp lỗi nhận diện khi câu lệnh có sự thay đổi nhỏ về ngữ pháp hoặc cấu trúc. Điển hình là trường hợp câu lệnh thời gian bị thiếu giới từ "at" (ví dụ: mô hình nhận dạng sai thực thể hoặc phân loại nhầm Intent khi người dùng không dùng đúng cấu trúc mẫu).
  • Phụ thuộc vào nền tảng bên thứ ba: Hoạt động xử lý ngôn ngữ phụ thuộc hoàn toàn vào dịch vụ đám mây Dialogflow và các quy tắc nội bộ không công bố của Google.

2. Hướng nghiên cứu tiếp

  • Ứng dụng các mô hình Học sâu (Deep Learning) tiên tiến, đặc biệt là Mạng nơ-ron hồi quy (Recurrent Neural Networks - RNN) để nâng cao khả năng hiểu chuỗi ngôn ngữ tự nhiên phức tạp và tự động sinh câu trả lời tự nhiên như con người.
  • Mở rộng tập ngữ liệu huấn luyện đa dạng, thu thập từ nhiều tình huống giao tiếp thực tế để tăng cường độ bền vững (robustness) của bộ phân loại NLU.

Giá trị tham khảo

Tài liệu khóa luận mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa, Công nghệ Thông tin, Kỹ thuật Phần mềm: Tài liệu cung cấp hướng dẫn rõ ràng về cách tích hợp một dịch vụ NLU hiện đại vào hệ thống điều khiển/quản lý phần mềm thực tế.
  • Người nghiên cứu và phát triển Chatbot ứng dụng: Cung cấp tài liệu tham khảo chi tiết về quy trình xây dựng Agent trên Dialogflow API V2, kỹ thuật gán nhãn thực thể, quản lý ngữ cảnh qua Context tags và cấu hình chế độ huấn luyện Hybrid.
  • Phần đáng tham khảo nhất:
    • Quy trình phân tích và thiết kế hệ thống 3 khối (UI/Back-end, Dialogflow API, Google Calendar API).
    • Phương pháp xây dựng lưu đồ thuật toán cho các hàm bóc tách và chuẩn hóa mốc thời gian (get_datetimeset và get_datetimeremove) từ chuỗi JSON phản hồi của Dialogflow.

Câu hỏi thường gặp

1. Điểm cải tiến chính của Planning Assistant so với Google Assistant trong tác vụ lập lịch là gì?

Google Assistant tại thời điểm nghiên cứu thường chỉ hỗ trợ tạo lời nhắc hoặc kế hoạch trong phạm vi thời gian ngắn (chủ yếu là 1 ngày). Planning Assistant khắc phục hạn chế này bằng cách cho phép người dùng thiết lập kế hoạch trong một dải thời gian rộng hơn, hỗ trợ quản lý đa tác vụ (multi tasks) và gợi ý lịch trình phù hợp để tránh xung đột thời gian.

2. Tại sao nhóm tác giả lại lựa chọn chế độ khớp "Hybrid" thay vì "ML only" trên Dialogflow?

Do dữ liệu huấn luyện thu thập thủ công có số lượng hạn chế. Chế độ "ML only" đòi hỏi tập dữ liệu rất lớn để mô hình học máy đạt độ chính xác cao. Chế độ "Hybrid" kết hợp giữa học máy và các bộ luật ngôn ngữ (rule-based) có sẵn của Google, giúp hệ thống hoạt động ổn định và giảm thiểu sai sót khi dữ liệu mẫu còn ít.

3. Cơ chế Contexts trên Dialogflow giúp hệ thống xử lý hội thoại như thế nào?

Contexts hoạt động thông qua hai thẻ: Input Context và Output Context. Khi một Intent (như Set alarm) được kích hoạt, nó sinh ra một Output Context. Intent tiếp theo (như Set alarm-cancel) sử dụng Output Context đó làm Input Context của mình. Nhờ vậy, bot có thể hiểu các đại từ thay thế (như "it" trong câu "Hold on. I want to cancel it") để hủy chính xác sự kiện vừa được tạo trước đó.

4. Ngưỡng phân loại học máy (ML Classification Threshold) trong đề tài được thiết lập bằng bao nhiêu?

Nhóm tác giả thiết lập ngưỡng phân loại học máy là 0.3. Nếu điểm tin cậy (confidence score) của câu lệnh sau khi Dialogflow xử lý thấp hơn mức 0.3 này, hệ thống sẽ kích hoạt Fallback Intent (hoặc không kích hoạt Intent nào nếu chưa định nghĩa Fallback Intent).

5. Lỗi nhận dạng NLU phổ biến nhất mà hệ thống gặp phải là gì và nguyên nhân do đâu?

Hệ thống rất nhạy cảm với các biến thể cấu trúc câu do thiếu dữ liệu huấn luyện đa dạng. Một lỗi điển hình được ghi nhận là việc nhận diện sai khi câu lệnh của người dùng thiếu giới từ "at" trước mốc thời gian (như được thể hiện trong hình phân tích lỗi Figure 4.1 của đồ án).


Kết luận

Khóa luận tốt nghiệp "Design chat-bot for planning task by Dialogflow and Google Calendar" của nhóm sinh viên Trần Minh Đức và Thạnh Quang Hiệp (Trường ĐH Sư phạm Kỹ thuật TP.HCM) đã nghiên cứu và triển khai thành công một trợ lý ảo quản lý lịch trình thông minh. Hệ thống kết hợp hiệu quả năng lực hiểu ngôn ngữ tự nhiên của Dialogflow API V2 với dịch vụ Google Calendar qua máy chủ back-end trung gian. Đề tài đã giải quyết được bài toán lập kế hoạch đa tác vụ mở rộng thời gian so với Google Assistant, đồng thời chỉ ra các hạn chế thực tế về tập dữ liệu huấn luyện và định hướng ứng dụng mạng nơ-ron hồi quy (RNN) cho các nghiên cứu tiếp theo.