Đánh giá mô hình DIET

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 42)

D a trên ự thực nghi m c a tác gi mô hình DIET [13] v i b d u NLU-ệ ủ ả ớ ộ ữ liệ Benchmark [21] bao g m 25,716 câu tho i v i 64 intent và 54 entity t k t qu ồ ạ ớ đạ ế ả

tốt hơn đáng kể khi so sánh v i mô hình HERMIT [22]ớ , mô hình đã được ch ng ứ

Hình 2.8. So sánh mô hình DIET và mô hình HERMIT [13] Mô hình DIET s d ng ki n trúc linh ho t có th d ử ụ ế ạ ể ễ dàng thay đổi các thành phần bên trong, do đó ếk t qu ả đánh giá mô hình được th hi n qua các ể ệ bi n ế thể ằ b ng s ự thay đổi trong thành phầ Sparse feature, Dense feature, n Mask loss, k t qu và ế ả được so sánh thông qua điểm F1-score:

Hình 2.9. Đánh giá các biến th cể ủa mô hình DIET [13]

Qua b ng trên có th ả ể nhận th y DIET ấ có s d ng Spare feature và Dense ử ụ feature v i Dớ ense feature là ConveRT cho được k t qu t t nhế ả ố ất và đặc biệt thời gian hu n luy n ấ ệ ít hơn 6 lần so với sử ụ d ng mô hình BERT.

CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶ ỨT NG D NG Ụ CHATBOT

3.1 Gi i thiớ ệu Rasa Framework

Rasa Framework (23) là m t mã ngu n m giúp xây d ng Chatbot s dộ ồ ở ự ử ụng trí tu nhân t oệ ạ . Được ra đời vào năm 2016 và được vi t b ng ngôn ng l p trình ế ằ ữ ậ Python, v i s h ớ ự ỗ trợ ủ c a cộng đồng người dùng và được c p nh liên t c Rasa ậ ật ụ đang ngày càng phát triển và tr thành m t trong nh ng nở ộ ữ ền t ng xây d ng Chatbot ả ự l n nh và hoàn toàn mi n phí. ớ ất ễ

Rasa bao g m ồ nhiều thành phần trong đó có 2 thành ph n chính là thành phầ ần x lý ngôn ng t nhiên (NLU) và thành ph n qu n lý h i tho i (DM). ử ữ ự ầ ả ộ ạ

Hình 3.1. Sơ đồ các thành ph n trong Rasa Framework ầ

- NLU: là ph n x lý phân loầ ử ại ý định và trích xu t th c thấ ự ể. Được th ể hiện ở kh i NLU Pipeline, tin nh n cố ắ ủa người dùng được x lý qua m t quy trình g m ử ộ ồ nhi u ề bước g i là pipeline. ọ

- Dialogue management: là thành ph n quyầ ết định s ự kiện ti p theo trong ế cuộc h i tho i d a vào ng c nh hi n tộ ạ ự ữ ả ệ ại. DM được th hi n b i kh i Dialogue ể ệ ở ố Policies.

Bên cạnh đó Rasa bao gồm các thành ph n khác: ầ

- Rasa Action Server: là thành ph n tùy ch n, n u h ầ ọ ế ệ ốth ng c n x lý các ầ ử tác v ụ logic như tiền x ử lý trước khi tr lả ời người dùng ho c gặ ọi đến server khác thông qua API để ấ l y d li u. Rasa Action Server s d ng Rasa SDK vi t b ng ữ ệ ử ụ ế ằ Python để xây d ng. ự

- Tracker stores: thành phần lưu trữ ị l ch s tin nh n, slot trong database ử ắ hoặc b ộ nhớ t m, cung cạ ấp thông tin để Rasa action server x ử lý như trích xuất liên k t các tin nhế ắn trước để trả ời ngườ l i dùng m t cách chính xác nh t, ho c phân ộ ấ ặ tích cuộc hội thoại.

Hiện nay có r t nhiấ ều phương pháp làm Chatbot do bên th ba cung cứ ấp như

