Ứng dụng Chatbot này tập trung hoàn thiệnba nhiệm vụ chính: 1 xây dựng một mô hình Few-shot Learning dựa trên tập dữliệu của mmfashion và công ty Cổ phần Trương Minh Thịnh nhằm tạo ra mộ
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG-HCM
Cán bộ hướng dẫn khoa học: PGS.TS Quản Thành Thơ
Cán bộ chấm nhận xét 1: TS Nguyễn Minh Hải (VNG)
2 Thư ký: TS Phan Trọng Nhân
3 Phản biện 1: TS Nguyễn Minh Hải (VNG)
4 Phản biện 2: TS Bùi Thanh Hùng
5 Ủy viên: PGS.TS Dương Tuấn Anh
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngànhsau khi luận văn đã được sửa chữa (nếu có)
KHOA HỌC VÀ KỸ THUẬT
MÁY TÍNH
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: PHẠM NGUYỄN XUÂN NGUYÊN MSHV: 2170549
Ngày, tháng, năm sinh: 28/08/1999 Nơi sinh: Khánh Hoà
Chuyên ngành: Khoa học Máy tính Mã số: 8480101
I TÊN ĐỀ TÀI:
Xây dựng Hệ thống Chatbot dựa trên Few-shot Learning và Rasa
Build a fashion Chatbot system based on Few-Shot Learning method, Rasa framework
II NHIỆM VỤ VÀ NỘI DUNG:
− Xây dựng hệ thống Chatbot dựa trên mô hình Rasa và giải quyết các tác vụ truy
vấn hình ảnh dựa trên Few-shot Learning
− Xây dựng giải thuật học theo hướng tiếp cận học sâu để giải quyết vấn đề xâm
nhập bất thường vào chủ thể
− Xây dựng một hệ thống phát hiện xâm nhập hoàn chỉnh nhằm phát hiện các xâm
nhập bất thường đi vào chủ thể và thử nghiệm trên một hệ thống thực tế
III NGÀY GIAO NHIỆM VỤ: 20/06/2023
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 23/01/2024
V CÁN BỘ HƯỚNG DẪN: PGS.TS Quản Thành Thơ
Trang 4Lời cảm ơn
Lời đầu tiên, học viên xin được bày tỏ lòng biết ơn sâu sắc đến Ban Giám hiệu nhàtrường, khoa Khoa học và Kỹ thuật Máy tính cùng toàn thể thầy/cô đã tận tình giảngdạy, truyền đạt kiến thức và kinh nghiệm quý báo cho học viên trong suốt quãng thờigian học tập và làm việc tại chương trình Cao học của trường Đại học Bách Khoa -ĐHQG-HCM
Học viên đặc biệt xin được gửi lời cảm ơn sâu sắc đến thầy PGS.TS Quản ThànhThơ, người thầy, người giảng viên hướng dẫn giám sát trực tiếp quá trình thực hiện
đề tài này Nhờ có những chỉ dẫn, góp ý tận tình cùng nhiều kiến thức bổ ích, quý giácủa thầy mà học viên mới có thể hoàn thành tốt được Luận văn tốt nghiệp này.Học viên cũng xin được cảm ơn TS Lê Thanh Vân, TS Nguyễn Tiến Thịnh và TS.Trương Tuấn Anh là những giảng viên phản biện của đề tài trong quá trình Đề cươngluận văn với những góp ý đúng đắn và mang tính định hướng cao cho học viên
Ngoài ra, học viên cũng xin được gửi lời cảm ơn đến Công ty cổ phần Trương MinhThịnh đã tạo điều kiện cho học viên nguồn dữ liệu lớn để huấn luyện mô hình gópphần hoàn thiện luận văn
Cuối cùng, học viên cũng xin gửi lời cảm ơn đến gia đình, người thân, bạn bè,những người đã quan tâm, động viên, giúp đỡ cả về thể chất lẫn tinh thần để học viên
có đủ nghị lực, sức khỏe hoàn thành tốt luận văn tốt nghiệp này
Trang 5Tóm tắt luận văn
Ngày nay, chatbot là một ứng dụng khá phổ biến trong nhiều lĩnh vực, đặc biệt hơn
là trong lĩnh vực thời trang - nơi việc tối ưu hoá trải nghiệm cá nhân của khách hàng
và tối ưu chi phí luôn được xem xét trong từng cửa hàng áo quần, nhất là sau thời điểmdịch COVID-19 xảy ra Vì vậy, trong luận văn tốt nghiệp này, học viên đã đề xuất mộtứng dụng chatbot đạt được hai điều trên dựa trên nền tảng Few-shot Learning, Rasa
và một hệ thống liên kết chúng với nhau Ứng dụng Chatbot này tập trung hoàn thiện
ba nhiệm vụ chính: (1) xây dựng một mô hình Few-shot Learning dựa trên tập dữliệu của mmfashion và công ty Cổ phần Trương Minh Thịnh nhằm tạo ra một bộ tríchxuất đặc trưng tổng quát nhất với kết quả độ chính xác Top-5@Recall đạt 56%, (2)xây dựng một mô hình Rasa hoàn thành các nhiệm vụ phân tích các thực thể (entity)
và ý định (intent) với độ chính xác Accuracy 99% nhằm hiểu được yêu cầu của kháchhàng một cách chính xác nhất, (3) xây dựng một hệ thống liên kết các mô hình cùngcác công cụ hỗ trợ để tăng thời gian trả lời nhanh nhất có thể với độ trễ (latency) 3giây Trong tương lai, ứng dụng chatbot có thể dễ dàng tích hợp vào các ứng dụng tinnhắn Messenger, Telegram, Zalo để tuỳ cửa hàng có thể cải thiện việc tương tác vớikhách hàng tốt hơn nữa
Trang 6Abstract of Dissertation
Nowadays, chatbots are widely used in various fields, especially in the fashion dustry, where optimizing customer experiences and cost efficiency are crucial consid-erations for each clothing store, particularly in the post-COVID-19 era Therefore, inthis thesis, I propose a chatbot application that achieves these two objectives based
in-on the Few-shot Learning platform, Rasa, and a system linking them together ThisChatbot application focuses on completing three main tasks: (1) building a Few-shotLearning model based on mmfashion and Truong Minh Thinh Joint Stock Company’sdataset to create the most general feature extractor with a Top-5@Recall accuracy of56%, (2) constructing a Rasa model to perform entity and intent analysis tasks with
an accuracy of 99% to understand customer requirements accurately, (3) developing
a system linking the models with supporting tools to maximize response time with alatency of 3 seconds In the future, the chatbot application can be easily integratedinto messaging applications such as Messenger, Telegram, and Zalo, allowing eachstore to enhance customer interactions further
Trang 7Lời cam đoan
Học viên - Phạm Nguyễn Xuân Nguyên - xin cam đoan đề tài luận văn tốt nghiệp:
”XÂY DỰNG HỆ THỐNG CHATBOT VỀ THỜI TRANG DỰA TRÊN FEW-SHOTLEARNING VÀ RASA” là công trình nghiên cứu của bản thân Những phần tài liệuđược sử dụng trong luận văn đã được nêu rõ trong phần Tài liệu tham khảo Các sốliệu, kết quả trình bày trong luận văn là hoàn toàn trung thực, nếu có sai sót tôi xinchịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra
Trang 8MỤC LỤC
1.1 Đặt vấn đề 1
1.2 Mục tiêu đề tài 4
1.3 Giới hạn của đề tài 5
1.4 Đóng góp của luận văn 7
1.5 Tóm tắt luận văn 8
2 Cơ sở lý thuyết 10 2.1 Định nghĩa về Chatbot 10
2.2 Kiến thức về RASA 13
2.2.1 Giới thiệu chung 13
2.2.2 Kiến trúc của RASA 14
2.2.3 Quy trình xử lý của RASA 15
2.2.4 Đánh giá mô hình 17
2.3 Mạng nơ-ron tích chập - Convolution Neural Network - CNN 17
2.3.1 Giới thiệu 17
2.3.2 Các công thức toán học 18
2.3.3 Khả năng của mạng CNN 19
2.3.4 Một số hàm kích hoạt (activation function) phi tuyến 19
2.3.5 Huấn luyện CNN 19
2.4 Transfer Learning vs Meta Learning vs Few-shot Learning 20
2.4.1 Khái niệm Transfer Learning 20
2.4.2 Khái niệm Meta Learning 22
2.4.3 Khái niệm Few-shot Learning 24
2.4.4 Cách phân biệt Transfer Learning, Meta Learning và Few-shot Learning 26
Trang 92.5 Pretrain model 27
2.5.1 Khái niệm 27
2.5.2 VGG16/VGG19 27
2.5.3 ResNet 30
2.5.4 DenseNet 31
2.6 MAML 33
2.7 Prototype Network 35
2.8 Matching Network 36
2.9 Tìm kiếm Vector 37
2.9.1 Khoảng cách Euclidean 37
2.9.2 Khoảng cách Manhattan 38
2.9.3 Khoảng cách cosine 38
2.9.4 Cải thiện tốc độ tính toán với Faiss 40
2.10 K-means 42
2.11 Công nghệ sử dụng được sử dụng 43
2.12 Hiểu về công cụ tìm kiếm toàn văn của MongoDB 45
2.12.1 Một số ví dụ 45
2.12.2 Các loại tìm kiếm toàn văn 46
2.12.3 Quá trình lập chỉ mục tìm kiếm toàn văn 47
2.12.4 Những cân nhắc trước khi sử dụng tìm kiếm toàn văn 48
2.12.5 Kiến trúc phức tạp 49
2.13 Hiểu về công cụ tìm kiếm véc-tơ của Milvus 49
2.13.1 Tổng quan kiến trúc của Milvus 49
2.13.2 Các lớp hoạt động 50
3 Công trình liên quan 54 3.1 Hệ thống Chatbot dựa trên framework Rasa 54
3.2 Mô hình truy vấn hình ảnh thời trang 55
3.2.1 Phương thức truy vấn đơn văn bản 56
3.2.2 Phương thức truy vấn đơn hình ảnh 57
3.3 Các phương pháp Few-shot Learning hiện nay 58
3.4 Các phương pháp phân cụm màu của một tấm ảnh 59
4 Mô hình, kiến trúc đề xuất cho bài toán Chatbot thời trang 61 4.1 Mô hình Rasa 61
Trang 104.1.1 Tập dữ liệu sử dụng 61
4.1.2 Định nghĩa ý định, thực thể trong mô hình Rasa 62
4.1.3 Đường ống (pipeline) trong mô hình Rasa 63
4.1.4 Chính sách kiểm soát đầu ra trong mô hình Rasa 66
4.1.5 Kết quả mô hình Rasa 67
4.1.6 Kiến trúc cho phép cá nhân hoá từng cửa hàng 72
4.2 Phương pháp Few-shot Learning 74
4.2.1 Tập dữ liệu sử dụng 74
4.2.2 Chọn N-way K-shot 74
4.2.3 Kiến trúc mô hình 75
4.2.4 Phương pháp đánh giá 76
4.2.5 Kết quả các phương pháp 76
4.3 Kiến trúc hệ thống hoàn chỉnh 77
4.3.1 Mô hình pretrained được sử dụng 77
4.3.2 Bộ dữ liệu nhằm đánh giá chất lượng dự đoán của hệ thống 78 4.3.3 Phương pháp đánh giá 79
4.3.4 Kiến trúc hệ thống tổng quan 79
4.3.5 Luồng xử lý dữ liệu 82
4.3.6 Đánh giá hệ thống ứng dụng Chatbot 85
4.3.7 Thiết kế Cơ sở dữ liệu 90
4.3.8 Giao diện hệ thống 91
5 Kết luận 95 5.1 Kết quả đạt được 95
5.2 Hạn chế tồn đọng 96
5.3 Hướng phát triển 96
Trang 11DANH SÁCH HÌNH VẼ
1.1 Báo cáo của Aglobal - Nielsen vào năm 2021 2
1.2 Chatbot của thương hiệu Victoria Secret 3
2.1 Phân loại của Chatbot [5] 11
2.2 Workflow của RASA 15
2.3 Quy trình của RASA 16
2.4 Các lớp của mạng nơ ron tích chập 18
2.5 So sánh tương quan hiệu quả của model train từ đầu và transfered model 21 2.6 Các tầng của VGG16 28
2.7 VGG16 architect 29
2.8 Resnet architect 30
2.9 DenseNet architect 32
2.10 Mã giả cho mô hình MAML 34
2.11 Mô hình MAML 35
2.12 quy trình tổng quan của mô hình prototypical 35
2.13 quy trình tổng quan của mô hình matching 37
2.14 Khoảng cách Euclidean 38
2.15 Khoảng cách Manhattan 39
2.16 So sánh các khoảng cách 40
2.17 Công cụ Faiss 41
2.18 Thuật toán Kmeans 42
2.19 Ví dụ về tìm kiếm toàn văn của MongoDB 45
2.20 Tìm kiếm chuỗi trong MongoDB 46
2.21 Tìm kiếm toàn văn trong MongoDB 47
2.22 Cách hoạt động của tìm kiếm toàn văn trong MongoDB 48
2.23 Tạo chỉ mục trong MongoDB 48
2.24 Kiến trúc tìm kiếm toàn văn trong MongoDB 49
Trang 122.25 Kiến trúc tìm kiếm véc-tơ của Milvus [23] 50
3.1 Phương pháp truy vấn đơn ảnh thời trang [53] 56
3.2 Phương pháp phân cụm màu trong ảnh [47] 60
4.1 Confusion matrix cho bài toán phân loại ý định 68
4.2 Confusion matrix cho bài toán phân loại thực thể 69
4.3 Histogram cho bài toán phân loại thực thể 70
4.4 Mô phỏng cách hoạt động Rasa 71
4.5 Luồng sử dụng của từng khách hàng chatbot 73
4.6 Kiến trúc hệ thống của từng khách hàng chatbot 73
4.7 Kiến trúc Microservice 80
4.8 Kiến trúc hệ thống tổng quan 81
4.9 Kiến trúc luồng dữ liệu 83
4.10 Cơ sở dữ liệu 91
4.11 Giao diện đăng nhập 91
4.12 Giao diện đăng ký 92
4.13 Giao diện trang chủ 92
4.14 Giao diện khi người mua đặt câu hỏi 93
4.15 Giao diện khi Chatbot trả lời 93
4.16 Giao diện khi chủ cửa hàng tự quản lý kho ảnh 94
Trang 13DANH SÁCH BẢNG
4.1 Cấu trúc các tầng được sử dụng trong mô hình Rasa 64
4.2 Chính sách kiểm soát đầu ra trong mô hình Rasa 66
4.3 Bảng kết quả bài toán phân loại ý định 67
4.4 Bảng kết quả bài toán phân loại thực thể 69
4.5 Bảng kết quả bài toán Few-shot Learning 77
4.6 Bảng kết quả Top-K@Recall bài toán Few-shot Learning 77
4.7 Bảng kết quả Top-K@Recall hệ thống Chatbot 90
4.8 Bảng kết quả độ trễ hệ thống Chatbot 90
Trang 14Ở đó, toàn bộ hoạt động mua sắm giống như một sự kiện dành cho những người phục
vụ Nhân viên cửa hàng tận tâm lắng nghe người mua hàng và lấy sản phẩm phù hợptrên kệ để dùng thử
Tuy nhiên, do sự bùng phát của đại dịch COVID-19 [1], hoạt động mua sắm đãchuyển từ các cửa hàng truyền thống sang các trang thương mại điện tử trực tuyến.Giờ đây, dù thời kỳ đại dịch đã qua nhưng sự thuận tiện và tiện lợi của mua sắm trựctuyến đang làm giảm số lượng người tiêu dùng thích mua sắm trực tiếp hơn Theo báocáo của NielsenIQ vào năm 2021 [2], danh mục hàng hóa được ưa chuộng nhất trêncác kênh trực tuyến là Non-grocery item (hay các mặt hàng không phải hàng tạp hóanhư đồ ăn, đồ gia dụng) Những mặt hàng này bao gồm đồ thủ công mỹ nghệ, thờitrang, dệt may, gỗ, nội thất, Đây cũng là những mặt hàng mà Việt Nam bán chạytrên sàn Amazon [3]
Internet nói chung và thương mại điện tử nói riêng đóng vai trò vô cùng quan trọngtrong việc tạo ra những thay đổi to lớn trong ngành thời trang Bộ phận người tiêudùng trực tuyến không chỉ tận hưởng trải nghiệm mua sắm thuận tiện mà còn đượctách biệt và đảm bảo quyền riêng tư Nhận thấy tiềm năng to lớn của phân khúc kháchhàng này, các công ty thời trang hàng đầu thế giới đã và đang sử dụng thuật toán Trítuệ Nhân tạo [4] để hỗ trợ các công cụ nhận dạng, thiết kế, tiếp thị và hỗ trợ kháchhàng Ngành thời trang nhanh chóng nhận ra rằng Trí tuệ nhân tạo [4] mang lại cho
Trang 15Hình 1.1: Báo cáo của Aglobal - Nielsen vào năm 2021
họ khả năng tạo ra những trải nghiệm hấp dẫn và cá nhân hóa với chi phí phải chăng
Và Chatbot [5] trong lĩnh vực này là thứ gần gũi nhất với sự trợ giúp của con người.Chatbot [5] xuất hiện trên một trang web có thể cung cấp cho khách hàng sự trợ giúpthân thiện và hỗ trợ nhanh chóng, chi tiết và chính xác hơn so với một số nhân viêncủa họ có thể làm được Ngành hàng may mặc hy vọng Chatbot [5] sẽ giúp vượt quađược những mong đợi của khách hàng với một sự hài lòng ngay lập tức
Một vài ví dụ hiện nay phổ biến mà chúng ta thường bắt gặp, chẳng hạn khi chúng
ta truy cập các trên web của các hãng thời trang cao cấp như Victoria’s Secret, LuisVuitton hay của Burberry, chúng ta sẽ dễ dàng nhận thấy các cuộc hội thoại tự độngchủ động bắt chuyện của Chatbot [5] Các Chatbot [5] này sẽ cung cấp các thông tincác mặt hàng sản phẩm của thương hiệu đó hoặc sẽ cung cấp các gợi ý về sản phẩmdựa theo sở thích của khách hàng
Mô hình đơn giản nhất của hệ thống Chatbot [5] này đó là dựa trên các mẫu câutrả lời có sẵn cùng với một tập luật đã được định nghĩa sẵn Các nhà cung cấp dịch vụ
sẽ hướng dẫn cuộc trò chuyện theo một lộ trình định trước Một số câu hỏi và trả lờithường xuyên:
− Trả lời các câu hỏi về các việc có còn hàng mặt hàng này hay không
− Trả lời các câu hỏi về địa chỉ chủ cửa hàng nằm ở đâu
− Trả lời các câu hỏi về thời gian hoạt động ra sao
Trang 16Hình 1.2: Chatbot của thương hiệu Victoria Secret
Tuy nhiên, trong thực tế, số lượng câu hỏi của khách hàng cần giải đáp vô cùngnhiều và phức tạp theo Survey Sparrow [6] Theo thống kê, các câu hỏi thường tậptrung vào mặt sản phẩm của cửa hàng như:
− Câu hỏi về loại mặt hàng này còn hay không?
− Câu hỏi về một sản phẩm tương tự mặt hàng họ đang tìm kiếm
− Câu hỏi về một sản phẩm có đặc điểm theo yêu cầu của khách hàng
Những câu hỏi trên cần có sự liên kết nhiều thông tin để hệ thống có thể truy vấn
và đưa ra một câu trả lời đúng đắn nhất Để làm được như vậy, một tập luật cơ bảnkhông thể nào có thể làm được
Đồng thời, với sự ra đời của công cụ ChatGPT [7] đã giúp ích cho cuộc sống củacon người khá nhiều, tuy nhiên, một nhược điểm của ChatGPT này chưa thực sự tối
ưu hoá cho từng người mà vẫn chỉ đang phục vụ các nhu cầu chung
Và từ hai lý do trên đã tạo động lực để cho học viên chọn đề tài ”Xây dựng hệ thống Chatbot về Thời trang dựa trên Few-Shot Learning và Rasa” để giải quyết
vấn đề trên
Trong phạm vi của đề tài, học viên sẽ xây dựng một hệ thống Trợ lý ảo cho hai đốitượng Một, đó là khách hàng, bên cạnh việc trả lời các thông tin cơ bản của chủ cửahàng cho khách hàng, hệ thống còn có thể cho khách hàng biết được mặt hàng nàycòn không hay đề xuất các mặt hàng khác đáp ứng nhu cầu của khách hàng Hai, đó
là phía chủ cửa hàng, hệ thống Chatbot [5] cho phép từng cửa hàng tự xây dựng bộcâu hỏi sẵn về địa chỉ, thời gian làm việc, thông tin liên lạc, đồng thời chủ tiệm còn
Trang 17có thể tự xây dựng một bộ truy vấn hình ảnh theo số lượng và đặc điểm của các sảnphẩm đang có Ngoài ra, việc truy vấn hình ảnh này gặp nhiều hạn chế do số lượngảnh mẫu cho mỗi loại sản phẩm là không nhiều, vì thế cần xây dựng một mô hình chỉ
có thể học từ số lượng ít ỏi như vậy nhưng vẫn đáp ứng tốt được việc truy vấn hìnhảnh
1.2 Mục tiêu đề tài
Mục tiêu của luận văn hướng đến việc nghiên cứu và xây dựng Hệ thống Chatbot
về thời trang nhằm giải quyết hai nhu cầu chính cho khách hàng và chủ cửa tiệm
− Nhu cầu của khách hàng:
+ Hỏi về các thông tin cơ bản của cửa hàng như địa điểm, thời gian, liên hệ,
+ Hỏi về các thông tin của các loại mặt hàng có sẵn trong cửa hàng
− Nhu cầu của chủ cửa tiệm:
+ Cần có một Trợ lý ảo có thể cá nhân hoá các thông tin cơ bản của cửa hàngnhư địa điểm, thời gian, liên hệ,
+ Cần có một Trợ lý ảo có thể truy vấn các thông tin về các ảnh của các mặthàng đang đó với số lượng ảnh mẫu ít ỏi của từng loại mặt hàng
Để giải quyết được các nhu cầu trên, học viên phải đạt được các mục tiêu sau:
− Nắm vững các lý thuyết về mô hình Học sâu và huấn luyện được chúng
− Nắm vững các lý thuyết và sử dụng được các cách huấn luyện (cách học) củacác mô hình học sâu như học chuyển giao (Transfer Learning), học để học (MetaLearning), học từ số lượng vô cùng ít (Few-Shot Learning)
− Nắm vững các phương pháp sử dụng trong cách học từ số lượng vô cùng ít Shot Learning), đặc biệt là phương pháp học dựa trên chỉ số đánh giá (metric-based) và phương pháp học từ việc khởi tạo trọng số (Learning the initialization)
(Few-Từ đó, chỉ ra được các ưu nhược điểm của các phương pháp
− Đề xuất được phương pháp phù hợp được sử dụng trong miền hình ảnh về lĩnhvực Thời trang
Trang 18− Nắm vững kiến trúc về Rasa và cách xây dựng một mô hình Rasa, đặc biệt xâydựng mô hình tối ưu hoá cho từng cửa hàng.
− Nắm vững các công cụ phục vụ việc xây dựng hệ thống nhằm đáp ứng được cácvấn đề độ trễ
Từ những mục tiêu trên, học viên đề ra các nhiệm vụ cần thực hiện trong quá trìnhhoàn thiện luận văn:
− Tìm hiểu về bài toán Chatbot nói chung, đặc biệt tập trung nghiên cứu mô hìnhChatbot Rasa
− Xây dựng tập dữ liệu phù hợp cho bài toán Chatbot
− Hiện thực được một mô hình thích hợp dựa trên Rasa và tập dữ liệu phù hợp
− Tìm kiếm các bộ tập dữ liệu phù hợp cho bài toán truy vấn hình ảnh
− Tìm hiểu về phương pháp học từ dữ liệu ít ỏi (Few-shot Learning), cũng như cáccông trình liên quan đến việc sử dụng mô hình này trong việc truy vấn hình ảnhtrong một hệ thống Chatbot
− Hiện thực được một hay nhiều phương pháp thích hợp dựa trên các Few-shotLearning trên tập dữ liệu tìm được, nghiên cứu và đưa ra những cải tiến để cảithiện chất lượng mô hình
− So sánh và đánh giá kết quả so với các phương pháp truy vấn hình ảnh truyềnthống và hiện đại
− Hiện thực sự kết hợp giữa hai mô hình dựa trên mô hình Rasa và mô hình shot Learning, từ đó xây dựng và hiện thực hệ thống Chatbot với đầy đủ tínhnăng
Few-1.3 Giới hạn của đề tài
Trong phạm vi của một đề tài Luận văn Thạc sĩ, các giới hạn của đề tài được họcviên liệt kê như sau:
1 Giới hạn về phạm vi nghiên cứu
Trang 19− Nghiên cứu về cách học từ số lượng vô cùng ít (Few-Shot Learning) với cácphương pháp dựa trên chỉ số đánh giá (metric-based) và học từ việc khởi tạotrọng số (learning the intialization).
− Nghiên cứu về xây dựng Chatbot chỉ dựa trên mô hình Rasa
2 Giới hạn về khách thể nghiên cứu
Những khách hàng có thói quen mua sắm online và những chủ cửa hàng muốntối ưu chi phí nhân viên trực website bằng ứng dụng Chatbot
3 Giới hạn về đối tượng nghiên cứu
− Các hình ảnh mẫu của các mặt hàng mua sắm trực tuyến - chỉ bao gồm mộtphần nửa trên hoặc một phần nửa dưới hoặc toàn phần của một bộ quần áođầy đủ cho một cá thể con người có thể mặc được
− Các câu hỏi được đặt ra trong Chatbot bao gồm các câu hỏi về các thông tin
cơ bản của cửa hàng như địa điểm, thời gian, cách thức liên hệ và các câuhỏi về việc tồn tại một loại mặt hàng nào đó hoặc về việc trợ giúp tư vấn cácloại mặt hàng phù hợp với các đặc điểm nhu cầu của khác hàng gồm:
+ 9 màu sắc chính
+ 26 thuộc tính (ví dụ áo tay dài, tay ngắn, cổ tròn, )
+ 50 loại sản phẩm áo quần (Ví dụ quần jeans, quần kaki, áo sơ mi, áo thun, )
− Các kịch bản cho Chatbot giải quyết
(a) Trả lời câu hỏi còn hàng không của một mặt hàng trong cửa tiệm
Trang 20+ Khách hàng gửi một ảnh áo sơ mi và hỏi ”Shop có mặt hàng nào giốngvậy không?”
+ Trả lời: ”Cửa hàng có những mặt hàng giống như này” và kèm theodánh sách 5 ảnh
(d) Gợi ý các mặt hàng giống với ảnh được gửi từ khách hàng nhưng có sựthay đổi về đặc điểm Ví dụ:
+ Khách hàng gửi một ảnh áo sơ mi và hỏi ”Shop có mặt hàng nào giốngvậy không nhưng tay áo ngắn hơn?”
+ Trả lời: ”Cửa hàng có những mặt hàng giống như này” và kèm theodánh sách 5 ảnh
4 Giới hạn về thời gian nghiên cứu Thời gian nghiên cứu trong vòng gần 1 năm kể
từ lúc bắt đầu chọn đề tài nghiên cứu
5 Giới hạn về tập dữ liệu Tập dữ liệu được sử dụng bao gồm mmfashion và dữ liệuđược công ty Trương Minh Thịnh cung cấp
1.4 Đóng góp của luận văn
Trong luận văn, học viên đề xuất 5 tính mới trong các phương án giúp cải thiệnứng dụng Chatbot trong lĩnh vực thời trang dựa trên cơ sở là (1) mô hình Few-shotLearning và (2) bộ dữ liệu thời trang bổ sung, (3) mô hình Rasa, đồng thời học viêncũng đề xuất (4) kiến trúc xây dựng nhằm giảm độ trễ phản hồi khi đi qua nhiều môhình trong hệ thống và (5) bộ dữ liệu tiếng Việt được dịch từ tiếng Anh phục vụ choviệc đánh giá hệ thống:
− Đề xuất được mô hình Few-shot Learning có thể trích xuất đặc trưng một cáchtổng quát cho các hình ảnh về thời trang bằng lượng ảnh mỗi lớp vô cùng ít ỏi.Kết quả đạt được tốt hơn mô hình mmfashion trên cùng tập dữ liệu trên chỉ sốTop-5@Recall
− Đề xuất bổ sung bộ dữ liệu gần 10,000 ảnh thời trang được lấy từ trang thươngmại điện tử Shopee
− Đề xuất được phương pháp tạo mô hình Rasa cá nhân hoá cho từng cửa hàng,thay vì một mô hình Rasa tổng quá hoá cho mọi cửa hàng
Trang 21− Đề xuất được kiến trúc hệ thống để xây dựng lên ứng dụng chatbot nhằm đáp ứngviệc xử lý nhiệm vụ dự đoán và truy vấn hình ảnh, dẫn đến thời gian phản hồi tối
đa phản hồi là 3 giây và chịu tải được 100 khách hàng xử dụng cùng lúc
− Đề xuất một bộ dữ liệu tiếng Việt được dịch từ tiếng Anh phục vụ cho việc đánhgiá hệ thống Bộ dữ liệu này có đầu vào gồm 1 văn bản và 1 ảnh và đầu ra là mộtảnh mong đợi
1.5 Tóm tắt luận văn
Luận văn ”Xây dựng Hệ thống Chatbot về Thời trang dựa trên Fewshot Learning và Rasa” bao gồm năm chương với các nội dung chính sau đây:
-− Chương 1, Giới thiệu đề tài: Trình bày tổng quan về đề tài, lý do thực hiện đề
tài và ý nghĩa thực tiễn của bài toán, cũng như giới hạn và phạm vi của đề tài.Cuối cùng là nhiệm vụ và cấu trúc của luận văn
− Chương 2, Cơ sở lý thuyết: Tổng hợp những vấn đề học thuật liên quan nhất
sẽ áp dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu, từcác kiến trúc về Rasa, Mạng nơ-ron tích chập, các phương pháp Few-shot Learn-ing trong cách học tổng quát (transductive learning), cụ thể là mô hình Model-agnostic Meta-Learning (MAML), Prototype Network, Matching Network vàmột số kiến thức liên quan đến xây dựng, đo đạc hệ thống
− Chương 3, Các công trình nghiên cứu liên quan: Trình bày một cách tổng quát
về những nghiên cứu liên quan đã và đang được thực hiện, cũng như xu hướngchung hiện nay trong việc giải quyết bài toán Phần này cũng đưa ra những bànluận và đánh giá cho các phương pháp kể trên vì đó là cơ sở quan trọng cho nhữngnghiên cứu của em trong quá trình thực hiện luận văn
− Chương 4, Mô hình, kiến trúc hệ thống đề xuất: Giới thiệu mô hình cơ sở cho
bài toán Few-shot Learning trong lĩnh vực thời trang Đồng thời đưa ra phươngpháp giúp việc tạo ra các mô hình Rasa cá nhân hoá cho từng cửa hàng hay kiếntrúc hệ thống phục vụ cho ứng dụng Chatbot giúp đảm bảo độ trễ mỗi API trongvòng 3 giây Cuối cùng, trình bày các bước tiến hành thí nghiệm trên những tập
dữ liệu khác nhau và đánh giá kết quả của những cải tiến so với mô hình cơ sở
Trang 22− Chương 5, Kết luận: Tổng hợp các kết quả đạt được trong quá trình thực hiện
luận văn từ bước nghiên cứu và xây dựng giả thuyết đến triển khai thực nghiệm.Phần này cũng trình bày những hạn chế và vấn đề tồn đọng, cuối cùng đề xuấtcác giải pháp cải tiến trong tương lai
Mục lục, Danh sách hình vẽ, Danh sách bảng được cung cấp ở đầu luận văn Tàiliệu tham khảo sẽ được trình bày ở cuối luận văn
Trang 23CHƯƠNG 2
Cơ sở lý thuyết
Tóm tắt: Tổng hợp những vấn đề học thuật liên quan nhất sẽ áp dụng để giải quyết bài toán, tập trung chủ yếu vào nội dung của học sâu, từ các kiến trúc về Rasa, Mạng nơ-ron tích chập, các phương pháp Few-shot Learning trong cách học tổng quát (transductive learning), cụ thể là mô hình Model-agnostic Meta-Learning (MAML), Prototype Network, Matching Network và một số kiến thức liên quan đến xây dựng,
đo đạc hệ thống 1.5
2.1 Định nghĩa về Chatbot
Chatbot [5] là một trợ lý ảo không thể thiếu trong bất kỳ lĩnh vực nào thườngxuyên giao tiếp với khách hàng Chatbot có thể được tích hợp trong nhiều hệ thốngkhác nhau, từ đó, tiết kiệm rất nhiều thời gian bằng cách cho phép khách hàng yêu cầu
hỗ trợ nhận được phản hồi ngay lập tức 24/7 mà không cần đợi nhân viên hỗ trợ kếtnối Về phía người dùng, họ sẽ không phải đối phó với thư rác, các cuộc trò chuyệnkhông cần thiết hay các cuộc gọi điện thoại xâm phạm mà chỉ có nhận những thôngtin hữu ích
Có thể chia bài toán Chatbot thành các nhóm liên quan dựa trên các mục đích (purpose), nơi được sử dụng (location), loại giao diện (type of interface), số lượng
khách hàng sử dụng (number of users), hình thức truy cập (form of access), chức năng (functionality), giải thuật (algorithm) [5]
1 Dựa trên mục đích sử dụng, có thể chatbot thành 2 loại chính: chatbot với các
chủ đề rộng hoặc với chủ đề đặc thù [5] Chatbot với các chủ đề rộng được dùng
để trò chuyện với người dùng về nhiều chủ đề trừu tượng với không mục đích
Trang 24Hình 2.1: Phân loại của Chatbot [5]
rõ ràng nào Còn chatbot với chủ đề đặc thù sẽ tập trung vào các thông tin xoayquanh đến chủ đề đó
2 Nếu phân tích chatbot dựa trên tiêu chí nơi được sử dụng có thể dễ dàng chia
chatbot thành 3 loại [5] 2 loại đầu tiên, chatbot đóng vai trò là bên thứ ba Tức,
chatbot được nhúng thẳng trên website của một riêng một tổ chức hay cá nhân để
trả lời câu hỏi hoặc thực hiện các yêu cầu riêng hoặc chatbot được nhúng vào các
ứng dụng tin nhắn như Messenger, Telegram, Slack, Loại cuối cùng là chatbot được thiết kế riêng trên một ứng dụng đặc thù nào đó.
3 Tiêu chí phân loại thứ ba được nhắc đến là loại giao diện của chatbot [5] Lúc
này, chatbot được phân thành 5 loại chính Đó là loại mà người dùng phản hồi
với chatbot dưới dạng nút bấm chọn Đó còn là loại mà người dùng phản hồi với
dạng đoạn tin nhắn Hay thậm chí chatbot có cả sự kết hợp cả hai loại vừa đề
cập Loại tiếp theo là chatbot giao tiếp thông qua giọng nói, tin nhắn giọng nói
được chuyển thành văn bản để phân tích và tạo phản hồi âm thanh Cuối cùng là
loại chạy thời gian thực là những loại chatbot được kết nối với các hệ thống bên
ngoài, lấy thông tin động để tiếp tục trò chuyện hoặc thực hiện hành động Loạithứ ba này cần hỗ trợ các lệnh, phân tích lệnh từ tin nhắn người dùng và hiểu ngữcảnh của cuộc trò chuyện
4 Nếu xét trên tiêu chí số lượng người dùng [5], chúng ta có thể chia chatbot làm
Trang 252 loại chính Một là chatbot cá nhân, hai là chatbot dành cho doanh nghiệp.
Chatbot cá nhân có thể chia làm 2 loại nhỏ hơn, đó chính là loại cá nhân nhưngkhông sử dụng các thông tin hỗ trợ như tin nhắn cũ hay lịch sử tương tác và loại
cá nhân nhưng có sử dụng Chatbot doanh nghiệp là những chatbot được thiết
kế để có thể tương tác với khách hàng mà không cần sự hỗ trợ của các nhân viênthuộc doanh nghiệp đó
5 Tiếp theo, tiêu chí hình thức truy cập cũng có thể chia chatbot làm 3 loại [5].
Chatbot được sử dụng trong các nhóm trò chuyện, các thành viên trong nhóm sẽ tương tác với nhóm Hay chatbot được gọi bằng việc sử dụng ký tự @ và chatbot
sẽ tương tác sau đó Loại cuối cùng là những chatbot mà người dùng đăng ký vào
đó và chatbot sẽ có nhiệm vụ gửi các bản tin, tin tức đến với người đã đăng ký
6 Năm tiêu chí phân loại đầu tiên dựa theo các đặc điểm, bối cảnh bên ngoài Haitiêu chí tiếp theo sẽ dựa trên đặc trưng riêng của chatbot Một trong hai tiêu chí
đó là dựa trên giải thuật [5] Dự trên tiêu chí giải thuật, chatbot có thể được
chia làm 3 loại chính: chatbot đơn giản, chatbot thông minh và chatbot lai giữa
2 loại đầu tiên
Chatbot đơn giản là những loại chatbot dựa trên các tập luật cho trước, một cấutrúc tập luật đưa ra các quyết định dựa theo cấu trúc cây, mỗi câu trả lời sẽ ứng vớitừng từ khoá mà chatbot nhận thấy được trong câu hỏi Chatbot loại này thườngtránh các câu hỏi phức tạp và có thể sử dụng các nút bấm để lựa chọn các câu hỏitiếp theo cho chatbot một cách phù hợp Mặc dù hạn chế về chức năng nhưng nó
sẽ hữu ích trong những tình huống cụ thể mà người thiết kế tạo ra Loại chatbotthứ hai là chatbot thông minh hay các chatbot dựa trên mô hình mạng lưới Nơ-ron(Neural Network) để hiểu được ý nghĩa của cuộc hội thoại Người thiết kế cầnhuấn luyện các mẫu có sẵn và số lượng các mẫu cần rất lớn để có thể học tốt được.Cốt lõi của chatbot thông minh dựa trên các mô hình Xử lý Ngôn ngữ Tự nhiên(NLP - Natural Language Processing, NLU - Natural Language Understanding
và NLG - Natural Language Generation)
− NLP là khả năng xử lý của mô hình với những gì được nói, hiểu ý nghĩa của
nó, xác định hành động đáp lại và trả lời bằng ngôn ngữ dễ hiểu đối với ngườidùng, bằng cách chuyển đổi văn bản máy tính thành dữ liệu có cấu trúc
− NLU là xương sống của bất kỳ chatbot nào và về cơ bản là một phần của quytrình NLP Nó chịu trách nhiệm về khả năng của mô hình trong việc chọn
Trang 26cách tốt nhất để xử lý đầu dưới dạng phi cấu trúc và biến nó thành một cấutrúc có thể học NLU cực kỳ quan trọng đối với dữ liệu không thể đoán trướcnhư chữ viết tắt, từ sửa đổi và từ sai chính tả, tiếng lóng, ngôn ngữ khó hiểu,phép ẩn dụ mà con người có thể hiểu và máy không thể hiểu được.
− NLG là quá trình mô hình chuyển đổi dữ liệu có cấu trúc thành văn bản Vềbản chất, đây là việc tạo ra một văn bản để giao tiếp với người dùng Chatbot
có thể thu thập thông tin về người dùng, theo dõi hành động của họ và sau
đó, nếu cần, phân tích thói quen của họ Được thu thập trong quá trình đốithoại, dữ liệu người dùng cho phép bạn cá nhân hóa các ưu đãi khác nhau
7 Tiêu chí cuối cùng được sử dụng đó là về chức năng [5] Với tiêu chí này, chatbot
có thể được chia làm 4 loại khác nhau Loại chatbot thông tin được dùng để phân
phối các tin tức, mã giảm giá hoặc sự kiện được định trước Hay loại chatbot câu hỏi và trả lời, tức người thiết kế đã định nghĩa trước từng câu trả lời ứng với
từng câu hỏi đơn giản khác nhau, từ đó, giảm tải cho các hệ thống bởi những câuviệc đơn giản, tối ưu chi phí nhân viên và chỉ khi người dùng gặp các câu hỏiphức tạp mới cần những quản lý liên quan Còn đó là loại chatbot hỗ trợ nhằm
tạo ra các dữ liệu từ những phản hồi của người dùng với mục đích hỗ trợ người
dùng trong việc đưa ra các quyết định quan trọng khác Loại chatbot cuối cùng
là chatbot chức năng theo từng hành động cụ thể mà có tính lặp đi lặp lại cao.
Như vậy, có thể thấy rằng hệ thống chatbot tồn tại ở hầu hết các sản phẩm dịch vụgồm hai bên tham gia: nhà thiết kế và người sử dụng Cách thức triển khai và mụctiêu đề xuất của các hệ thống là vô cùng đa dạng và không hoàn toàn giống nhau, tùythuộc vào lĩnh vực và loại sản phẩm là gì Để có thể tạo ra một hệ thống chatbot hoànchỉnh, hệ thống đó đòi hỏi cần có sự kết hợp của nhiều các loại chatbot khác nhau mà
đã được đề cập ở trên Đó cũng chính là thách thức được đặc ra khi người thiết kếchatbot cần phải vận dụng từng đặc điểm của từng loại mà tạo ra một hệ thống toàndiện và có tính ứng dụng cao
2.2 Kiến thức về RASA
2.2.1 Giới thiệu chung
RASA là một nền tảng giúp xây dựng Chatbot hội thoại [5], cung cấp đa dạng công
Trang 27cả khi có ít dữ liệu.
Một luồng hội thoại bất kỳ của một Chatbot đều cần tuân theo các bước sau:
1 Khách hàng đưa ra một câu hỏi bất kỳ
2 Chatbot sẽ phân tích ý định của câu hỏi đang muốn hỏi gì
3 Chatbot xác định hành động và phản hồi lại cho khách hàng
2.2.2 Kiến trúc của RASA
RASA bao gồm 2 mô-đun chính, đó là RASA NLU và RASA Core
RASA NLU phân tích đầu vào của người dùng, sau đó nó phân loại ý định (intent)
của người dùng và trích xuất các thực thể (entities) RASA NLU kết hợp các trìnhchú thích khác nhau từ phân tích cú pháp spaCy để diễn giải dữ liệu đầu vào
− Phân loại ý định: ”Tôi muốn mua chiếc áo sơ mi màu trắng ạ” Ở đây RASA sẽtrả về kết quả là ý định mua sắm với một chỉ số tự tin (confidence) cao
− Cũng ví dụ trên, RASA sẽ trả về các thực thể bao gồm áo sơ mi (thực thể ”áoquần”, giá trị ”sơ mi”) và trắng (thực thể ”màu sắc”, gía trị ”trắng”)
Ngoài ra, RASA NLU còn có các tính năng khác như Regular Expression, onyms, Lookup Table
Syn-− Regular Expression: Trích chọn thực thể bằng Regex
Ví dụ: ngày tháng, từ khóa cụ thể
− Synonym: Từ đồng nghĩa
Ví dụ: ”ub”, ”ubnd” và ”Ủy ban nhân dân”, khi gặp các từ ”ub”, ”ubnd”, hệ thống
tự chuyển thành ”Ủy ban nhân dân”
− Lookup Table: Định nghĩa một tập giá trị cho một biến (RASA gọi là slot)
Ví dụ: Slot Province, ta định nghĩa Lookup Table gồm 64 tên tỉnh thành: ”HàNội”, ”Hải Phòng”, ”Hà Nam”, Khi hệ thống phát hiện từ ”Hải Phòng”trong câu hội thoại người dùng, hệ thống sẽ tự gán giá trị ”Hải Phòng” cho biếnProvince trong bộ nhớ, điều này giúp chatbot có thể nhận ra một số giá trị bổ trợcho ngữ cảnh
Trang 28RASA Core lấy đầu vào có cấu trúc ở dạng ý định và thực thể, đồng thời chọn
hành động mà chatbot sẽ thực hiện bằng cách sử dụng mô hình xác suất
RASA Core còn sử dụng các chính sách (Policy) để xử lý luồng hội thoại, gồm:
− RulePolicy: Sử dụng các luật (Rule) để xác định hành động tiếp theo
− MemoizationPolicy: Sử dụng các Story để xác định hành động tiếp theo
− TEDPolicy: Sử dụng học sâu để xác định hành động tiếp theo
− Các Policy này cùng nhau hợp lại thành Dialog Policies
2.2.3 Quy trình xử lý của RASA
Hình 2.2: Workflow của RASAQuá trình xử lý RASA (RASA pipeline) được giải thích như sau:
1 Thông báo đầu vào (Message In) được chuyển đến Trình thông dịch (RASANLU) Trình thông dịch chuyển đổi thông điệp của người dùng thành đầu ra cócấu trúc bao gồm văn bản gốc, ý định và thực thể
2 Trình theo dõi (Tracker) theo dõi trạng thái cuộc hội thoại và nhận giao diện củatin nhắn mới
3 Đầu ra của Trình theo dõi (Tracker) chuyển vào Chính sách (Policy), nhận trạngthái hiện tại của Trình theo dõi
4 Hành động (Action) tiếp theo được chọn theo chính sách
5 Trình theo dõi (Tracker) ghi lại hành động đã chọn
Trang 296 Phản hồi (Message Out) được gửi tới người dùng, sử dụng cách nói được xácđịnh trước trong nlu.yml
Quy trình xử lý của thông điệp đầu vào (Message In) bao gồm các thành phần khácnhau Các thành phần này được thực hiện tuần tự Thành phần xử lý đầu vào và đưa rađầu ra có thể được sử dụng bởi bất kỳ thành phần nào trong quy trình Một quy trình
xử lý xác định các giai đoạn xử lý mà các thông báo đầu vào sẽ phải vượt qua Giaiđoạn xử lý có thể là trình mã thông báo (tokenizer), trình tạo đặc điểm (featurerizer),trình nhận dạng thực thể được đặt tên (named entity recognizer), trình phân loại ý định(intent classifier)
RASA cung cấp các quy trình được định cấu hình sẵn có thể được sử dụng Ngoài
ra, người sử dụng có thể tạo một quy trình tùy chỉnh bằng cách chuyển các thành phầntới biến cấu hình quy trình của NLU Để xây dựng một mô hình NLU tốt cho chatbot,học viên cần cải tiến mô hình bằng các thành phần tùy chỉnh của riêng mình, chẳng hạnnhư trình phân tích quan điểm (sentiment analyzer), trình mã thông báo (tokenizer),trình kiểm tra chính tả (spell checker), v.v
Hình 2.3: Quy trình của RASA
Trang 302.2.4 Đánh giá mô hình
Đánh giá các mô hình RASA NLU dựa trên ba số liệu: độ chính xác (1), điểm F1(3) và độ chính xác (4) Các quan sát được dự đoán chính xác (True Positives) là sốquan sát được dự đoán chính xác cho lớp Họ thuộc về lớp và mô hình đã phân loại
họ chính xác Chúng lần lượt biểu thị True Positive là TP, False Positive là TN, TrueNegative là FP và False Negative là FN
P recision = T rueP ositive
T rueP ositive + F alseP ositive(1)
Recall = T rueP ositive
T rueP ositive + F alseN egative(2)
Một trong những mạng nơ-ron sâu phổ biến nhất đó là Mạng Nơ-ron Tích chập(Convolutional Neural Network - CNN) [9] CNN có nhiều tầng: bao gồm tầng tíchchập, tầng không tuyến tính, tầng tổng hợp, tầng kết nối toàn phần
Tầng tích chập (Convolutional layer)
Tầng tích chập sử dụng các bộ lọc để thực hiện phép tích chập khi đưa chúng điqua các đầu vào I theo các chiều của nó Các siêu tham số của các bộ lọc này baogồm kích thước bộ lọcF và độ trượt (stride)S Kết quả đầu raO được gọi là featuremap hay activation map
Trang 31Lớp không tuyến tính (None-linearity layer)
Lớp tiếp theo sau lớp tích chập là lớp không tuyến tính Lớp không tuyến tính cóthể được sử dụng để thay đổi hoặc cắt giảm output sinh ra Lớp này được áp dụng đểbão hòa output hoặc giảm output sinh ra
Tầng Pooling (Pooling Layer)
Tầng pooling là một phép giảm mẫu (downsampling), thường được sử dụng sautầng tích chập, giúp tăng tính bất biến không gian Cụ thể, max pooling và averagepooling là những dạng pooling đặc biệt, mà tương ứng là trong đó giá trị lớn nhất vàgiá trị trung bình được lấy ra
Lớp kết nối toàn phần (Fully-connected Layer)
Tầng kết nối đầy đủ nhận đầu vào là các dữ liệu được được làm phẳng, mà mỗi đầuvào đó được kết nối đến tất cả neuron Trong mô hình mạng CNNs, các tầng kết nốiđầy đủ thường được tìm thấy ở cuối mạng và được dùng để tối ưu hóa mục tiêu củamạng ví dụ như độ chính xác của lớp
Hình 2.4: Các lớp của mạng nơ ron tích chập
2.3.2 Các công thức toán học
Tính tương thích của tham số trong tầng tích chập Bằng cách ký hiệu I là độdài kích thước đầu vào, F là độ dài của bộ lọc, P là số lượng zero padding, S là độtrượt, ta có thể tính được độ dàiO của feature map theo một chiều bằng công thức:
O = (I − F + P s tart + P e nd)
Trường thụ cảm - Receptive field Trường thụ cảm tại tầng f tại tầng k là vùngđược ký hiệuR k XR k của đầu vào những pixel của actiation map thứ k có thể ”nhìnthấy” Bằng cách gọiF j là kích thước bộ lọc của tầngj và S i là giá trị độ trượt của
Trang 32tầngivà để thuận tiện, ta mặc địnhS0 = 1, trường cảm thụ của tầngkđược tính toánbằng công thức
nó Ngoài ra CNN có khả năng làm việc ngay cả trong trường hợp dữ liệu bị nhiễu,thiếu, trong khi điều đó là không thể đối với chương trình máy tính thông thường(sẽ dừng ngay khi nó gặp một số bất thường trong dữ liệu)
Vì thế mà CNN có thể được sử dụng trong phân loại dữ liệu, phát hiện mẫu và ởcác ứng dụng mà trong đó dữ liệu không thực sự rõ ràng Với một vấn đề/tác vụ hoàntoàn mới, CNN rất tốt trong việc trích xuất đặc trưng (feature extractor) CNN đangtrở nên phổ biến trong việc phân loại ảnh, video
2.3.4 Một số hàm kích hoạt (activation function) phi tuyến
Softmax
Bước sofmax có thể được coi là một hàm logistic tổng quát lấy đầu vào là một vectorchứa các giá trịx ∈ Rn và cho ra là một vector gồm các xác suất p ∈ Rn thông quamột hàm softmax ở cuối kiến trúc Nó được định nghĩa như sau:
Trang 33biết trước và được yêu cầu để cho ra đầu ra cũng đã được biết trước Quá trình nàygọi là huấn luyện (training) mạng nơ-ron Các trọng số đã được điều
chỉnh trước đó sẽ được đem vào sử dụng để tính toán đầu ra cho những dữ liệu mớichưa biết trước
2.4 Transfer Learning vs Meta Learning vs Few-shot
Learning
2.4.1 Khái niệm Transfer Learning
Transfer Learning [8] hay học chuyển tiếp chính là cách để các mô hình truyền đạtcho nhau khả năng mà mỗi cá thể có thể làm được Một mô hình có thể học trên mộtmiền nhiệm vụ cố định nào đó và được lưu lại Sau đó, chính mô hình này (pretrainedmodel) được sử dụng cho một mô hình khác để học trên miền nhiệm vụ mong muốnnhanh hơn
Cụ thể, Transfer Learning hay Học chuyển tiếp trong Học sâu (Deep Learning) làmột kỹ thuật mà trong đó:
− Một mô hình đã được huấn luyện trước đó (pretrained model) trên một miềnnhiệm vụ cụ thể nào đó, khi đó một phần hay toàn bộ mô hình có thể được tái sửdụng phụ thuộc vào trong một miền nhiệm vụ khác
− Một mô hình mới có thể sử dụng một phần hay toàn bộ pretrained model để họcmột miền nhiệm vụ mong muốn và tùy vào nhiệm vụ của mỗi tầng trong đó,chúng có thể được thêm các tầng khác để đạt kết quả tốt hơn trên miền nhiệm vụmong muốn đó
Việc sử dụng mô hình đã được huấn luyện trước đó là một bước tiến lớn để nhữngngười đi sau tiếp bước những thành quả của các bậc tiền bối, tận dụng những loại môhình như vậy sẵn có để tạo ra những mô hình mới phục vụ cho các nhiệm vụ mongmuốn khác cụ thể hơn, mang tính ứng dụng thực tiễn hơn
Có 2 loại Học chuyển tiếp (Transfer Learning):
1 Trích xuất đặc trưng hay Feature extractor: Sau khi lấy ra các đặc điểm của
ảnh bằng việc sử dụng mô hình được huấn luyện sẵn, thì người huấn luyện môhình sẽ dùng các lớp phân loại tuyến tính để phân loại Hiểu một cách đơn giản
Trang 34thì các đặc trưng của một ảnh bất kỳ giờ như đầu vào của bài toán Học máy cơbản.
2 Tinh chỉnh hay Fine-tuning: Sau khi lấy ra các đặc trưng của ảnh bằng việc
sử dụng pre-trained model hay mô hình đã được huấn luyện sẵn, thì người huấnluyện mô hình sẽ coi đây là đầu vào của 1 mạng Tích chập mới bằng cách thêmcác lớp Tích hợp như ConvNet và Fully Connected layer
Một vấn đề đều có 2 mặt và Transfer Learning cũng vậy Sau đây là những mặt lợiích và hạn chế của nó
Lợi ích của Transfer Learning liên quan đến thời gian và độ hiệu quả của model.
− Về mặt thời gian
Việc sử dụng mô hình đã được huấn luyện sẵn (pretrained model) bản thân nókhông chỉ giúp giảm thời gian vào việc tạo ra một mô hình mới để thực hiện mộtmiền nhiệm vụ đích, mà còn giảm thời gian huấn luyện một mô hình từ đầu vìtrọng số hay weight của phần miền nhiệm vụ gốc đã có sẵn
− Về độ hiệu quả
Pretrained model có khả năng cung cấp cho người huấn luyện mô hình một độchính xác cao ngay từ đầu, do đó khi huấn luyện trên các nhiệm vụ mà họ mongmuốn thì các mô hình theo cách học chuyển tiếp của họ sẽ tiếp tục tăng độ chínhxác này thay vì phải bắt đầu từ điểm có độ chính xác thấp hơn
Hình 2.5: So sánh tương quan hiệu quả của model train từ đầu và transfered model
Và về mặt hạn chế của Transfer Learning
Trang 35Transfer Learning không phải một kỹ thuật dễ sử dụng, nếu người huấn luyện môhình nếu có bất kỳ sai sót trong quá trình chuyển tiếp như kiến trúc của mô hình huấnluyện sẵn hay thêm/bớt không đúng tầng (layer) thì khi huấn luyện, độ chính xác sẽthấp không tưởng tượng được, khi đó họ sẽ phải kiểm tra lại quá trình sửa các tầnghoặc làm lại từ đấu Khi mô hình đạt độ chính xác thấp như vậy, chúng sẽ không đượcgọi quá trình huấn luyện là fine-tuning vì nó không phù hợp với định nghĩa.
Người huấn luyện mô hình chỉ có thể dùng cách học chuyển tiếp hay TransferLearning khi mà có mô hình được huấn luyện sẵn liên quan trực tiếp đến các nhiệm
vụ đích của họ mà thôi, không phải pretrained model nào cũng có thể dùng để chuyểntiếp vào các nhiệm vụ mong đợi được Ví dụ không nên dùng pretrained model chohình ảnh màu để tinh chỉnh hay fine-tuning cho việc nhận diện chữ viết tay
2.4.2 Khái niệm Meta Learning
Meta learning [10], hay còn được biết đến với tên gọi ”học siêu nhanh” hoặc ”họcmeta” là một phương pháp máy học tiên tiến nhằm nâng cao khả năng học và thíchứng của mô hình máy học trong môi trường miền nhiệm vụ thay đổi Trái ngược vớicác phương pháp học truyền thống, meta learning không chỉ học từ một tập dữ liệu cụthể mà còn học từ trải nghiệm đa dạng của nhiều nhiệm vụ khác nhau, tạo ra khả năngchuyển tiếp kiến thức linh hoạt và hiệu quả
Meta learning tập trung vào hai giai đoạn quan trọng: giai đoạn học bên ngoài và
giai đoạn học bên trong
1 Trong giai đoạn học bên ngoài
Mô hình được đào tạo từ một loạt các nhiệm vụ để học cách thích ứng nhanhchóng với đa dạng tình huống Trong giai đoạn học bên trong, mô hình sử dụngkiến thức đã tích lũy để nhanh chóng thích ứng với một nhiệm vụ mới, thườngchỉ với một lượng nhỏ dữ liệu
2 Trong giai đoạn học bên trong
Sau khi hoàn thành quá trình thích ứng, mô hình được đánh giá trên nhiệm vụkiểm tra mới để đảm bảo khả năng chuyển tiếp và hiệu suất tốt Quá trình nàygiúp đánh giá khả năng của mô hình trong việc giải quyết nhiệm vụ mới một cáchhiệu quả và chính xác Nhìn chung, meta learning không chỉ giúp mô hình họchiệu quả từ kinh nghiệm mà còn tạo ra một khả năng thích ứng và chuyển tiếpkiến thức mạnh mẽ, đặc biệt là trong bối cảnh những thách thức và nhiệm vụ mới
Trang 36Tuy vậy, meta learning cũng sẽ có những vấn đề riêng của nó bên cạnh những ưuđiểm mà cách học meta mang lại.
Về ưu điểm của Meta Learning:
− Về mặt thời gian
Meta learning giúp mô hình nhanh chóng thích ứng với các nhiệm vụ mới màkhông cần phải trải qua quá trình học từ đầu Điều này làm giảm đáng kể thờigian cần thiết so với các phương pháp học thông thường
− Về chất lượng nguồn dữ liệu
Mô hình có thể tận dụng tri thức đã học để giải quyết các vấn đề mới Điều nàylàm cho quá trình học trở nên hiệu quả và giảm yêu cầu về lượng dữ liệu đào tạo
− Về khả năng tổng quát hoá
Bằng cách học từ nhiều nhiệm vụ, mô hình meta learning có khả năng tích hợpđược nhiều loại kiến thức và kỹ năng Điều này tạo ra một mô hình linh hoạt và
đa nhiệm, có khả năng thích ứng với nhiều tình huống và yêu cầu khác nhau.Bên cạnh đó, người huấn luyện mô hình khi sử dung cách học siêu học này cũng
cần lưu ý một số nhược điểm của cách học này.
− Yêu cầu nhiều dữ liệu
Một số ứng dụng của meta learning đòi hỏi lượng lớn dữ liệu từ nhiều nhiệm vụkhác nhau để mô hình có thể học hiệu quả Điều này có thể là một thách thức khikhông có đủ dữ liệu sẵn có
− Sự phức tạp trong việc triển khai cách huấn luyện
Quá trình thiết kế và triển khai mô hình meta learning thường phức tạp hơn sovới các mô hình học thông thường Điều này đặt ra thách thức về mặt kỹ thuật
và quản lý dự án
− Khả năng bị overfiting
Do mô hình học từ ít dữ liệu cho mỗi nhiệm vụ, tồn tại nguy cơ overfitting Điềunày có thể xảy ra khi mô hình quá tối ưu cho dữ liệu đào tạo cụ thể mà không thểtổng quát hóa tốt cho các dữ liệu mới Tổng quát, mặc dù meta learning mang lạinhiều lợi ích, nhưng cũng đối mặt với những thách thức và hạn chế, đặc biệt làtrong việc quản lý dữ liệu và quá trình triển khai
Trang 37Nhìn chung, meta learning giúp mô hình phát triển khả năng học nhanh, linh hoạt
và chuyển tiếp kiến thức Thông qua quá trình tổng hợp kinh nghiệm từ nhiều nhiệm
vụ, mô hình học được biểu diễn tổng quát và đặc trưng có thể áp dụng cho nhiều loạitình huống Khả năng thích ứng của mô hình được đánh giá thông qua việc kiểm tratrên các nhiệm vụ mới, đảm bảo sự hiệu quả và linh hoạt của phương pháp này
2.4.3 Khái niệm Few-shot Learning
Few-shot learning [11] là một lĩnh vực trong máy học mà mô hình được đào tạo để
có khả năng thích ứng và thực hiện tác vụ mới dựa trên một số lượng nhỏ các ví dụ.Các tác vụ này thường gồm một hoặc vài lớp, mà mỗi lớp có rất ít dữ liệu huấn luyện.Phần lớn các mô hình few-shot learning sử dụng một kiến trúc cơ bản, thường làmột mạng nơ-ron sâu, để học biểu diễn của các lớp và thực hiện phân loại Kiến trúcnày có thể được thiết kế để học cách biểu diễn thông tin từ số lượng nhỏ các ví dụ, và
có khả năng tự động thích ứng với các tác vụ mới
Điểm nổi bật nhất của Few-shot Learning đó là sự xuất hiện của 2 loại tập dữ liệu:
Support set và Query set so với chỉ 1 tập set thông thường Có nghĩa là, thông
thường, một tập dữ liệu mình sẽ được chia làm hai phần: tập huấn luyện và tập kiểmtra Tuy nhiên, ở cách học chỉ từ một ít dữ liệu hay Few-shot Learning, tập dữ liệuthông thường sẽ được chia làm 2 tập Support set và Query set, trong mỗi tập cũng
sẽ được chia làm hai phần: tập huấn luyện và tập kiểm tra Support set chứa một sốlượng nhỏ các mẫu cho mỗi lớp và được sử dụng để đào tạo mô hình Query set chứacác mẫu mới mà mô hình sẽ được đánh giá sau quá trình đào tạo Để có thể dễ hiểuhơn, học viên đưa ra một ví dụ về một tập dữ liệu có 100 lớp 80 lớp sẽ được dùngtrong tập Support set và 20 lớp còn lại được dùng trong tập Query set
Quá trình huấn luyện cũng sẽ có phần thay đổi ít nhiều so với quá trình huấn
luyện thông thường Mô hình được đào tạo để học cách biểu diễn các lớp từ supportset và sau đó sử dụng kiến thức này để dự đoán lớp của các mẫu trong query set Mụctiêu của quá trình huấn luyện là tối ưu hóa khả năng tổng quát hóa của mô hình saocho nó có thể thích ứng nhanh chóng với các tập dữ liệu mới
Trong thực tế, tác giả Hassan Gharoun [11] chia cách học theo kiểu Few-shot
Learn-ing gồm ba phương pháp học theo meta-learnLearn-ing [10]:
− Phương pháp học dựa trên chỉ số đánh giá (metric-based)
− Phương pháp học dựa trên bộ nhớ (memory-based)
Trang 38− Phương pháp học dựa trên cách học (learning-based)
Cũng giống như mọi cách học khác, việc học từ một số ít dữ liệu hay Few-shot
Learning cũng có ưu và nhược điểm riêng Trước tiên về mặt ưu điểm:
− Hiệu quả với dữ liệu ít
Few-shot learning giúp mô hình học hiệu quả từ số lượng dữ liệu ít Điều này rấtquan trọng trong những tình huống khi không có sẵn lượng lớn dữ liệu đào tạo,như trong nhiều ứng dụng thực tế
− Chuyển giao kiến thức linh hoạt
Mô hình few-shot có khả năng chuyển giao kiến thức linh hoạt từ các nhiệm vụ
đã học đến các nhiệm vụ mới Điều này làm tăng tính chuyển giao và giảm đòihỏi về dữ liệu
− Tính linh hoạt và đa dạng:
Few-shot learning có thể được áp dụng cho nhiều loại nhiệm vụ và lĩnh vực khácnhau, từ nhận diện hình ảnh đến xử lý ngôn ngữ tự nhiên Mô hình có thể đượchuấn luyện để giải quyết nhiều loại vấn đề mà không cần đào tạo lại từ đầu
− Tiết kiệm thời gian và nỗ lực:
Few-shot learning giảm bớt thời gian và nỗ lực cần thiết để đào tạo mô hình, đặcbiệt là khi có sẵn số lượng lớn các mô hình trước đó đã được huấn luyện
Bên cạnh đó, Few-shot Learning cũng còn nhiều mặt hạn chế
− Nguy cơ Overfitting:
Với số lượng dữ liệu ít, có nguy cơ mô hình bị overfitting, đặc biệt là khi dữ liệuhuấn luyện không đại diện cho đủ biến thể của nhiệm vụ
− Khó khăn trong việc học đại diện tổng quát:
Mô hình có thể gặp khó khăn trong việc học được biểu diễn tổng quát từ số lượng
dữ liệu hạn chế, dẫn đến khả năng chuyển giao kém hiệu quả
− Đòi hỏi sự chăm chú trong việc thiết kế kiến trúc mô hình:
Few-shot learning đôi khi đòi hỏi sự chăm chú đặc biệt trong việc thiết kế kiếntrúc mô hình để đảm bảo tính linh hoạt và khả năng chuyển giao
− Phụ thuộc vào chất lượng dữ liệu:
Trang 39mô hình few-shot Nếu dữ liệu không đủ đại diện, mô hình có thể không thể họcđược biểu diễn chính xác và linh hoạt.
− Khả năng áp dụng hạn chế:
Few-shot learning có thể gặp khó khăn khi áp dụng cho những nhiệm vụ đòi hỏikiến thức chuyên sâu hoặc có đặc tính động cao và phức tạp Trong những trườnghợp này, mô hình cần có số lượng lớn dữ liệu hơn để hiệu suất tốt
Tóm lại, few-shot learning mang lại những ưu điểm quan trọng như hiệu suất tốtvới dữ liệu ít và khả năng chuyển giao kiến thức, nhưng cũng đặt ra những thách thứcđối với nguy cơ overfitting và đòi hỏi sự cân nhắc kỹ lưỡng trong việc thiết kế môhình và chất lượng dữ liệu Ngoài ra, few-shot learning giải quyết thách thức của việchọc từ ít dữ liệu bằng cách sử dụng các kỹ thuật như meta-learning, tăng cường dữliệu và sử dụng bộ nhớ để tạo ra mô hình có khả năng tự động học cách thích ứng vớicác tập dữ liệu mới và thực hiện phân loại hiệu quả
2.4.4 Cách phân biệt Transfer Learning, Meta Learning và
Few-shot Learning
Transfer Learning hay cách học chuyển tiếp [8] là một phương pháp mà một môhình được đào tạo trên một tập dữ liệu cụ thể và sau đó được chuyển tiếp để thựchiện tác vụ liên quan mà nó chưa được huấn luyện Mục tiêu của transfer learning làchuyển giao kiến thức từ một tập dữ liệu lớn (thường gọi là tập dữ liệu nguồn) để cảithiện hiệu suất trên một tập dữ liệu mới (thường gọi là tập dữ liệu đích)
Meta-Learning [10] hay cách học meta (học để học - learning to learn) sẽ tập trungvào việc học cách thích ứng nhanh chóng với các tập dữ liệu mới hoặc các tác vụmới Mục tiêu của meta-learning là tạo ra một mô hình có khả năng tự động học cáchgiải quyết các tác vụ mới từ số lượng nhỏ các ví dụ Nó thường được sử dụng trongfew-shot learning để giải quyết vấn đề của việc học từ ít dữ liệu
Few-Shot Learning [11] hay cách học từ ít dữ liệu là một dạng của meta-learning,tập trung vào việc xây dựng mô hình có khả năng phân loại các tác vụ mới dựa trênmột số lượng nhỏ các mẫu Mục tiêu của Few-shot learning là giải quyết vấn đề củaviệc học từ ít dữ liệu bằng cách sử dụng các kỹ thuật như transfer learning, siamesenetworks, hoặc memory-augmented networks để nhanh chóng thích ứng với các tập
dữ liệu hỗ trợ có kích thước nhỏ
Transfer learning, meta-learning và few-shot learning là ba khái niệm có liên quan,
Trang 40nhưng chúng có các mục tiêu và phương pháp khác nhau Few-shot learning là mộtloại của meta-learning, với mục tiêu cụ thể là giải quyết vấn đề của việc học từ ít dữliệu Meta-learning có thể sử dụng các kỹ thuật transfer learning trong quá trình họccách thích ứng với các tập dữ liệu mới Transfer learning có thể được sử dụng khôngnhất thiết trong meta-learning hoặc few-shot learning, mà có thể được áp dụng chonhiều tình huống khác nhau.
2.5 Pretrain model
2.5.1 Khái niệm
Hiện nay, trong lĩnh vực Trí tuệ nhân tạo (AI), có các model nổi tiếng được huấnluyện trên bộ các tập dữ liệu lớn (MNIST, CIFAR-100, ImageNet, …) và source codecũng như Weights của model được công khai cho cộng đồng (chủ yếu là trên GitHub).Chúng được gọi những Model đi kèm Weights như vậy là một Pretrained Model.Model mới sử dụng một phần hay toàn bộ pretrained model như một phần của nó
để học một nhiệm vụ (tasks) mới được gọi là Transfered Model
Những Pretrained Model như vậy thường được huấn luyện trên một hoặc một vài
bộ các tập dữ liệu nhất định, tương thích và cho độ chính xác cao với một task hoặcnhiều tasks (multi-task deep learning) nào đó mà nó được huấn luyện Các tasks màpretrained model đó được huấn luyện để thực hiện là source tasks
Nhiệm vụ của chúng ta là tạo ra một model mới để thực hiện một hoặc nhiều tasksnào đó Những tasks cần được thực hiện của model này có thể trùng hoặc không trùngvới tasks mà pretrained model được train (thường thì sẽ không trùng), chúng ta gọitasks này là target tasks
2.5.2 VGG16/VGG19
VGG16 là một mô hình mạng nơ-ron tích chập được đề xuất bởi K Simonyan và
A Zisserman từ Đại học Oxford trong bài báo “Mạng lưới kết hợp rất sâu để nhậndạng hình ảnh quy mô lớn” [12] Mô hình đạt được độ chính xác trong bài kiểm tratop 5 là 92,7% trong ImageNet, đây là tập dữ liệu của hơn 14 triệu hình ảnh thuộc
1000 lớp Đây là một trong những mô hình nổi tiếng được nộp cho ILSVRC-2014
Nó cải tiến hơn AlexNet bằng cách thay thế các bộ lọc có kích thước hạt nhân lớn (11
và 5 trong lớp chập đầu tiên và thứ hai, tương ứng) bằng nhiều bộ lọc kích thước hạtnhân 3 × 3 lần lượt VGG16 đã được đào tạo trong nhiều tuần và đang sử dụng GPU