BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------VŨ TRƯỜNG GIANG
NGHIÊN CỨU ỨNG DỤNG CHATBOT
TRONG LĨNH VỰC TƯ VẤN DỊCH VỤ NGÂN HÀNG
Chuyên ngành : CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN
PGS.TS. CAO TUẤN DŨNG
Hà Nội – Năm 2019
LỜI CAM ĐOAN
Tôi – Vũ Trường Giang – xin cam đoan
Luận văn tốt nghiệp (LVTN) Thạc sĩ này là cơng trình nghiên cứu của bản
thân tơi dưới sự hướng dẫn của PGS.TS Cao Tuấn Dũng.
Các kết quả nêu trong Luận văn tốt nghiệp là trung thực, không phải là sao
chép tồn văn của bất kỳ cơng trình nào khác.
Hà Nội, ngày
tháng
năm 2019
Tác giả LVThS
Vũ Trường Giang
2
LỜI CẢM ƠN
Đầu tiên, tôi xin được gửi lời cảm ơn sâu sắc nhất tới Thầy giáo – Phó Giáo sư,
Tiến sĩ Cao Tuấn Dũng – Phó Viện trưởng Viện Công nghệ thông tin và Truyền
thông, Trường Đại học Bách Khoa Hà Nội. Thầy đã tận tình hướng dẫn và cho tơi
những lời khun q báu trong q trình thực hiện luận văn này.
Tiếp theo, tôi xin chân thành cảm ơn các thầy cô trong Viện Công nghệ thông
tin và truyền thông, Viện đào tạo sau đại học, Trường Đại học Bách Khoa Hà Nội
đã tạo điều kiện cho tôi trong quá trình học tập và nghiên cứu tại trường.
Cuối cùng, tơi xin bày tỏ lịng cảm ơn tới những người thân trong gia đình, bạn
bè đã động viên và giúp đỡ để tơi hồn thành bản luận văn này.
Hà Nội, ngày
tháng năm 2019
Tác giả LVThS
Vũ Trường Giang
3
MỤC LỤC
LỜI CAM ĐOAN ...................................................................................................... 2
LỜI CẢM ƠN ............................................................................................................ 3
MỤC LỤC .................................................................................................................. 4
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ................................................... 6
DANH MỤC CÁC BẢNG ........................................................................................ 7
DANH MỤC HÌNH VẼ ............................................................................................ 8
1. Đặt vấn đề ..................................................................................................... 10
2. Phương pháp đề xuất ................................................................................... 13
3. Mục tiêu của nghiên cứu ............................................................................. 15
4. Bố cục luận văn ............................................................................................ 15
CHƯƠNG I: KIẾN THỨC TỔNG QUAN ........................................................... 17
1.1 Tổng quan về Chatbot .................................................................................. 17
1.1.1 Giới thiệu về chatbot ............................................................................... 17
1.1.2 Sự phát triển của chatbot ........................................................................ 18
1.1.3 Phân loại chatbot ..................................................................................... 20
1.1.4 Cấu trúc của một chương trình chatbot ................................................... 23
1.1.5 Các tính năng cơ bản của chatbot ............................................................ 25
1.2 Các kỹ thuật ứng dụng trong chatbot ......................................................... 28
1.2.1 Xử lý ngôn ngữ tự nhiên (NLP/NLU) ..................................................... 28
1.2.2 Sinh ngôn ngữ tự nhiên (NLG)................................................................ 38
1.2.3 Các kỹ thuật học máy (Machine learning) .............................................. 40
1.2.4 Mạng nơ ron nhân tạo (Neural network) ................................................. 42
1.3 Các dịch vụ tài chính, ngân hàng ................................................................ 45
1.3.1 Tổng quan dịch vụ tài chính, ngân hàng ................................................. 45
1.3.2 Marketing trong lĩnh vực tài chính ngân hàng ........................................ 46
1.3.3 Ứng dụng cơng nghệ trong lĩnh vực dịch vụ công nghệ ......................... 47
1.4 Một số công việc liên quan đến đề tài ......................................................... 48
CHƯƠNG II: XÂY DỰNG CHATBOT TƯ VẤN DỊCH VỤ NGÂN HÀNG
THEO TIẾP CẬN HỌC MÁY............................................................................... 50
2.1 Mô tả bài toán ............................................................................................... 50
2.2 Mơ hình hệ thớng .......................................................................................... 51
4
2.2.1 Chuẩn bị dữ liệu ...................................................................................... 52
2.2.2 Tiền xử lý dữ liệu .................................................................................... 54
2.2.3 Trích xuất đặc trưng ................................................................................ 55
2.2.4 Huấn luyện mơ hình ................................................................................ 57
2.2.5 Quản lý hội thoại ..................................................................................... 58
CHƯƠNG III: KẾT QUẢ VÀ THỰC NGHIỆM ................................................ 60
3.1 Công nghệ và nền tảng sử dụng ................................................................... 60
3.1.1 Ngôn ngữ lập trình ................................................................................... 60
3.1.2 Thư viện và mơi trường sử dụng ............................................................. 60
3.1.3 Độ đo của mơ hình .................................................................................. 61
3.2 Các tiêu chí đánh giá .................................................................................... 62
3.3 Cài đặt và kết quả thử nghiệm .................................................................... 62
3.3.1 Xây dựng dữ liệu ..................................................................................... 62
3.3.2 Cài đặt thử nghiệm trích chọn đặc trưng ................................................. 66
3.3.3 Cài đặt và thử nghiệm huấn luyện mơ hình ............................................. 68
3.3.4 Ảo hóa quản lý hội thoại ......................................................................... 74
3.3.5 Tích hợp lên mơi trường website của ngân hàng .................................... 76
3.4 Nhận xét chung.............................................................................................. 79
KẾT LUẬN .............................................................................................................. 81
1. Tổng kết......................................................................................................... 81
2. Hướng phát triển .......................................................................................... 82
TÀI LIỆU THAM KHẢO ...................................................................................... 83
5
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt
Nghĩa tiếng Anh
Nghĩa tiếng Việt
NLP
Natural Language Process
Xử lý ngôn ngữ tự nhiên
NLU
Natural language understanding
Hiểu ngôn ngữ tự nhiên
NLG
Natural language generation
Sinh ngôn ngữ tự nhiên
FSM
Finite state machine
Máy trạng thái hữu hạn
SVM
Support vector machine
Véc tơ máy hỗ trợ
AI
Artifficial Inteligence
Trí truệ nhân tạo
ML
Machine Learning
Máy học
IoT
Internet of Things
Internet vạn vật
TF - IDF
Term frequency - Inverse
document frequency
Tần suất- Tần suất đảo nghịch
BoW
Bag of Word
Nhóm từ
LSTM
Long short term memory
Bộ nhớ ngắn dài
từ
6
DANH MỤC CÁC BẢNG
Bảng 1. Mô tả cải tiến kỹ thuật được sử dụng trong các thế hệ chatbot .................. 20
Bảng 2. Frame chatbot hỏi thông tin khách hàng truy vấn dịch vụ mở sổ tiết kiệm 34
Bảng 3. Ví dụ đoạn hội thoại hỏi về thông tin dịch vụ thẻ ........................................ 53
Bảng 4. Kết quả tính tốn thủ cơng giá trị TF-IDF .................................................. 67
Bảng 5. Kết quả tính tốn giá trị TF-IDF từ hàm được cài đặt ............................... 67
Bảng 6. Thử độ đo theo mơ hình phân lớp với các bộ dữ liệu riêng biệt ................. 71
Bảng 7. Thời gian thử nghiệm mơ hình ..................................................................... 73
Bảng 8. Tỷ lệ trả lời đúng của mơ hình sau khi huấn luyện ..................................... 73
Bảng 9. Một đoạn hội thoại thử nghiệm mô hình sau huấn luyện ............................ 74
7
DANH MỤC HÌNH VẼ
Hình 1. Các mốc thời gian phát triển của chatbot .................................................... 18
Hình 2.Mơ tả phép thử Turing .................................................................................. 18
Hình 3. Biếu đồ của 4 loại chatbot. .......................................................................... 21
Hình 4. Cấu trúc một chương trình chatbot cơ bản .................................................. 24
Hình 5. Các dịch vụ đáp ứng yêu cầu người dùng .................................................... 25
Hình 6. Các ngân hàng trong nước nổi bật hiện nay................................................ 45
Hình 7. Gán nhãn từ theo mơ hình B-I-O trong trích xuất thơng tin ........................ 30
Hình 8. Mơ tả quản lý hội thoại theo mơ hình máy trạng thái hữu hạn FSA ........... 33
Hình 9. Phương pháp Top-Down .............................................................................. 37
Hình 10. Nhiệm vụ và kiến trúc Pipeline của NLG ................................................... 39
Hình 11. Kiến trúc hệ thống phân lớp intent theo phương pháp học có giám sát .... 42
Hình 12. Mơ tả neural đơn ........................................................................................ 42
Hình 13. Mơ tả Neural network ................................................................................ 43
Hình 14. Mơ hình thiết kế tổng quan hệ thống chatbot............................................. 52
Hình 15. Tổ chức dữ liệu intents theo định dạng markdown .................................... 54
Hình 16. Tổ chức dữ liệu theo định dạng json .......................................................... 54
Hình 17. Những từ đặc trưng sẽ được nhóm vào một nhóm và đánh trọng số. ........ 56
Hình 18. Mơ hình BoW được sử dụng trong NLP..................................................... 56
Hình 19. 2-Class SVM ............................................................................................... 57
Hình 20.. Multi-Class SVM ....................................................................................... 57
Hình 21. LSTM trong luồng xử lý chatbot ................................................................ 58
Hình 22. Kiến trúc cơ bản của mơ hình hóa đoạn hội thoại..................................... 59
Hình 23. Học tăng cường của một hệ thống quản lý hội thoại ................................. 59
Hình 24. Cài đặt thư viện cần thiết ........................................................................... 68
Hình 25. Kết quả ước lượng độ chính xác tập dữ liệu huấn luyện phân loại ý định 70
Hình 26. Ma trận nhầm lẫn, khơng chuẩn hóa ......................................................... 71
Hình 27. Biểu đồ tương quan loss value và accuracy............................................... 72
8
Hình 29. Build và start server chatbot ...................................................................... 77
Hình 30. Deploy ứng dụng client .............................................................................. 77
Hình 31. Cửa sổ chatbot box..................................................................................... 78
Hình 32. Script sử dụng tích hợp lên mơi trường website của ngân hàng ............... 78
Hình 33. Demo chatbot trên môi trường web ........................................................... 79
9
MỞ ĐẦU
1. Đặt vấn đề
Trong giai đoạn cạnh tranh hiện nay, ngành công nghệ thông tin đang là một
trong những lĩnh vực chủ chốt, quan trọng trong chiến lược phát triển của một đất
nước. Thành quả của nó mang lại cho nền kinh tế đã được chứng minh trong khoảng
10 năm trở lại đây. Đến năm 2019, sự phát triển của công nghệ thông tin đã được xác
định đây là một giai đoạn mới và giới công nghệ cũng như các phương tiên thông tin
đại chúng đã đặt tên cho nó là thời đại cơng nghiệp 4.0. Cùng với sự phát triển của
các lĩnh vực thương mại điện tử, các công nghệ ứng dụng dữ liệu đa phương tiện đang
ngày càng phổ biến, các loại hình như âm thanh, hình ảnh ngày càng trở thành cơng
cụ truyền thơng, giải trí cũng như làm việc chủ yếu trên môi trường mạng, hoặc nội
bộ hiện nay. Các thiết bị giải trí, thiết bị thơng minh ngày nay ngồi việc đáp ứng
được mục đích là liên lạc, trao đổi thơng tin thì nó cũng được phát triển tích hợp nhằm
giải quyết mục đích khai thác, làm giàu các loại dữ liệu đa phương tiện một tốc độ rất
nhanh, các dữ liệu này là những nguồn dữ liệu khổng lồ đã và đang ngày phong phú
và phức tạp.
Theo thống kế của các chuyên gia thì hiện nay các nguồn dữ liệu này chiếm
từ 80-90% là dữ liệu khơng có cấu trúc và khối lượng dữ liệu này ngày càng tăng lên
một cách nhanh chóng và đáng kể. Vậy để các dữ liệu này có thể được tận dụng, sử
dụng có hiệu quả trong những mục đích khác nhau và việc ứng dụng của nó cụ thể ở
những đâu, hoàn cảnh nào là những bài tốn khơng hề đơn giản, chủ đề này ln là
những vấn đề mà các nhà công nghệ luôn luôn đặt ra và nghiên cứu hướng, giải pháp
ngày càng tốt hơn, hiệu quả hơn trong việc xử lý những dữ liệu này.
Một trong những hướng đi mà các hãng công nghệ lớn đang hướng tới trong
việc ứng dụng, sử dụng những dữ liệu khổng lồ này một cách có hiệu quả đó là ứng
dụng vào trí tuệ nhân tạo (Artificial Intelligent, gọi tắt là AI) và các hệ thống học máy
(Machine Learning, gọi tắt là ML). Nói đến trí tuệ nhân tạo hay học máy, chúng ta có
thể nghĩ ngay đến các phần mềm ứng dụng trí tuệ nhân tạo đang rất đình đám hiện
nay đó là các hệ thống trả lời tự động, trợ lý ảo, nhận diện khuôn mặt ứng dụng trên
10
các thế hệ điện thoại thông minh, trên các mạng xã hội (facebook, twitter…), và đặc
biệt là sự kiện nổi tiếng gần đây khi mà một hệ thống học máy đã chiến thắng được
trí tuệ con người ở một khía cạnh nào đó, đó là Alphago, một hệ thống học sâu đã
chiến thắng kiện tướng cờ vây người Hàn Quốc Lee Sedol thông qua các cơ chế tự
học.
Từ những ứng dụng thiết thực và hướng đi rất mới của công nghệ trí tuệ nhân
tạo, học máy thì hãng cơng nghệ lớn hoạt động trong lĩnh vực này đã và đang đầu tư
phát triển công nghệ AI và ML dựa trên những dữ liệu khổng lồ được cập nhật hàng
giây từ người dùng. Sản phẩm của AI và ML như nhận diện khn mặt, các hệ dự
đốn, chatbot, hệ thống trả lời tự động (question-answering).
Vậy để ứng dụng công nghệ để xử lý các khối dữ liệu phi cấu trúc trên thì các
kỹ thuật có thể xử lý dữ liệu phi cấu trúc văn bản cần được phát triển. Trong luận văn
này, tác giá sẽ tập trung nghiên cứu các kỹ thuật có thể xử lý văn bản bằng cách phát
triển một chatbot và ứng dụng chatbot trong bối cảnh giao tiếp giữa hệ thống tư vấn
ngân hàng và khách hàng sử dụng dịch vụ của ngân hàng. Chatbot là một tác nhân
đàm thoại có thể tương tác với con người một cách tuần tự bằng ngôn ngữ tự nhiên.
Mục tiêu chính của luận văn tốt nghiệp này là xây dựng một chatbot để trả lời các câu
hỏi phức tạp, thường địi hỏi câu trả lời thậm chí phức tạp hơn trong một miền được
xác định rõ. Trọng tâm là chỉ trả lời các câu hỏi mà câu trả lời chất lượng đưa ra.
Có thể dễ dàng nhận thấy chatbot hiện nay đã xuất hiện trên nhiều hệ thống đa
phương tiên khác nhau. Tuy nhiên, một trong những hoạt động dịch vụ hiện nay đang
vẫn cịn bỏ ngỏ đó là ứng dụng chatbot trong hoạt động tư vấn dịch vụ tài chính ngân
hàng, các hoạt động của các tổ chức tài chính như chứng khốn, tín dụng, hiện chưa
có một nghiên cứu ứng dụng nào cụ thể đối với lĩnh vực này. Những năm gần đây số
lượng khách hàng sử dụng các dịch vụ tài chính tăng từ các ngân hàng, tổ chức tín
dụng lên với con số vơ cùng lớn, ứng dụng chatbot trong giao tiếp với khách hàng sẽ
giúp cho hoạt động kinh doanh của các tổ chức tài chính dịch vụ hiệu quả hơn rất
nhiều. Đặc biệt, các hoạt động về tư vấn ngân hàng trong các hoạt động cho vay, tín
dụng là những hoạt động mang tính chất lặp đi lặp lại khá nhiều, trong khi hiện nay
11
các tổ chức tín dụng ngân hàng vẫn đang phải duy trì một số lượng lớn nhân viên, bộ
phận để thực hiện các nghiệp vu tư vấn cho vay đối với khách hàng. Những nghiệp
vụ này hồn tồn có thể thực hiện nghiên cứu tự động hóa, để có thể giải đáp, tư vấn
cho khách hàng những nội dung cơ bản của các sản phẩm tín dụng hay những chương
trình ưu đãi dành cho cá nhân và khách hàng doanh nghiệp.
Trong một vài năm gần đây, các công ty tư vấn đã ứng dụng nhiều tiến bộ và
phát triển của lĩnh vực học máy phục vụ hỗ trợ khách hàng trong quá trình ra quyết
định. Đặc biệt trong lĩnh vực Marketing và IoT, đây là các lĩnh vực có nhiều thách
thức với khối lượng dữ liệu lớn, dữ liệu không cấu trúc. Các chuyển gia cho rằng có
đến 80-90% dữ liệu trong các tổ chức là khơng có có cấu trúc, và số lượng này hiện
nay vẫn cho thấy tín hiệu tăng lên rất nhiều. Vì vậy, đây sẽ là một thử thách về mặt
kỹ thuật đối với những dữ liệu phi cấu trúc cần được phát triển và cải thiện nhiều.
Trong nghiên cứu này, tác giả xây dựng một chatbot để trả lời những câu hỏi
phức tạp và cả những câu trả lời tương ứng cũng phức tạp hơn, cụ thể là trên lĩnh vực
tài chính. Tại nghiên cứu này tác giả chỉ tập trung vào việc trả lời các câu hỏi để làm
sao có được một câu trả lời với chất lượng cao nhất. Tất nhiên trong đó có những câu
hỏi khơng nằm trong phạm vi của chatbot sẽ được gửi thẳng trực tiếp đến con người
để xử lý. Ví dụ hệ thống có thể rất hữu dụng cho các công ty khi họ nhận được các
câu hỏi tương đối phức tạp thì hệ thống của họ sẽ phải thực hiện đưa ra những câu trả
lời với chất lượng cao nhất sát nhất với mong muốn giải đáp của khách hàng, trong
khi đó cũng phải làm sao để giảm thiểu được tối đa sự can thiệp của con người trong
quá trình thực hiện dịch vụ hỏi đáp này, điều này cũng sẽ đồng nghĩa với việc giảm
chi phí cho tổ chức đang ứng dụng chatbot này. Một chatbot có thể thay thế cho các
bộ phận như helpdesk, trả lời tin nhắn tự động, trả lời các phản hồi trên mạng xã hội
hoặc tư vấn về các sản phẩm dịch vụ cung cấp. Việc xử lý để xây dựng nên một
chatbot trong nghiên cứu này tập trung vào hai kỹ thuật quan trọng và chủ yếu đó là
xử lý ngôn ngữ tự nhiên và đưa ra các phản hồi đến người dùng với độ tin cậy và
chính xác cao.
12
2. Phương pháp đề xuất
Bài toán về các hệ thống hỏi đáp nói chung hay chatbot nói riêng đã có nhiều
cách giải quyết. Trên thực tế, khi chúng ta đứng trước bài tốn xây dựng một chatbot
cho riêng mình hoặc cho một tổ chức thì, câu hỏi ln đặt ra rằng nên bắt đầu từ đâu,
lựa chọn phương pháp nào, kỹ thuật nào để xây dựng chatbot, việc lựa chọn này sẽ
quyết định việc xây dựng chatbot thành công hay khơng.
Trải qua q trình phát triển của chatbot trong một thời gian dài như vậy, có
nhiều loại chatbot được áp dụng những kỹ thuật khác nhau, chúng ta có thể tổng qt
lại gồm có 2 phương pháp tiếp cận chính để có thể xây dựng lên một hệ thống chatbot
đó là:
- Máy trạng thái hữu hạn (Finite state machines - FSM)
- Học máy (Machine learning - ML)
Đối với phương pháp máy hữu hạn (FSM) [1] ý tưởng chung là dựa trên kỹ
thuật khớp mẫu (pattern matching). Các FSM này có thể thực hiện những kỹ thuật
khớp mẫu từ đơn giản cho đến phức tạp cho các câu hỏi (được coi là một chuỗi văn
bản đến) từ người dùng bằng những mẫu hội thoại (patterns) đã được định nghĩa
trước. Khớp mẫu còn được gọi là kỹ thuật tự động hữu hạn và kỹ thuật này khơng
được xây dựng với mục đích phản hồi lại người dùng những câu hỏi ngoài phạm vi
hoặc rộng hơn những nội dung mà tập mẫu của nó được định nghĩa. Đây cũng là kỹ
thuật khá cổ điển, độ phức tạp khơng khó và nó có thể dễ dàng để xây dựng với chi
phí thấp, tuy nhiên phương pháp này không hiệu quả đối với miền dữ liệu phạm vi
rộng hoặc những khả năng phản hồi linh hoạt, tự nhiên.
Phương pháp học máy được ứng dụng với mục đích nhằm xây dựng một
chatbot với tính đáp ứng cao tới người dùng, khả năng bao quát ở một miền rộng hơn
những gì mà nó đang có, những câu trả lời, phản hồi khơng cứng nhắc như những gì
mà nó được sắp đặt, định nghĩa trước và việc áp dụng phương pháp. Với những kỹ
thuật phát triển hiện nay và với những vấn đề đã được đặt ra, thì việc tiếp cận theo
phương pháp học máy là một cách tiếp cận khả thi nhất để thực hiện.
13
Bản chất của phương pháp học máy sử dụng các mơ hình mơ phỏng mạng nơ
ron (Neural network) để thực hiện cho mục đích xây dựng chatbot. Bằng cách này,
các chatbot sẽ có khả năng phản ứng tốt, hiệu quả hơn trong việc quản lý hội thoại
với con người hơn so với phương pháp máy hữu hạn. Bên cạnh đó, ứng dụng học
máy ở một kỹ thuật phức tạp hơn là học sâu (deep learning) sẽ còn giúp cho bot có
thể kiểm sốt được đa miền (multi-domain) hơn trên phương diện đa lĩnh (multiservice) vực hơn.
Lựa chọn phương pháp tiếp cận nào để xây dựng chatbot cũng chính là việc
chúng ta xác định lựa chọn kiến trúc nào cho chatbot của mình. Điều này phụ thuộc
vào loại chatbot mà chúng ta định phát triển hay lĩnh vực nào mà chúng ta muốn áp
dụng. Đối với lĩnh vực như tài chính, ngân hàng đây cũng có thể được coi là một miền
ứng dụng đóng. Tuy nhiên, lĩnh vực lại có nhiều đối tượng cần phải thực hiện xử lý
để định hướng được đoạn hội thoại giữa chatbot và người dùng. Việc xác định ý định
của người dùng hết sức quan trọng để biết được chatbot cần phải trao đổi những gì
với khách hàng, mặt khác việc này cũng cần phải được ứng dụng linh hoạt hơn với
yêu cầu người dùng để tạo tính thân thiện, thu hút khách hàng. Chatbot ứng dụng có
thể là yếu tố giúp cho khách hàng có thiện cảm với dịch vụ mà ngân hàng đang cung
cấp hơn, đáp ứng nhanh chóng hơn, chính xác hơn. Yếu tố này cũng ảnh hưởng trực
tiếp đến việc kinh doanh của ngân hàng. Do đó, lựa chọn phương pháp tiếp cận để
xây dựng chatbot là học máy sẽ giúp cho việc giải quyết bài tốn dễ dàng hơn.
Hiện nay có nhiều mơ hình huấn luyện được sử dụng trong học máy có thể sử
dụng như Long Short Term Memory (LSTM), RNN, Support Vector Machine
(SVM)… đề tài sẽ lựa chọn SVM kết hợp với LSTM để thực hiện nghiên cứu và thử
nghiệm xây dựng chatbot trên miền đóng phục vụ tư vấn các dịch vụ mà ngân hàng
cung cấp.
14
3. Mục tiêu của nghiên cứu
Tác giả lựa chọn đề tài nghiên cứu với mục tiêu tổng quát là nghiên cứu về
cấu trúc của một chatbot và ứng dụng chatbot cho lĩnh vực tài chính ngân hàng, các
cơng việc chính cần cần thực hiện sẽ tập trung vào việc:
- Nghiên cứu các công nghệ tiên tiến được ứng dụng và các kỹ thuật xây dựng
chatbot như xử lý ngôn ngữ tự nhiên, xác định ý định người dùng, trích xuất thông
tin, quản lý hội thoại và các kỹ thuật xử lý học máy trong ứng dụng chatbot.
- Đưa ra được bài tốn thực nghiệm, ứng dụng một số mơ hình ứng dụng
chatbot AI (hay các hệ thống question-answering) cho bài toán dự đoán, hỏi đáp trong
một lĩnh vực cụ thể. Từ kết quả nghiên cứu này đưa ra những kết luận, đánh giá tính
khả thi khi áp dụng rộng rãi mơ hình hỏi đáp trong lĩnh vực cụ thể là tư vấn dịch vụ
của ngân hàng. Bên cạnh mục tiêu tổng quát, luận văn cũng xác định đối tượng chính
của nghiên cứu là xây dựng lên một chatbot với việc trả lời các câu hỏi phức tạp, và
cũng đồng thời yêu cầu cung cấp lại người dùng những câu trả lời phức tạp hơn, đa
dạng hơn với miền dữ liệu về tài chính. Tác giả chỉ tập trung vào việc chatbot sử dụng
kỹ thuật xử lý ngôn ngữ tự nhiên và học máy để truy vấn câu trả lời từ mơ hình dữ
liệu đã được huấn luyện từ bộ dữ liệu câu hỏi-đáp trên một miền đóng cụ thể.
Vậy tóm lại, các mục tiêu cụ thể cần đạt được của nghiên cứu:
- Ứng dụng được các phương pháp học máy để đưa ra được phương án triển
khai một chatbot tư vấn dịch vụ ngân hàng
- Đánh giá được tính hiệu quả áp dụng và khả năng triển khai chatbot trong
thực tế.
- Rút ra được những kết luận, đề xuất phát triển ứng dụng.
4. Bố cục luận văn
Bố cục của luận văn sẽ gồm những phần chính sau:
Mở đầu: Đặt vấn đề và đưa ra hướng nghiên cứu bài toán
Chương 1: Kiến thức tổng quan: Giới thiệu các kiến thức tổng quan về
chatbot, các thành phần của một hệ thống chatbot.
15
Chương 2: Xây dựng Chatbot tư vấn dịch vụ ngân hàng : Thiết kế để xuất,
mô tả tổng thể hệ thống thử nghiệm gồm các bước thực hiện.
Chương 3: Kết quả và thực nghiệm: Đề xuất bài toán, ứng dụng framework
mã nguồn mở để xây dựng thử nghiệm bài toán. Đưa ra đánh giá thực tế về hệ
thống, đề xuất giải pháp cải tiến.
Kết luận: Đưa ra kết luận những kết quả đạt được trong luận văn và định
hướng phát triển cho bài toán rộng rãi trong thực tế.
16
CHƯƠNG I: KIẾN THỨC TỔNG QUAN
1.1 Tổng quan về Chatbot
1.1.1 Giới thiệu về chatbot
Chatbot được biết đến như một hệ thống hỗ trợ giao tiếp và nó có thể tương
tác với con người theo dạng hỏi-đáp (question-answering) sử dụng ngôn ngữ tự nhiên.
Chatbot trước đây chỉ sử dụng hệ thống hội thoại dựa trên ngôn ngữ tự nhiên với nội
dung chỉ trong một phạm vi nhất định với những câu từ, chủ đề đã được định sẵn.
Tuy nhiên, chatbot hiện nay đang phát triển rộng rãi, ứng dụng trên nhiều lĩnh vực
khác nhau và cho nhiều mục đích khác nhau. Chatbots ngày nay đã cung cấp khả
năng trợ giúp theo phương thức logic học, thậm chí cịn có khả năng tư duy tự nhiên
dựa trên cơng nghệ học máy, trí tuệ nhân tạo, nó được sử dụng hiệu quả cho các lĩnh
vực dịch vụ khách hàng hoặc cho các hệ thống giải trí.
Mặc dù chatbots đã và đang được nghiên cứu khá rộng, tuy nhiên chúng ta có
thể nhận thấy thành quả là các hệ thống hiện tại đối với một số lĩnh vực sâu đã gần
tiệm cận với tri thức của con người hơn hoặc đã cho những phản hồi gần như là chính
xác. Tồn bộ các xử lý để đưa ra các phản hồi từ trong việc xử lý ngôn ngữ tự nhiên
đều được xử lý tuyệt vời từ các hệ thống máy tính. Thiết kế một hệ thống máy tính
để có thể hiểu và đưa ra ngơn ngữ của con người là một lĩnh vực sâu của học máy mà
chúng ta hay nghe đến trong thời gian gần đây là Trí tuệ nhân tạo (AI), đặc biệt là xử
lý ngôn ngữ tự nhiên.
Chatbots khá phổ biến ở thời điểm hiện tại. Có rất nhiều tạp chí chun sâu về
chatbot được phổ biến trên môi trường internet như Chatbot Journal và cộng đồng
như Chatbot News . Sự phổ biến này đã mang đến những bước đột phá cho các công
ty lớn như Facebook, Microsoft, Google và IBM trong thế giới trí tuệ nhân tạo. Khơng
những thế một điểm nữa khiến cho chatbot trở nên phổ biến đó là nó dễ dàng với mọi
người để có thể tự tạo một hệ chatbot riêng mà không cần bất cứ một kỹ năng lập
trình nào. Hiện nay, có nhiều websites và dịch vụ mà ở đó mọi người đều có thể sử
dụng để tạo một ứng dụng bot riêng cho mình, phổ biến có thể kể đến như API.ai,
Chatfuel, Kit Bot và Facebook wit.ai [1].
17
1.1.2 Sự phát triển của chatbot
Chatbot được phát triển từ khi hình thành những ý tưởng đầu tiên cho đến nay
(thời điểm 2019) cũng đã gần 70 năm, cũng có thể nói một chặng đường lịch sử khá
dài cho một lĩnh vực cơng nghệ.
Hình 1. Các mốc thời gian phát triển của chatbot
Từ các phép thử Turing năm 1950:
Về cơ bản phép thử được xuất phát từ một ý tưởng của một người có tên Alan
Turing. Turing là một loạt các phép thử dựa trên việc phân tích câu trả lời của một
máy tính. Các phép thử Touring được thực hiện để xác định xem một chương trình
máy tính có thể phân biệt được máy tính với con người trong một cuộc trị chuyện chỉ
có văn bản thuần túy hay khơng?
Hình 2.Mơ tả phép thử Turing
Bằng cách gõ câu hỏi cho cả hai đối tượng C và B thử nghiệm, người thẩm
vấn A sẽ cố gắng xác định đối tượng nào là máy tính và đối tượng nào là con người.
Máy tính sẽ vượt qua các phép thử Turing nếu người thẩm vấn khơng thể nói sự khác
biệt giữa chủ thể con người và máy tính.
18
Cho đến Sophia AI năm 2016:
Sophia AI thực chất đây là một robot có khả năng chuyển động phần khn
mặt và có khả năng biểu cảm những trạng thái cơ bản gần giống với con người. Đặc
biệt robot này được tích hợp trí tuệ nhân tạo cho phép giao tiếp theo dạng một chatbot
giọng nói với con người theo những đoạn hội thoại chuyên sâu rất đặc biệt. Các đoạn
hội thoại hỏi – đáp hồn tồn có tính liên hệ một cách logic với nhau ngay cả khi
những đoạn hội thoại đã khá xa với nội dung trao đổi lúc đầu.
Tiếp theo đó là sự phát triển của chatbot được gắn với những hệ thống được
đặt tên theo từng bước tiến của nó:
Chatbot
BASEBALL
Cải tiến
Kỹ tḥt chính
Hệ thống QA đầu tiên
Cở sở dữ liệu tri
Kỹ thuật NLP
None
thức và khớp mẫu
ELIZA
Hệ thống chatbot đầu
Khớp mẫu
Khớp keyword
Khớp mẫu
Khớp keyword
Tri thức được ghi lại thủ
Dựa trên cơ sở sở
Không
công
dữ liệu tri thức và
tiên
PARRY
Một số thủ thuật được
thêm vào để hệ thống
gần với con người hơn
LUNAR
khớp mẫu
SHRDLU
Lượng đầu vào lớn linh
Khớp mẫu
hoạt
PEGASUS
Phân tích và
khớp mẫu
Nhận dạng giọng nói
Nhận dạng giọng
Khớp keyword
nói và khớp mẫu
ALICE
Khớp mẫu phức tạp hơn
Khớp mẫu
Khớp keyword
Chatbot đầu tiên sử
Máy học: Mô hình
Mã thơng báo,
dụng học máy
Markov
loại bỏ từ khóa
sử dụng XML
MegaHAL
19
và khớp
keyword
SmarterChild
Chatbot phân tán đầu
Khớp mẫu
Khớp keyword
tiên qua nền tảng tin
nhắn
Sophia AI
Được tích hợp hồn tồn Dựa trên khả năng
Dựa trên học
trí tuệ nhân tạo.
máy
tự học thơng qua
những đoạn hội
thoại.
Bảng 1. Mô tả cải tiến kỹ thuật được sử dụng trong các thế hệ chatbot
1.1.3 Phân loại chatbot
Trong phần này luận văn sẽ chỉ ra sự khác nhau giữa các loại chatbot và các
tính năng của chúng. Chúng ta sẽ cùng thảo luận loại và tính năng nào của chatbot
thuận tiện cho mảng mà nó được áp dụng, đặc biệt là với những loại câu hỏi mang
tính phức tạo cao và cần những câu trả lời có độ tin cậy cao. Xa hơn nữa chúng ta sẽ
cùng trao đổi các tính năng chat và kỹ thuật để đạt được những mục tiêu này.
Chatbots hiện nay khá đa dạng. Tuy nhiên, về cơ bản hầu hết đều sử dụng việc
phân loại dựa trên phạm vi miền dữ liệu và cơ chế phản hồi giao tiếp giữa chatbot và
chủ thể. Trong hình này, chatbots được tổ chức vào các nhóm dựa trên miền dữ liệu
khác nhau mà chúng vận hành kết hợp việc dựa trên cách mà chúng nhận câu trả lời.
Các chatbots có phạm vi mở (open domain) có thể trả lời các câu hỏi tương tác về
những chủ đề rộng hơn, còn đối với phạm vi giới hạn (closed domain) thì chatbots
chỉ hoạt động trên một chủ đề cụ thể mà các chatbots có kiến thức về phạm vi đó [2].
Tất nhiên là khơng có rào cản cứng nhắc giữa phạm vi mở và phạm vi miền đóng.
Ví dụ: Một chatbot được sử dụng để phản hồi lại các dòng trạng thái được
đăng trên mạng xã hội Twitter là một ví dụ cho phạm vi mở của chatbot, hoặc chatbot
có thể được sử dụng để đặt pizza tại một cửa hàng ăn nào đó chẳng hạn thì đây lại là
một phạm vi hẹp, chỉ mang chủ đề về các loại bánh pizza. Nhưng một chatbot để trả
20
lời toàn bộ các loại câu hỏi liên quan đến lĩnh vực tài chính thì chúng ta có thể hình
dung là loại chatbot này nằm ở đâu đó ở giữa của hai loại hình chatbot này .
Chatbots cũng có thể được phân loại dựa trên cách thức truy xuất thông tin
(retrieval-based) hoặc là dựa trên cơ chế tự sinh câu trả lời (generative-base) [3]:
- Đối với hình thức dựa trên truy xuất thông tin(retrieval-based): Nghĩa là các
câu trả lời được truy vấn từ một tập dữ liệu dataset cơ bản. Xử lý truy xuất có thể đơn
giản bằng cách sử dụng kết hợp kỹ thuật khớp các câu hỏi và câu trả lời dựa trên luật
đã được định sẵn, hoặc nâng cao hơn có thể sử dụng một hoặc một nhóm kỹ thuật học
máy (machine learning). Hệ thống này sẽ ln trả về một câu trả lời sẵn có từ một tập
các câu phản hồi đã được định nghĩa trước.
- Đối với hình thức dựa trên cơ chế tự sinh (generative-based): Kỹ thuật này
được áp dụng trên hình thức khơng có các câu trả lời định trước như truy xuất, hệ
thống sản sinh ra các câu trả lời tương ứng bằng chính khả năng của nó.
Trong hình dưới đây, về lý thuyết kết hợp lại các cách phân loại trên có thể
cho chúng ta 4 loại chatbot:
Miền mở
(open-domain)
Miền đóng
(closed-domain)
Truy xuất
Tự sinh
Loại phản hồi
Hình 3. Biếu đồ của 4 loại chatbot [2].
21
1) Phạm vi miền mở kết hợp với phản hồi dựa trên truy xuất
Các phản hồi dựa trên truy xuất là các phản hồi từ một tập cố định, trong một
phạm vi mở (hay cịn gọi là miền mở) thì những tập cố định này sẽ là ‘Bất kỳ câu hỏi
mà ai có thể cũng nghĩ đến’. Tất nhiên, nó khơng thể hồn thiện bởi lý do, miền dữ
liệu đóng không thể đáp ứng với mọi câu hỏi trên một miền mở, sẽ có những phản
hồi khơng nằm trong những tập đã định sẵn và vì thế loại chatbot này là không khả
thi.
2) Phạm vi miền mở kết hợp với phản hồi dựa trên cơ chế tự sinh
Trên thực tế thì đây chính là một loại kết hợp để cho ra một chatbot lý tưởng.
Như đã biết, chúng ta đều muốn rằng hệ thống có thể tiếp nhận bất kỳ câu hỏi nào và
nhận được câu trả lời hợp lý với mọi hoàn cảnh câu hỏi. Để giải quyết vấn đề này,
các phản hồi dựa trên cơ chế tự sinh này sẽ ứng dụng cơng nghệ trí tuệ nhân tạo tổng
quát (Artificial General Intelligence - AGI) [3]. Điều này có nghĩa rằng chúng ta
mong muốn chatbot là một cỗ máy thơng minh, nó có thể thực thi thành thành cơng
tương tự như trí thơng minh của con người. Đây là một phạm vi nghiên cứu đặc biệt
chuyên sâu và phạm vi thì lại rộng do đó, hiện nay chưa có hang công nghệ, chuyên
gia hay tổ chức nào thực sự nghiên cứu kỹ về loại hình chatbot này.
3) Phạm vi miền đóng với phản hồi dựa trên truy xuất
Trong phạm vi này, chatbot được huấn luyện trong một tập dataset với dạng
text trong một miền nhất định. Những câu hỏi thuộc lĩnh vực của chatbot sẽ được trả
lời bằng một phản hồi từ tập huấn luyện dataset. Chatbot sẽ không có câu trả lời khi
câu hỏi khơng nằm trong miền được huấn luyện hoặc những câu hỏi không lường
trước. Cách mà hầu hết các công ty đối mặt và xử lý với vấn đề này đó là khi có một
câu hỏi chatbot khơng thể trả lời đó là gửi thẳng câu hỏi đó đến trực tiếp con người
xử lý.
4) Phạm vi miền đóng với phản hồi dựa trên cơ chế tự sinh
Với loại phạm vi này, chatbots nên sử dụng kỹ thuật học máy (machine
learning), trí tuệ nhân tạo (AI) để tạo ra những câu trả lời cho các câu hỏi nhận được.
Các câu trả lời được tạo ra giúp chatbot có thể xử lý các câu hỏi có trong tập dữ liệu
22
cơ bản, nhưng bên cạnh đó cũng cho phép hồi đáp lại đối với những câu hỏi mới.
Loại chatbots này cũng có thể xử lý với những loại tương tác nhiều hơn một câu hỏi
và một câu trả lời, chúng có xu hướng đưa ra những câu trả lời gần với ngữ điệu của
con người hơn và có thể có tính cách riêng khi thực hiện các câu trả lời. Nhược điểm
của phạm vi này là việc tạo ra các phản hồi làm tăng lên độ phức tạp của vấn đề đang
trao đổi, các câu trả lời được tạo ra ln mang nhiều lỗi ngữ pháp và những chatbots
này địi hỏi lượng lớn dữ liệu phục vụ cho việc huấn luyện.
Với loại chatbot thứ nhất (Open domain retrieval-based) là không khả thi trong
thực tế và loại thứ 2 thì chưa được xây dựng thành công bởi các hang công nghệ lớn
nào ngay cả là Google hay Microsoft. Bên cạnh đó thì, cả hai hình thức gồm phương
thức dựa trên truy vấn và dựa trên việc tự sinh câu trả lời trên miền giới hạn đã được
ứng dụng nhiều ở thời điểm hiện tại, thơng qua nhiều nghiên cứu thì độ chính xác của
các phản hồi đã được cải thiện rất nhiều và miền cũng đã được mở rộng hơn so với
miền mà nó được định hướng, ngồi ra việc cải thiện về mặt ngữ pháp và độ tin cậy
của các phản hồi cũng đang được tập trung cải thiện. Trong tương lai, khi mà kỹ thuật
tự sinh được cải thiện và tập dataset phủ rộng hơn miền câu hỏi và câu trả lời thì có
thể tạo một chatbot dựa trên kỹ thuật tự sinh này cho mọi lĩnh vực.
Như vậy, từ những yếu tố trên tác giả quyết định lựa chọn theo hướng nghiên
cứu chatbot thực hiện trên phạm vi giới hạn (miền đóng) phục vụ cho phạm vi lĩnh
vực tài chính mà đề tài đã lựa chọn kết hợp với cách thức dựa truy xuất và tự sinh
phản hồi.
1.1.4 Cấu trúc của một chương trình chatbot
Cấu trúc của một chương trình chatbot (ứng dụng cơ chế tự sinh) thơng thường sẽ
có 3 lớp thành phần chính gồm [4]:
23
Hình 4. Cấu trúc một chương trình chatbot cơ bản [4]
Trong đó:
NLP (Natural language processing): Xử lý ngơn ngữ tự nhiên
NLU (Natural language understanding): Hiểu ngôn ngữ tự nhiên
NLG (Natural language generation): Sinh ngôn ngữ tự nhiên
- Lớp giao diện người dùng (presentation layer): Đảm nhiệm nhiệm vụ thu
thập các câu hỏi, truy vấn từ người dùng thông qua các ứng dụng phổ biến hiện nay
như webapp, mobile, ….
- Lớp học máy hay lớp xử lý dữ liệu (data processing layer): Là lớp xử lý dữ
liệu đầu vào, trước đây với những chatbot truyền thống thì lớp này là lớp đảm nhiệm
việc thực hiện phân tích câu hỏi, dữ liệu truy vấn đầu vào vào thực hiện khớp mẫu
với những tập dataset có trong cơ sở dữ liệu. Đối với những hệ chatbot sau này, lớp
xử lý dữ liệu này đảm nhận vai trị quan trọng hơn đó là xử lý ngơn ngữ tự nhiên,
phân tích ý định người dùng, huấn luyện cho chatbot sau… sau đó những dữ liệu
được gửi đến phần lõi ra quyết định để lựa chọn những phản hồi với độ chính xác cao
nhất.
- Lớp quản lý dữ liệu (data management layer): Là lớp lưu trữ dữ liệu các
tập câu trả lời, câu hỏ theo kiểu quản lý hội thoại, nó có nhiệm vụ xác định được hành
24
động (action) tiếp theo dựa vào trạng thái hành động trước đó hay ngữ cảnh hội thoại.
Các ngữ cảnh này phải được đối chiếu trong các kịch bản dựng sẵn (history) đã đào
tạo cho bot. Thành phần này cũng đảm nhiệm việc lấy dữ liệu từ các API khác gọi
trong action.
- Một số thành phần quan trọng khác gồm:
+ Sinh ngôn ngữ tự nhiên để trả về phản hồi cho người dụng (NLG)
+ Message backend là thành phần chịu trách nhiệm trả ra các phản hồi
và hay tiếp nhận những thơng điệp hỏi để gửi vào lớp phân tích dữ liệu.
1.1.5 Các tính năng cơ bản của chatbot
Chatbots có thể có nhiều chức năng khác nhau và một vài chức năng trong đó
đóng vai trị chính quan trọng cho ứng dụng của chúng ta. Chúng ta rất cần hệ thống
bot để nhận được những câu trả lời đúng, đủ với ý định của người dùng. Chúng ta cần
bot để lựa chọn những thông tin mở rộng từ người dùng và chúng ta muốn một hệ
thống bot có thể thực hiện những đoạn hội thoại (chat) thay cho việc nhận một câu
trả lời cho một câu hỏi theo cách đơn thuần.
Theo hướng người dùng, chatbot có thể được ứng dụng tại các lĩnh vực gồm:
Personal
assistant
CHATBOT
Product
avertisment
Search,
infor…
Services
support
Order,
booking
Hình 5. Các dịch vụ đáp ứng yêu cầu người dùng
25