Chatfuel, Sparrow, ManyChat…nhưng trong đề tài luận văn này, tôi sẽ ử ụng s d

Rasa framework để xây dựng chương trình và dưới đây là những lý do s d ng ử ụ

Rasa xây d ng Chatbot: để ự

- D dàng tích h p, ch nh s aễ ợ ỉ ử : ta có th t c u hình b t kì pipeline nào trong ể ự ấ ấ phần NLU pipeline để phù h p v i ngôn ng t ng qu c gia ho c mợ ớ ữ ừ ố ặ ục đích cụ ể th , Rasa cung cấp các tính năng có sẵn thêm vào đó người dùng có th t tể ự ạo tính năng riêng, chính vì Rasa là mã ngu n m cho nên s d dàng ch nh s a framework, có ồ ở ẽ ễ ỉ ử thể tùy ý tích hợp các tính năng bên ngoài và hàm xử lý nào đó.

- Tích h p v i các h ợ ớ ệ thống có s nẵ : Rasa cung c p Rasa Action giúp ấ Chatbot có th k t nể ế ối đến các h ệ thống khác thông qua API ho c truy c p vào ặ ậ database, gi s Chatbot bán hàng có th l y giá m i nh t trên h ả ử ể ấ ớ ấ ệ thống qu n lý ả bán hàng c a doanh nghiủ ệp.

- Khả năng học qua tương tác: thay vì vi c li t kê t t c ệ ệ ấ ả ý định và câu tr ả lời tương ứng, trong quá trình hu n luyấ ện người dùng có th giao ti p tr c ti p vể ế ự ế ới Chatbot đánh giá và cung cấp câu tr l i phù h p vả ờ ợ ới ý định của người dùng.

- K t n i d dàng v i các ng d ng chat khácế ố ễ ớ ứ ụ : Rasa cho phép ng d ng ứ ụ liên k t v i các n n tế ớ ề ảng chat n i tiổ ếng như Facebook Messenger, Slack, Telegram,

- Hiệu su t cao: v i viấ ớ ệc tích h p nhi u ki n trúc hiợ ề ế ện đại nhất như DIET, TED s d ng mô hình Transformer giúp cho Chatbot c a Rasa tr nên thông minh ử ụ ủ ở hơn và tối ưu hóa được th i gian ờ huấn luy n mệ ột cách đáng kể khi so sánh v i các ớ n n t ng khác. ề ả

- Miễn phí và c ng ng l nộ đồ ớ : Rasa là mã ngu n m cho nên s không mồ ở ẽ ất phí để xây d ng ng dự ứ ụng, cũng chính vì lý do đó nhiều người d dàng tiễ ếp c n và ậ xây dựng được các cộng đồng chia s ẻ kiến th c, thu t toán tứ ậ ối ưu và thậm chí d ữ liệu m u có s n, giúp Rasa ngày phát tri n và ổn định. ẫ ẵ ể

3.2 C u trúc cấ ủa Chatbot Nhất Nam

3.2.1 Thi t k t ng quát ế ế ổ

Ứng d ng Chatbot ụ Nhất Nam hướng đến người dùng chưa dùng sản ph m k ẩ ế

toán Nh t Nam c n tham kh o thông tin s n phấ ầ ả ả ẩm, thông tin liên quan đến doanh nghiệp, và hướng đến người dùng đã sử ụ d ng c n hầ ỏi đáp về cách dùng s n phả ẩm và truy xu t thông tin b o trì, b o hành c a h . Bài toán mà tôi xây d ng s tấ ả ả ủ ọ ự ẽ ập trung vào các chức năng tư vấn, h ỗ trợ bán hàng, hướng d n s d ng và truy xuẫ ử ụ ất

thông tin liên quan đến doanh nghi p. Các chệ ức năng chính bao gồm:

- Thông tin các loại sản ph m k toán ẩ ế - H i giá s n ph m ỏ ả ẩ

- Tư vấn bán hàng

- Thông tin doanh nghi p ệ - T o liên h n tạ ệ đế ổng đài viên - Thông tin b o trì, b o hành ả ả - Hỏi đáp kiến th c ứ

