Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
Báo cáo nghiên cứu Q3
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent
Detection) và sửa lỗi chính tả trong tiến...
Nội dung trình bày
• Giới thiệu về NLP, ứng dụng của NLP
• Lý do chọn đề tài
• Các vấn đề cần giải quyết
• Bài toán xác đị...
NLP là gì
• Natural Language Processing
• Là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng
trên ngôn ngữ của c...
NLP có còn đang sôi động ?
4
Các giải pháp phần mềm ứng dụng NLP sẽ giúp thị trường tăng trưởng từ $300 million (2018) đến...
Ứng dụng của NLP
5
#1. Sentiment Analysis
Ứng dụng của NLP
6
#2. Chatbots
• Trò chuyện -> Biết được sở thích, tính cách của người dùng
• Trợ lý ảo
• Giải đáp thắc m...
Ứng dụng của NLP
7
#3. Customer Service
Ứng dụng của NLP
8
#4. Managing the Advertisement Funnel
• Sử dụng NLP để phân tích lịch sử truy cập website, thông tin cá...
Ứng dụng của NLP
9
#5. Market Intelligence
Thị trường kinh doanh luôn biến động, và bị ảnh hưởng bởi kiến thức thị trường,...
Lý do chọn đề tài
10
Mục tiêu là xây dựng hệ thống chatbot, AI Assistant, smart home.
Cùng với sự phát triển của NLP, các ...
Các vấn đề cần giải quyết
1. Bài toán xác định ý định người dùng (Intent detection)
2. Bài toán nhận dạng thực thể (Named-...
Các vấn đề cần giải quyết
1. Bài toán xác định ý định người dùng (Intent detection)
2. Bài toán nhận dạng thực thể (Named-...
Xác định ý định người dùng (Intent detection)
• Ý định(Intent) là gì ?
Điều mà người dùng mong muốn chatbot,
smart home, a...
Vấn đề gặp phải là gì ? (Intent detection)
Ví dụ người dùng muốn hỏi thời tiết hôm nay:
• Thời tiết hôm nay thế nào ?
• Hô...
Vấn đề gặp phải là gì ? (Intent detection)
• Xử lý vấn đề sai chính tả
• Sai dấu, x,s,l,n...
• Các từ viết tắt, teencode
15
Cách giải quyết bài toán xác định Intent
• Xác định số lượng intent (hữu hạn hay vô hạn)
– Closed domain→ số lượng intent ...
Cách giải quyết bài toán xác định Intent
17
Mô hình hệ thống phân lớp intent
Chuẩn bị dữ liệu huấn luyện
• Mỗi intent chuẩn bị từ 2-5 mẫu câu
18
intent Câu ví dụ
hoi_thoi_tiet Mai mưa không em ?
hoi_...
Tiền xử lý
Tách từ (Word segmentation)
• Mục đích để tạo vector ngữ nghĩa của câu.
Khác với tiếng anh mỗi từ có nghĩa cách...
Tiền xử lý
20
Xử lý sai chính tả (Spell Correction)
Sai chính tả thì chính con người còn khó hiểu huống chi là máy
Rất tiế...
Tiền xử lý
• Xử lý các từ viết tắt
user: Good night
machine: Good night! I love u
user: G9
machine:%#$&%#$%@
21
Trích xuất đặc trưng
22
Trích xuất đặc trưng(Feature Extraction)
• Biểu diễn ngôn ngữ loài người dưới dạng số sao cho có nghĩa
và machine có thể h...
Trích xuất đặc trưng(Feature Extraction)
• Bag of Words hoạt động như thế nào ?
• Ví dụ:
– The quick brown fox jumps over ...
Trích xuất đặc trưng(Feature Extraction)
• Tuy nhiên thực tế nhận thấy trong 1 câu tiếng Việt, 1 từ được
lặp lại nhiều lần...
Trích xuất đặc trưng(Feature Extraction)
• TF-IDF
– TF =
26
• f(t,d) - số lần xuất hiện từ t trong 1 câu (d)
• mẫu số: tổn...
Trích xuất đặc trưng(Feature Extraction)
27
The quick brown fox jumps over the lazy dog
and(*)
Never jump over the lazy do...
Huấn luyện mô hình (Train Model)
28
Đưa về bài toán Text Classification
intent Câu ví dụ
hoi_thoi_tiet Mai mưa không em ?
...
Huấn luyện mô hình (Train Model)
• Lựa chọn mô hình
• Naive Bayes
• SVM (more data)
• SGDClassifier(more data)
• RF...
29
Kết quả bài toán Intent Detection
30
Feature(RAW) Target
Hôm nay trời đẹp không ? hoi_thoi_tiet
Hôm nay thời tiết thế nào ...
Kết quả bài toán Intent Detection
• Với những câu không có trong training data vẫn có thể xác
định chính xác.
• Nóng quá, ...
Nhưng ....
32
Tiền xử lý
33
Xử lý sai chính tả (Spell Correction)
Sai chính tả thì chính con người còn khó hiểu huống chi là máy
Rất tiế...
Giải quyết như thế nào ?
34
Bài toán sửa lỗi chính tả (Spell Correction)
• Phương pháp giải quyết đơn giản nhất
35
http://norvig.com/spell-correct.html
Bài toán sửa lỗi chính tả (Spell Correction)
36
Ưu điểm Hạn chế
Dễ dàng cài đặt Cần bộ từ điển tiếng Việt hoàn chỉnh(Để là...
Bài toán sửa lỗi chính tả (Spell Correction)
• Ứng dụng Deep Learning vào giải quyết bài toán
• Kỹ thuật sử dụng seq2seq (...
RNN là gì ?
• RNN = Recurrent neural network = Mạng nơ-ron hồi quy
• Là một thuật toán được chú ý rất nhiều bởi kết quả tố...
Ý tưởng của RNN
• Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả
đầu ra là độc lập với nhau.
• Nếu coi bài to...
RNN là gì ?
• Với những hạn chế của mạng nơ-ron truyền thống, RNN đã ra
đời.
40
Mạng nơ-ron hồi quy A(hidden layer)
Đầu ra...
RNN là gì ?
41
h(t) = f(U*x(t) + W*h(t-1) + b)
h1 = f(U*x1 + W*(h0) + b)
h0 = f(U*x0 + b)
h2 = f(U*x2 + W*(h1) + b))
f chí...
Ưu điểm của RNN
• Điểm nổi bật của RNN chính là ý tưởng kết nối thông tin phía trước để dự
đoán kết quả hiện tại.
• Ví dụ:...
Hạn chế của RNN
Ví dụ: Tôi sinh ra ở Đức nên tôi nói tiếng ...
43
Về mặt lý thuyết thì RNN có khả năng xử lý long-term dep...
Sự ra đời của LSTM(Long Short Term Memory)
• Được giới thiệu bởi Hochreiter & Schmidhuber (1997)
• Giải quyết được vấn đề ...
Sự ra đời của LSTM(Long Short Term Memory)
• Được giới thiệu bởi Hochreiter & Schmidhuber (1997)
• Giải quyết được vấn đề ...
LSTM là gì
• LSTM đưa vào mạng nơ-ron trạng thái nơ-ron (cell state ) để
lưu trữ và lan truyền các thông tin có ích (Giống...
LSTM là gì
47
LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái nơ-ron bởi các gate
Forget Gate ...
LSTM là gì
• B2: Bước này quyết định xem thông tin mới nào sẽ được lưu.
• Gồm 2 phần: input gate layer để quyết định giá t...
LSTM là gì
• B3:Cập nhật trạng thái nơ-ron cũ (old cell state)
49
LSTM là gì
• B4: Cuối cùng tính output. Chính là cell state nhưng vẫn có
sàng lọc.
• Xác định phần nào của cell state nên ...
Chốt lại LSTM là gì
• Về cơ bản LSTM không khác RNN nhiều
• Nhưng nhiều hidden layer hơn
• Mấu chốt ở bộ nhớ LSTM được gọi...
Tuy nhiên....
52
Kỹ thuật Bidirectional LSTM (BiLSTM)
• Liệu rằng từ hiện tại chỉ liên quan đến từ phía trước.
Ví dụ: Tối qua di chơi ở Hạ ...
Kỹ thuật Bidirectional LSTM (BiLSTM)
54
h(t) = h(t) + h(t)
Tuy nhiên LSTM thôi chưa đủ để giải quyết bài toán sửa lỗi
chính tả ....
55
Bản chất của LSTM
• Mặc dù input của LSTM, RNN có thể là sequence nhưng output
bản chất không phải là sequence
• Chính xác...
Sự ra đời của sequence-to-sequence
• RNN Encoder – Decoder/ LSTM Encoder – Decoder
57
Sequence to Sequence
Pha 1: Encoder ...
Sự ra đời của sequence-to-sequence
58
Sequence to Sequence
Pha 2: Decoder sẽ sinh lần lượt từng từ cho chuỗi đầu vào theo ...
Tuy nhiên nhược điểm của sequence to sequence là ...
59
60
Nhược điểm của seq2seq
61
• Seq2Seq yêu cầu LSTM decoder sử dụng toàn bộ thông tin encoder.
• Và đương nhiên là encoder cũ...
Xuất hiện của Decoder + Attention
62
hdec(t) = f(hdec(t-1), y(t-1), c(t) )
Attention đánh lại trọng số cho từng phần tử tr...
Tiến hành áp dụng thực tế
1. Chuẩn bị data
2. Tiền xử lý
3. Tạo data noise
4. Code model
5. Tiến hành training
6. Xem kết ...
Tiến hành áp dụng thực tế
• Data: http://viet.jnlp.org/download-du-lieu-tu-vung-corpus
~50MB
• Sử dụng tensorflow GPU
• Py...
Kết quả thực nghiệm
65
Kết quả thực nghiệm
66
Kết quả thực nghiệm
67
Kết quả thực nghiệm
68
Kết quả thực nghiệm
69
Kết quả thực nghiệm
70
Kết quả thực nghiệm
71
Kết quả thực nghiệm
72
Với những từ mới lại detect thành từ sai chính tả.
Kết quả thực nghiệm
73
Một số vấn đề gặp phải khi nghiên cứu
• Thời gian làm sạch data, tạo noise data mất nhiều thời gian.
• Thời gian nghiên cứ...
Phương hướng phát triển
• Nâng cao độ chính xác Model hiện tại
• Có thể thay đổi BagofWord bằng Word2Vec…
• Giải quyết bài...
Phần hỏi đáp
76
77
Upcoming SlideShare
Loading in …5
×

Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction)

645 views

Published on

Nghiên cứu quý 3 của công ty GMO-Z.com VietnamLab.
Chủ đề: Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction)

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction)

  1. 1. 1 Báo cáo nghiên cứu Q3 Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗi chính tả trong tiếng Việt (Spell Correction) 1 ThanhTT thanhtt@vietnamlab.vn HN: 2018-09-21 https://vietnamlab.vn/ https://codetudau.com/
  2. 2. Nội dung trình bày • Giới thiệu về NLP, ứng dụng của NLP • Lý do chọn đề tài • Các vấn đề cần giải quyết • Bài toán xác định ý định người dùng (Intent Detection) • Bài toán sửa lỗi chính tả (Spell Correction) • Một số khó khăn gặp phải • Phương hướng phát triển 2
  3. 3. NLP là gì • Natural Language Processing • Là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. • NLP là 1 trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ, giao tiếp. 3
  4. 4. NLP có còn đang sôi động ? 4 Các giải pháp phần mềm ứng dụng NLP sẽ giúp thị trường tăng trưởng từ $300 million (2018) đến $5.4 billion
  5. 5. Ứng dụng của NLP 5 #1. Sentiment Analysis
  6. 6. Ứng dụng của NLP 6 #2. Chatbots • Trò chuyện -> Biết được sở thích, tính cách của người dùng • Trợ lý ảo • Giải đáp thắc mắc, tư vấn sản phẩm, dịch vụ cho khách hàng
  7. 7. Ứng dụng của NLP 7 #3. Customer Service
  8. 8. Ứng dụng của NLP 8 #4. Managing the Advertisement Funnel • Sử dụng NLP để phân tích lịch sử truy cập website, thông tin cá nhân người dùng • Đưa ra những quảng cáo phù hợp với từng người • Hiển thị quảng cáo với những đối tượng phù hợp ...
  9. 9. Ứng dụng của NLP 9 #5. Market Intelligence Thị trường kinh doanh luôn biến động, và bị ảnh hưởng bởi kiến thức thị trường, thông tin kinh doanh, báo cáo kinh doanh của các công ty, tổ chức. -> NLP giúp theo dõi, giám sát thông tin thị trường, trích xuất thông tin quan trọng
  10. 10. Lý do chọn đề tài 10 Mục tiêu là xây dựng hệ thống chatbot, AI Assistant, smart home. Cùng với sự phát triển của NLP, các hệ thống sử dụng NLP càng thông minh hơn, càng có nhiều người quan tâm hơn Thị trường Việt Nam còn rất nhiều cơ hội.
  11. 11. Các vấn đề cần giải quyết 1. Bài toán xác định ý định người dùng (Intent detection) 2. Bài toán nhận dạng thực thể (Named-entity recognition) 11
  12. 12. Các vấn đề cần giải quyết 1. Bài toán xác định ý định người dùng (Intent detection) 2. Bài toán nhận dạng thực thể (Named-entity recognition) 12
  13. 13. Xác định ý định người dùng (Intent detection) • Ý định(Intent) là gì ? Điều mà người dùng mong muốn chatbot, smart home, assistant thực hiện. • Intent được xác định sẽ quyết định kịch bản của đoạn hội thoại tiếp theo Xác định sai: ↪︎ Phản hồi không thích hợp → người dùng sẽ không hài lòng → 🤛 13
  14. 14. Vấn đề gặp phải là gì ? (Intent detection) Ví dụ người dùng muốn hỏi thời tiết hôm nay: • Thời tiết hôm nay thế nào ? • Hôm nay mưa không em ơi ? • Thời tiết khó chịu nhỉ ? • Hôm nay không mưa à ? .... • Làm sao để có thể nhận biết được những cách diễn đạt khác nhau cho cùng 1 intent ? 14
  15. 15. Vấn đề gặp phải là gì ? (Intent detection) • Xử lý vấn đề sai chính tả • Sai dấu, x,s,l,n... • Các từ viết tắt, teencode 15
  16. 16. Cách giải quyết bài toán xác định Intent • Xác định số lượng intent (hữu hạn hay vô hạn) – Closed domain→ số lượng intent là hữu hạn • Xác định intent bằng cách sử dụng phương pháp phân loại văn bản(Text classification) 16 intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi
  17. 17. Cách giải quyết bài toán xác định Intent 17 Mô hình hệ thống phân lớp intent
  18. 18. Chuẩn bị dữ liệu huấn luyện • Mỗi intent chuẩn bị từ 2-5 mẫu câu 18 intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi ví dụ tập huấn luyện hệ thống chatbot
  19. 19. Tiền xử lý Tách từ (Word segmentation) • Mục đích để tạo vector ngữ nghĩa của câu. Khác với tiếng anh mỗi từ có nghĩa cách nhau bởi space. Ví dụ: Tôi yêu xử lý ngôn ngữ tự nhiên Tách theo âm tiết: Tôi | yêu | xử | lý | ngôn | ngữ | tự | nhiên Tách theo từ: Tôi | yêu | xử_lý | ngôn_ngữ | tự_nhiên Sử dụng phương pháp pointwise cho tách từ tiếng Việt https://www.scribd.com/fullscreen/342411823?access_key=key-UJOfjnzF9fZfZiAgnaR8 19
  20. 20. Tiền xử lý 20 Xử lý sai chính tả (Spell Correction) Sai chính tả thì chính con người còn khó hiểu huống chi là máy Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T) -> Việc gì khó quá thì bỏ qua.
  21. 21. Tiền xử lý • Xử lý các từ viết tắt user: Good night machine: Good night! I love u user: G9 machine:%#$&%#$%@ 21
  22. 22. Trích xuất đặc trưng 22
  23. 23. Trích xuất đặc trưng(Feature Extraction) • Biểu diễn ngôn ngữ loài người dưới dạng số sao cho có nghĩa và machine có thể hiểu được. • Word2Vec, One-hot Encoding, Bag of Words... • Hiện tại sử dụng Bag of Words(BoW) để giải quyết vấn đề này. – Lý do: Lượng data hiện tại ít, đơn giản, dễ dàng cài đặt – Nếu có nhiều dữ liệu thì Word2Vec là lựa chọn hàng đầu. 23
  24. 24. Trích xuất đặc trưng(Feature Extraction) • Bag of Words hoạt động như thế nào ? • Ví dụ: – The quick brown fox jumps over the lazy dog and(*) – Never jump over the lazy dog quickly (**) 24 (*) -> [1,1,1,0,1,1,0,1,1,0,2] (**) -> [0,1,0,1,0,1,1,1,0,1,1] Bước 1:
  25. 25. Trích xuất đặc trưng(Feature Extraction) • Tuy nhiên thực tế nhận thấy trong 1 câu tiếng Việt, 1 từ được lặp lại nhiều lần thường là keyword • Ngược lại từ nào mà câu nào cũng xuất hiện lại là những từ không quan trọng. => Vậy có cách nào giải quyết được vấn đề này ? 25
  26. 26. Trích xuất đặc trưng(Feature Extraction) • TF-IDF – TF = 26 • f(t,d) - số lần xuất hiện từ t trong 1 câu (d) • mẫu số: tổng số từ trong 1 câu (d) • Số lần xuất hiện 1 từ trong câu càng nhiều thì TF càng (TH lần này d chính là 1 câu) • |D|: tổng số câu trong tập D • mẫu số: số câu chứa từ t • Càng nhiều câu chứ từ t thì idf càng thấp log(8/3) = 0.4259 log(8/7) = 0.0579
  27. 27. Trích xuất đặc trưng(Feature Extraction) 27 The quick brown fox jumps over the lazy dog and(*) Never jump over the lazy dog quickly (**) https://codetudau.com/bag-of-words-tf-idf-xu-ly-ngon-ngu-tu-nhien/ (*) -> [1,1,1,0,1,1,0,1,1,0,2] (**) -> [0,1,0,1,0,1,1,1,0,1,1] *TF*IDF BoW
  28. 28. Huấn luyện mô hình (Train Model) 28 Đưa về bài toán Text Classification intent Câu ví dụ hoi_thoi_tiet Mai mưa không em ? hoi_thoi_tiet Thời tiết ngày mai thế nào ? chao_hoi Chào em chao_hoi Hi
  29. 29. Huấn luyện mô hình (Train Model) • Lựa chọn mô hình • Naive Bayes • SVM (more data) • SGDClassifier(more data) • RF... 29
  30. 30. Kết quả bài toán Intent Detection 30 Feature(RAW) Target Hôm nay trời đẹp không ? hoi_thoi_tiet Hôm nay thời tiết thế nào ? hoi_thoi_tiet Hôm nay mưa không ? hoi_thoi_tiet Chào em gái chao_hoi Chào bạn chao_hoi Hello bạn chao_hoi Hi em chao_hoi Đây là toàn bộ train data Mong muốn hỏi những cách hỏi khác, máy vẫn chọn ra target đúng.
  31. 31. Kết quả bài toán Intent Detection • Với những câu không có trong training data vẫn có thể xác định chính xác. • Nóng quá, liệu mưa không em ơi? 31
  32. 32. Nhưng .... 32
  33. 33. Tiền xử lý 33 Xử lý sai chính tả (Spell Correction) Sai chính tả thì chính con người còn khó hiểu huống chi là máy Rất tiếc là ở VN chưa có mã nguồn nào giải quyết vấn đề này. (T . T) -> Việc gì khó quá thì bỏ qua.
  34. 34. Giải quyết như thế nào ? 34
  35. 35. Bài toán sửa lỗi chính tả (Spell Correction) • Phương pháp giải quyết đơn giản nhất 35 http://norvig.com/spell-correct.html
  36. 36. Bài toán sửa lỗi chính tả (Spell Correction) 36 Ưu điểm Hạn chế Dễ dàng cài đặt Cần bộ từ điển tiếng Việt hoàn chỉnh(Để làm được bộ từ điển chuẩn tốn nhiều cost) Độ chính xác khá cao với những từ thường dùng Thời gian xử lý chậm chạp → delay cao Nhất và với tiếng Việt, việc sai chính tả không đơn giản như tiếng Anh Xử lý những câu dài khó khăn do vấn đề hiệu năng Với những từ ít xuất hiện score thấp nên thường sai
  37. 37. Bài toán sửa lỗi chính tả (Spell Correction) • Ứng dụng Deep Learning vào giải quyết bài toán • Kỹ thuật sử dụng seq2seq (LSTM Encoder - Decoder) – Encoder + Bidirectionl – Decoder + Attention 37
  38. 38. RNN là gì ? • RNN = Recurrent neural network = Mạng nơ-ron hồi quy • Là một thuật toán được chú ý rất nhiều bởi kết quả tốt thu được trong NLP. • Ứng dụng: – Machine Translation – Tự động sinh văn bản – Là bàn đạp cho LSTM ... 38
  39. 39. Ý tưởng của RNN • Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau. • Nếu coi bài toán sửa lỗi chính tả chính là việc đoán từ tiếp theo từ những từ trước đó thì mạng nơ-ron truyền thống không dùng được. • Ví dụ: ngày mai lắng nên anh sẽ về. 39
  40. 40. RNN là gì ? • Với những hạn chế của mạng nơ-ron truyền thống, RNN đã ra đời. 40 Mạng nơ-ron hồi quy A(hidden layer) Đầu ra của hidden layer : ht Đầu vào Xt Có vẻ hơi khó hiểu nhỉ??
  41. 41. RNN là gì ? 41 h(t) = f(U*x(t) + W*h(t-1) + b) h1 = f(U*x1 + W*(h0) + b) h0 = f(U*x0 + b) h2 = f(U*x2 + W*(h1) + b)) f chính là activate function y(t) = f(W*h(t))
  42. 42. Ưu điểm của RNN • Điểm nổi bật của RNN chính là ý tưởng kết nối thông tin phía trước để dự đoán kết quả hiện tại. • Ví dụ: • Chú chim bay trên bầu 42 trời
  43. 43. Hạn chế của RNN Ví dụ: Tôi sinh ra ở Đức nên tôi nói tiếng ... 43 Về mặt lý thuyết thì RNN có khả năng xử lý long-term dependencies Nhưng thực tế khi khoảng t càng lớn thì RNN bắt đầu không thể nhớ và học được. Vấn đề đạo hàm bị triệt tiêu (vanishing gradients) Khám phá ra bởi Hochreiter (1991) http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf
  44. 44. Sự ra đời của LSTM(Long Short Term Memory) • Được giới thiệu bởi Hochreiter & Schmidhuber (1997) • Giải quyết được vấn đề của RNN 44 Simple RNN
  45. 45. Sự ra đời của LSTM(Long Short Term Memory) • Được giới thiệu bởi Hochreiter & Schmidhuber (1997) • Giải quyết được vấn đề của RNN 45 LSTM
  46. 46. LSTM là gì • LSTM đưa vào mạng nơ-ron trạng thái nơ-ron (cell state ) để lưu trữ và lan truyền các thông tin có ích (Giống như bộ nhớ) 46
  47. 47. LSTM là gì 47 LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái nơ-ron bởi các gate Forget Gate layer ft = 0 : Toàn bộ thông tin cũ sẽ bị bỏ đi ft = 1 : Giữ lại toàn bộ thông tin cũ Ct-1 Ví dụ như xác định độ tuổi 1 người thì - thông tin về chỉ số sức khoẻ là cần thiết - giới tính thì loại bỏ cũng được
  48. 48. LSTM là gì • B2: Bước này quyết định xem thông tin mới nào sẽ được lưu. • Gồm 2 phần: input gate layer để quyết định giá trị nào ta sẽ được thêm. tầng tanh tạo ra một vector cho giá trị mới C~t 48
  49. 49. LSTM là gì • B3:Cập nhật trạng thái nơ-ron cũ (old cell state) 49
  50. 50. LSTM là gì • B4: Cuối cùng tính output. Chính là cell state nhưng vẫn có sàng lọc. • Xác định phần nào của cell state nên xuất ra. (do lưu trữ cả các Ct-) 50
  51. 51. Chốt lại LSTM là gì • Về cơ bản LSTM không khác RNN nhiều • Nhưng nhiều hidden layer hơn • Mấu chốt ở bộ nhớ LSTM được gọi là Cell • LSTM như 1 black box, nhận giá trị cell phía trước h(t-1) và input xt • Black box sẽ quyết định thêm thông tin gì mới và loại bỏ thông tin không cần thiết. • Cell memory đã giải quyết được vấn đề của RNN 51 https://colah.github.io/posts/2015-08-Understanding-LSTMs/
  52. 52. Tuy nhiên.... 52
  53. 53. Kỹ thuật Bidirectional LSTM (BiLSTM) • Liệu rằng từ hiện tại chỉ liên quan đến từ phía trước. Ví dụ: Tối qua di chơi ở Hạ Long t(0) 1 2 3 4 5 6 Khi sửa lỗi chính tả thực chất là đoán xem từ vị trí t2 là từ gì. Nhận thấy thông tin phía sau cũng rất quan trọng => Bidirectional ra đời để giải quyết vấn đề này 53
  54. 54. Kỹ thuật Bidirectional LSTM (BiLSTM) 54 h(t) = h(t) + h(t)
  55. 55. Tuy nhiên LSTM thôi chưa đủ để giải quyết bài toán sửa lỗi chính tả .... 55
  56. 56. Bản chất của LSTM • Mặc dù input của LSTM, RNN có thể là sequence nhưng output bản chất không phải là sequence • Chính xác là việc lặp đi lặp lại việc dự đoán t+1 • Từ trước sai thì… Nên cần 1 model khác ? 56 RNN
  57. 57. Sự ra đời của sequence-to-sequence • RNN Encoder – Decoder/ LSTM Encoder – Decoder 57 Sequence to Sequence Pha 1: Encoder có nhiệm vụ hiểu được thông tin đầu vào. • Vì bản chất NLP phụ thuộc theo chuỗi (từ sau phụ thuộc từ trước nó) • Tránh trường hợp sinh ra câu vô nghĩa (word by word) henc(t) = f(henc(t-1), x(t)) c = henc(1:t) = conditional generation Vector độ dài = (x1,...x(t))
  58. 58. Sự ra đời của sequence-to-sequence 58 Sequence to Sequence Pha 2: Decoder sẽ sinh lần lượt từng từ cho chuỗi đầu vào theo mô hình sinh có điều kiện (conditional generation) hdec(t) = f(hdec(t-1), y(t-1), c)
  59. 59. Tuy nhiên nhược điểm của sequence to sequence là ... 59
  60. 60. 60
  61. 61. Nhược điểm của seq2seq 61 • Seq2Seq yêu cầu LSTM decoder sử dụng toàn bộ thông tin encoder. • Và đương nhiên là encoder cũng phải mã hoá toàn bộ thông tin input. Thực tế của NLP cho thấy không phải lúc nào 1 từ trong câu cũng liên quan mật thiết với tất cả các từ trước nó. Có thể chỉ 1,2 từ trước nó.
  62. 62. Xuất hiện của Decoder + Attention 62 hdec(t) = f(hdec(t-1), y(t-1), c(t) ) Attention đánh lại trọng số cho từng phần tử trong c Cụ thể là từ nào ít liên quan sẽ có giá trị nhỏ hơn.
  63. 63. Tiến hành áp dụng thực tế 1. Chuẩn bị data 2. Tiền xử lý 3. Tạo data noise 4. Code model 5. Tiến hành training 6. Xem kết quả 63
  64. 64. Tiến hành áp dụng thực tế • Data: http://viet.jnlp.org/download-du-lieu-tu-vung-corpus ~50MB • Sử dụng tensorflow GPU • Python 3 • Cấu hình máy GPU: GTX 1080 • Thời gian training: 1 ngày ~ 64
  65. 65. Kết quả thực nghiệm 65
  66. 66. Kết quả thực nghiệm 66
  67. 67. Kết quả thực nghiệm 67
  68. 68. Kết quả thực nghiệm 68
  69. 69. Kết quả thực nghiệm 69
  70. 70. Kết quả thực nghiệm 70
  71. 71. Kết quả thực nghiệm 71
  72. 72. Kết quả thực nghiệm 72 Với những từ mới lại detect thành từ sai chính tả.
  73. 73. Kết quả thực nghiệm 73
  74. 74. Một số vấn đề gặp phải khi nghiên cứu • Thời gian làm sạch data, tạo noise data mất nhiều thời gian. • Thời gian nghiên cứu ngắn • Để áp dụng thực tế phải có nhiều data sạch 74
  75. 75. Phương hướng phát triển • Nâng cao độ chính xác Model hiện tại • Có thể thay đổi BagofWord bằng Word2Vec… • Giải quyết bài toán xác định thực thể có tên (NER) • Tìm hiểu bài toán chuyển từ âm thanh -> Text …(Speech Recognition) • Áp dụng ra thực tế, kết hợp với IOT, các dịch vụ chatbot … 75
  76. 76. Phần hỏi đáp 76
  77. 77. 77

×