Hình 3.2. Cấu trúc h ệ thống Chatbot Nh t Nam ấ

Ở website Nh t Nam sấ ẽ thi t k giao di n dành cho Chatbotế ế ệ , người dùng có thể nh p tin nh n, tin nh n s đư c gậ ắ ẵ ẽ ợ ửi đến Rasa thông qua Api. Các thành ph n ầ bên trong Chatbot Rasa s ẽ được đ m nhiả ệm như sau:

- Agent: là thành ph n trung gian giao ti p, truy n tầ ế ề ải thông điệp đến các thành ph n khác, các tin nhầ ắn đầu vào s ẽ đi qua Agent sau đó từ Agent s chuyẽ ển

đến các thành phần NLU, Dialog management, Rasa action server để ử x lý tin

nh n.ắ

- NLU: có nhi m v vector hóa d ệ ụ ữ liệu để máy có th ể hiểu ngôn ng con ữ ngườ ừ đó có thểi t phân loại ý định và trích xu t ra các thông tin. Ví d ấ ụ câu đầu vào người dùng h i “Giá phầỏ n m m k toán doanh nghiề ế ệp bao nhiêu?” thì h ệ thống s vector hóa nó rẽ ồi đối chi u v i t p d ệu training đã được gán nhãn để ế ớ ậ ựli đưa ra ý định “bao_gia” (ý định h i v giá s n ph m). Ti p theo nỏ ề ả ẩ ế ếu câu đầu vào chứa entity h thốệ ng s trích xu t ra, ví d câu trên có entity là s n phẽ ấ ụ ả ẩm “kế toán doanh nghiệp”.

- Dialog management (DM): d a vào các luự ật quy định trong h ệ thống hoặc so sánh ng c nh h i thoữ ả ộ ại với các ng cữ ảnh dùng để hu n luy n trưấ ệ ớc đó, DM s ẽ quyết định hành động ti p theo là gì. Ví d v i intent ế ụ ớ “bao_gia” ự d a vào các cuộc

h i thoộ ại được khai báo trong story h ệ thống s d ẽ ự đoán được hành động ti p theo ế là “utter_bao_gia” (trả ờ l i giá s n ph m cho khách hàng). ả ẩ

- Rasa action server: là thành ph n quan tr ng trong x ầ ọ ử lý logic, để ử x lý các nghi p v ệ ụ phức tạp mà DM không th x ể ử lý như lấy giá s n ph m t h ả ẩ ừ ệ thống khác, x lý tính toán ph c t p khi hoàn thành form nh p li u. Trong ử ứ ạ ậ ệ ứng d ng này, ụ Rasa action server s có nhi m v trích xu t d u t h ẽ ệ ụ ấ ữ liệ ừ ệ thống qu n lý bán hàng ả và điều hướng thông tin liên h n h tr ệ đế ỗ ợ viên ngay khi có người dùng đăng kí thông tin.

3.2.2 Sơ đồ quy trình hoạt động c a Chatbot Nh t Nam ủ ấ

Hình 3.3. Sơ đồ quy trình hoạt động c a Chatbot Nh t Nam ủ ấ

Mô t chi tiả ết các thành phần:

b. Tiền x lý: thành ph n này Rasa s x lý câu u vào cử Ở ầ ẽ ử đầ ủa người dùng

qua thành ph n ầ Tokenizer để tách câu đầu vào thành các token như sau “Giá”,

“kế_toán”, “doanh_nghiệp”, “bao_nhiêu”. Bước ti p theo chuy n các token ế ể thành d ng vector qua thành phạ ần đặc trưng hóa (Featurizer) để Chatbot có th ể phân loại ý định và trích xuất thực th . ể

c. Phân loại ý định: phân tích và d ự đoán ý định d a trên tự ập ý định đã được định nghĩa trước. Ví d câu h i “Giá kếụ ỏ toán doanh nghi p bao nhiêu? Chatbot ệ ” d ự đoán ý định “bao_gia” ớ ộv i đ ự tin (confidence) là 98%. t

d. Trích xu t th c th :ấ ự ể Chatbot s ẽ nhận d ng các th c th trong câu h i nh ạ ự ể ỏ ờ vào t p các th c th ậ ự ể đã được định nghĩa trước. Ví d trong câu h i trên, Chatbot ụ ỏ s trích xuẽ ất được “kế toán doanh nghiệp” là một thực thể ủa c “san_pham”.

e. Chính sách (Policy): Chatbot s dẽ ựa vào ý định và th c th ự ể để quyết định hành động ti p theo các chính sách, có 3 chính sách là chính sách d a vào quy tế ự ắc

(Rule-based policy), chính sách ghi nh (Memorization policy) và chính sách TED ớ

(TED policy), trong đó Rule-based policy s ẽ được ưu tiên nhấ ếp đót ti là Memory policy và TED policy

- Rule-based policy: là chính sách quyết định hành động ti p theo d a vào ế ự các quy tắc được khai báo s n, gi s ẵ ả ử người dùng g i tin nhử ắn ý định chào h i, bot ỏ s luôn chào lẽ ại bất kể ở ngữ ả c nh nào.

- Memorization policy: n u h th ng không phát hi n h i tho i trùng khế ệ ố ệ ộ ạ ớp v i b t kì quy tớ ấ ắc được định nghĩa sẵn nào Chatbot s d a vào các kẽ ự ịch b n có sả ẵn đã đượ khai báo để ự đoán hành độc d ng ti p theo. ế

- TED policy: nếu hành động ti p theo không tìm th y trong Rule policy ế ấ hoặc Memorization policy, h th ng s s d ng k thu t có tên Transformer ệ ố ẽ ử ụ ỹ ậ Embedding Dialogue (TED) (24) d để ự đoán hành động đúng nhấ ựt d a theo ng ữ cảnh trước đó và các kịch bản được khai báo

f. Hành động (Action): Là quá trình Chatbot t ng h p k t qu c a các thành ổ ợ ế ả ủ phần trên d a theo các chính sách tr v k t qu ự để ả ề ế ả cho người dùng. Đố ới v i câu hỏi “Giá kế toán doanh nghiệp bao nhiêu” Chatbot s ẽ đưa ra câu trả ờ l i phù hợp nhất là “utter_bao_gia_phan_mem_ke_toan_doanh_nghiep”, k t h p v i viế ợ ớ ệc truy xuất dữ liệ ừ ệ thố u t h ng doanh nghiệp để có th lể ấy được giá s n ph m chính ả ẩ

xác nh t, Chatbot s v ấ ẽ trả ề cho người dùng câu tr lả ời tương ứng “Phần m m k ề ế toán doanh nghiệp giá 6.000.000 đồng”.

3.3 Xây d ng d ự ữ liệu Chatbot

Do ng d ng Chatbot ứ ụ Nhất Nam ch ỉ phục v cho m t doanh nghi p c ụ ộ ệ ụ thể nên s s d ng mi n d ẽ ử ụ ề ữ liệu đóng được thu th p t ậ ừ những cu c h i tho i c a khách ộ ộ ạ ủ hàng trước đó và câu trả l i s ờ ẽ được chuyên viên tư vấn t o ra. Trong quá trình xây ạ d ng Chatbot k ch bự ị ản ẽ đượs c vi t b ng tay ho c thông qua hế ằ ặ ọc tương tác (Interactive Learning) s d ng công c Rasa X h ử ụ ụ ỗ trợ giao di n tr c quan giúp các ệ ự chuyên viên tạo được k ch bị ản m t cách nhanh nh ộ ất.

Hình 3.4. Giao di n Rasa X s d ng tệ ử ụ ạo k ch b n ị ả

Quy trình xây d ng h ự ệ thống Chatbot s bao gẽ ồm các bước chính sau đây:

3.3.1 Xây dựng ý định (intent)

B các câu h i m u cộ ỏ ẫ ủa người dùng s ẽ đượ ậc t p h p l i t các cu c h i thoợ ạ ừ ộ ộ ại của người dùng trao đổ ới v i nhân viên h ỗ trợ, giúp b d ộ ữ liệu chính xác nh t vấ ới thự ếc t ngư i dùng hờ ỏi. Kèm theo đó hỗ ợtr viên s cung c p nh ng m u câu h i ẽ ấ ữ ẫ ỏ mớ ểi đ đả m b o tả ập ý định phong phú và đầy đủ nh t. ấ

Chatbot Nhất Nam bao g m t ng c ng ồ ổ ộ 36 intent v i 1024 câu mớ ẫu, được khai báo trong file nlu.yml, dưới đây là ví dụ mẫu c a 2 intent ủ bao_tri_phan_mem (hỏi v b o trì ph n m m) và ề ả ầ ề hoa_don_dien_tu (hỏi về hóa đơn điệ ửn t )

Hình 3.5. Khai báo intent trong file nlu.yml

Có th ể thấy là trong ti ng Vi t khách hàng s d ng nhi u t ế ệ ử ụ ề ừ viế ắt như t t “không” viế ắt t t thành “k” “bao nhiêu”, viế ắt t t thành “bn”… do vậy vi c t n ệ ậ d ng nh ng cu c h i tho i trong th c t vào quá trình training s giúp Chatbot ụ ữ ộ ộ ạ ự ế ẽ hiểu ý định người dùng t t hơn. ố

3.3.2 Xây d ng th c th (entity) ự ự ể

Entity là các th c th ự ể thông tin đặc trưng quan trọng được trích xu t theo các ấ ý định của người dùng, các thông tin được trích ch n trong tin nh n cọ ắ ủa người dùng được h thệ ống lưu lạ ừ đó giúp hệ ối t th ng quyết định hành động ti p theo ế phụ thu c vào entity trích chọộ n và ng cữ ảnh đang diễn ra.

Trong Chatbot Nhất Nam s bao gẽ ồm các entity được khai báo trong domain.yml như trong hình dưới đây:

Hình 3.6. Khai báo entity trong file domain.yml

Entity s ẽ được trích ch n tr c ti p trong các ví d m u cọ ự ế ụ ẫ ủa intent theo định d ng, ví dạ ụ trong câu “Phần m m k toán doanh nghi p giá th nào nhề ế ệ ế ỉ?” có thực thể “kế toán doanh nghi p”ệ là mộ ảt s n phẩm, khi đó câu trên đổi thành “Phần mềm [kế toán doanh nghi p](san_pham)ệ giá th nào nhế ỉ”. Dưới đây là ví dụ entity trong chương trình:

Hình 3.7. Khai báo intent có ch a entity trong file nlu.yml ứ

3.3.3 Xây d ng câu tr l i cho Chatbot ự ả ờ

Khi người dùng đưa ra câu hỏi, Chatbot s x lý phân lo i câu h i và ph n ẽ ử ạ ỏ ả h i câu tr l i phù h p v i câu h i và yêu cồ ả ờ ợ ớ ỏ ầu đó. Rasa có th xây d ng ph n hể ự ả ồi cho Chatbot thông qua các hành động (action). Action này có th cung c p thông ể ấ tin mong muốn cho người dùng dựa vào các ý định, slot và d u lữ liệ ấ ừ cơ sởy t d ữ

liệu thông qua k t n i API. Có 2 loế ố ại hành động để ử x lý câu tr l i trong Chatbot ả ờ Nhất Nam, loại hành động mặc định (default actions) và hành động tùy bi n ế (custom actions).

3.3.3.1 Hành động mặc đ nhị

Là các hành động d ự đoán và đưa ra câu trả ờ ự l i d a vào ý định và th c th ự ể được trích ch n cọ ủa người dùng, được x lý thành ph n Dialog management ử ở ầ đã được Rasa cung c pấ . Hành động tiếp theo được quyết định b i ở các chính sách đó

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 42)

Tải bản đầy đủ (PDF)

(72 trang)