Slide bài thuyết trình tại sự kiện của của công ty rubikAI. Nội dung của bài trình bày là kiến thức cơ bản về mạng neural và ứng dụng trong xử lý ngôn ngữ tự nhiên.
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
1. Mạng neural nhân tạo và ứng dụng trong
xử lý ngôn ngữ tự nhiên
Phạm Quang Nhật Minh
Nghiên cứu viên NLP
Alt Việt Nam
Ngày 20 tháng 1 năm 2019
2. Nội dung chính
n “Deep Learning” là gì?
n Vì sao Deep Learning thành công?
n Kiến thức cơ bản về Deep Learning
n Ứng dụng của mạng neural trong xử lý ngôn
ngữ tự nhiên tại al+ inc
¨Trích xuất thực thể có tên gọi
¨Trích xuất thuộc tính người dùng trong hội thoại
¨Sinh câu trả lời bằng mô hình seq2seq
2
3. Deep Learning là gì?
3
Artificial Intelligence (AI)
Machine
Learning
Deep
Learning
4. Trí tuệ nhân tạo (Artificial Intelligence)
4
n Ra đời từ những năm 1950
n Định nghĩa
¨ “the theory and development of computer systems able
to perform tasks that normally require human
intelligence, such as visual perception, speech recognition,
decision-making, and translation between languages.”
n Thời gian đầu cách tiếp cận phổ biến trong AI là lập
trình một cách tường minh các luật để xử lý tri thức
(symbolic AI)
5. Học máy (Machine Learning)
5
Machine Learning
Data
Answers
Rules
Symbolic AI
Rules
Data
Answers
6. Trước khi có Deep Learning
6
n Perceptron
n Naive Bayes
n Decision Trees
n Random Forest
n SVM
n Kernel methods
n ....
n Các thuật toán trên thường được gọi là Shallow
Learning
7. Deep Learning
7
Layer 1 Layer 2 Layer 3 Layer 4
Final
output
0
1
2
3
4
5
6
7
8
9
Deep Learning dùng mạng Neural để học biểu diễn của dữ liệu
qua các tầng
8. Lịch sử phát triển của Deep Learning
8
Nguồn ảnh: UVA Deep Learning Course (https://uvadlc.github.io/)
9. Vì sao Deep Learning thành công?
9
n Những bước tiến về phần cứng giúp tăng quy mô
tính toán (GPU, CUDA)
¨ Có thể huấn luyện các mạng neural với rất nhiều layers
n Lượng dữ liệu (đặc biệt là dữ liệu có gán nhãn) và
các benchmark data tăng lên đáng kể
n Những tiến bộ về thuật toán
¨ Thuật toán lan truyền ngược (Backpropagation)
¨ Các hàm activation tốt hơn như ReLU
¨ Các thuật toán tối ưu mới như RMSProp, Adam
¨ ...
10. Những thành công của Deep Learning
10
n 2016: Đạt độ chính xác ngang với con người trong
nhận dạng đối tượng trong ảnh (trên tập ImageNet)
n 2016: AlphaGo của Google DeepMind vượt qua con
người trong môn cờ vây
n 2017: Hệ nhận dạng tiếng nói do Microsoft phát
triển đạt độ chính xác ngang với con người
n 2018: Hệ dịch máy Trung - Anh do Microsoft phát
triển đạt độ chất lượng ngang với con người khi dịch
các tin tức
n 2018: Mô hình BERT (Google) vượt qua con người
trong bài toán đọc hiểu trên tập SQuAD 1.1
11. Nội dung chính
n “Deep Learning” là gì?
n Vì sao Deep Learning thành công?
n Kiến thức cơ bản về Deep Learning
n Ứng dụng của mạng neural trong xử lý ngôn
ngữ tự nhiên tại al+ inc
¨Trích xuất thực thể có tên gọi
¨Trích xuất thuộc tính người dùng trong hội thoại
¨Sinh câu trả lời bằng mô hình seq2seq
11
12. Chương trình “Hello World” của Deep Learning
12
n Bài toán: huấn luyện mô hình nhận dạng chữ số viết
tay
n Dữ liệu huấn luyện: 60,000 ảnh 28 x 28 pixels
n Dữ liệu test: 10,000 ảnh
13. 13
from keras.datasets import mnist
from keras import models
from keras import layers
from keras.utils import to_categorical
(train_images, train_labels), (test_images, test_labels) =
mnist.load_data()
network = models.Sequential()
network.add(layers.Dense(512, activation='relu’,
input_shape=(28 * 28,)))
network.add(layers.Dense(10, activation='softmax’))
network.compile(optimizer='rmsprop’,
loss='categorical_crossentropy’,
metrics=['accuracy’])
train_images = train_images.reshape((60000, 28 * 28))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
network.fit(train_images, train_labels, epochs=5,
batch_size=128)
I/O: Đọc dữ
liệu đầu vào
Định nghĩa
loss function,
optimizer
Xây dựng mô
hình gồm
mạng của các
layers
Huấn luyện
mô hình
Chuyển đổi dữ
liệu thành các
tensor thích
hợp với model
14. Mô hình Deep Learning
14
n Thành phần chính trong mô hình Deep Learning
¨ Dữ liệu đầu vào đầu ra mong muốn (nhãn)
¨ Các tầng trong mạng neural (layers)
¨ Hàm mất mát (loss function) để đo đạc sự sai khác giữa
đầu ra của thuật toán và đầu ra mong muốn trên tập huấn
luyện
¨ Bộ tối ưu hóa (optimizer) để tối ưu (cực tiểu) hàm mất
mát
n Quá trình học
¨ Là quá trình điều chỉnh trọng số để tối ưu hàm mất mát
15. Quan hệ giữa các thành phần trong mạng
15
Nguồn ảnh: sách “Deep Learning with Python”
17. Biểu diễn dữ liệu đầu vào của mạng
17
n Tensor (multi-dimensional array) là cấu trúc dữ liệu
cơ bản trong hầu hết các hệ thống deep learning
hiện nay
¨ Vector (1D tensors)
¨ Matrices (2D tensors)
¨ 3D Tensors
4
5
-1
22
1
2 3 4 -1
6 12 18 9
10 11 7 5
2 3 4 -1
6 12 18 9
10 11 7 5
18. Một số ví dụ về dữ liệu trong các bài toán
18
n Biểu diễn tập 1000 văn bản bằng 2D tensor với kích
thước (1000, 20000)
n Dữ liệu timeseries hay sequence được biểu diễn
bằng 3D tensor
¨ 1000 câu, mỗi câu có 10 từ và mỗi từ được biểu diễn bằng
vector 100 chiều sẽ được lưu trong tensor có kích thước
(1000, 100, 10)
n Dữ liệu ảnh được biểu diễn bằng 4D tensor
¨ Ví dụ 128 ảnh màu kích thước 256 x 256 được biểu diễn
bằng tensor với kích thước (128, 256, 256, 3)
19. Tầng trong mạng neural (Layers)
19
n Là một module xử lý dữ liệu
¨ Đầu vào: 1 hoặc nhiều tensor
¨ Đầu ra: 1 hoặc nhiều tensor
n Tầng thường có trạng thái là các trọng số (weights)
n Mỗi tầng sẽ thực hiện các phép toán trên tensors
from keras import layers
layer = layers.Dense(6, activation=‘relu’, input_shape=(5,))
output = relu(dot(W, input) + b)
20. Mạng neural = mạng của các layer
20
n Một mô hình deep learning là một đồ thị có hướng, không
có chu trình của layer
n Việc sắp xếp các layer theo các cách khác nhau sẽ tạo ra các
kiến trúc mạng (network architecture hay network topology)
khác nhau
1D convnet
Dense Dense
Sentence
Sentiment Topic
Reference text
Embedding
LSTM LSTM
Concatenation
Dense
Embedding
Question
Answer
21. Hàm mất mát (loss function)
21
n Đánh giá lỗi của mô hình ở trạng thái hiện tại khi mô
hình thực hiện việc dự đoán trên dữ liệu
¨ Sai khác giữa đầu ra của mô hình và đầu ra mong muốn
n Các hàm mất mát hay dùng:
¨ Cross-entropy cho bài toán phân loại
¨ Mean-square error (MSE) cho bài toán regression
¨ Negative Logarithmic Likelihood (NLL)
22. Bộ tối ưu hóa (Optimizer)
22
n Quá trình huấn luyện mạng là quá trình tối ưu tham
số của mô hình
¨ Cực tiểu hóa hàm mất mát
n Các thuật toán tối ưu tham số của mạng neural dựa
trên gradient
¨ Stochastic gradient descent (SGD)
¨ Adam
¨ RMSProp
24. Các kiến trúc mạng cơ bản khác
24
n Convolutional Neural Networks (CNN hay Convnet)
¨ Xử lý dữ liệu ảnh
¨ http://cs231n.github.io/convolutional-networks/
n Recurrent Neural Networks (RNN)
¨ Xử lý dữ liệu dạng chuỗi thời gian (timeseries hay
sequence)
25. Một số framework cho Deep Learning
25
n TensorFlow
¨ http://tensorflow.org/
n Keras
¨ https://keras.io/
n PyTorch
¨ https://pytorch.org/
26. Tóm tắt nội dung đã trình bày
26
n Thành công của Deep Learning nhờ vào: 1) tiến bộ về
phẩn cứng; 2) lượng dữ liệu tăng lên; 3) các bước tiến về
thuật toán
n Các thành phần cơ bản trong mô hình deep learning:
input, layers, loss function, optimizer
n Hai thuật toán cơ bản và quan trọng trong Deep Learning
là backpropagation và thuật toán tối ưu dựa trên gradient
(gradient descent)
n Mô hình deep learning học biểu diễn của dữ liệu qua
nhiều tầng khác nhau
n Về cơ bản, hoạt động trong mô hình deep learning dựa
trên các phép biến đổi tensors
n Deep Learning tốt cho các bài toán liên quan đến nhận
thức (perceptual) như xử lý ảnh, xử lý tiếng nói và NLP
27. Nội dung chính
n “Deep Learning” là gì?
n Vì sao Deep Learning thành công?
n Kiến thức cơ bản về Deep Learning
n Ứng dụng của mạng neural trong xử lý ngôn
ngữ tự nhiên tại al+ inc
¨Trích xuất thực thể có tên gọi
¨Trích xuất thuộc tính người dùng trong hội thoại
¨Sinh câu trả lời bằng mô hình seq2seq
27
28. Một số ứng dụng tại al+ inc
28
n Công ty: al+ inc
n Trang Web: https://alt.ai/en
n Các ứng dụng hướng tới việc phát triển hệ thống
giao tiếp tự động
n Các ứng dụng đã/đang triển khai
¨ Trích xuất thực thể có tên gọi
(FG-NER: Fine-grained named entity recognition)
¨ Trích xuất thuộc tính người dùng trong hội thoại
¨ Mô hình seq2seq cho sinh câu trả lời
29. Nhận dạng thực thể có tên gọi*
29
n Trích xuất thực thể có tên riêng thông thường
Donald Trump is the 45th president of the United States
Person Location
n Trích xuất thực thể tên riêng ở mức chi tiết
(FG-NER: Fine-grained Named Entity Recognition)
Donald Trump is the 45th president of the United States
Person CountryPosition_VocationOrdinal_Number
* Mai, K., Pham, T. H., Nguyen, M. T., Duc, N. T., Bollegala, D., Sasano, R., & Sekine, S.
(2018). An empirical study on fine-grained named entity recognition. In Proceedings of the
27th International Conference on Computational Linguistics (pp. 711-722).
30. Trích xuất thực thể tên gọi ở mức chi tiết
30
n Tăng số loại thực thể lên từ 8 loại đến 200 loại
n Sử dụng cấu trúc phân cấp cho các loại thực thể
n Bao gồm 3 cấp
n Mức top: 16 loại, mức lá: 200 loại
Person Organization Location Facility Product Timex Countx Countx...
Internation
al Org
Sports Org CorporationEthnic Group
Political
Org
...
Political
Party
CabinetGovernment Military
Other
Political Org
Other Org
34. Bổ sung đặc trưng từ điển
34
0
0
…
0
0
0
…
0
0
0
…
0
0
1
…
0
One-hot
Representation
by category
He lives in Tokyo
B-Person
B-City
…I-God
…
…
…
…
0.1
Person
City
…
God
! "#$% &'(%' =
*'+,$(&'(%', "#$%)
*'+,$(&'(%')
Each dimension is associated with a
B-I-O label
Each dimension is associated with
probability of category given the wordCategory
embedding
0.2
0.3
0.5
0.15
0.12
0.01
0.02
0.02
0.02
0.80
0.07
Cải tiến mô hình của Ma và Hovy bằng
cách bổ sung category embeddings
• Category của các từ được lấy trong từ
điển
35. Bỏ CNN layer đối với mô hình cho tiếng Nhật
35
0
0
…
0
0
0
…
0
0
0
…
0
0
1
…
0
One-hot
Representation
by category
He lives in Tokyo
B-Person
B-City
…
I-God
…
…
…
…
0.1
Person
City
…
God
Each dimension is
associated with a B-I-O
label
Each dimension is
associated with probability
of category given the
token
Category
embedding
0.2
0.3
0.5
0.15
0.12
0.01
0.02
0.02
0.02
0.80
0.07
36. Kết quả thực nghiệm
36
Method English Japanese
LSTM+CNN+CRF
(Ma and Hovy, 2016)
80.93 66.76
LSTM+CNN+CRF+Dict 83.14 70.34
LSTM+CRF+Dict 81.89 73.05
LSTM+CRF+Dict+Cate - 75.18
LSTM+CNN+CRF+Dict+Cate 82.29 -
37. Trích xuất thông tin người dùng trong hội thoại
37
PAI (Personal AI):
(What is your name?)
Human A:
(My name is Minh. I am working at Alt Vietnam.)
User Attribute Extraction
{SpeakerID=ID1, S= (I), Attribute= (Name), O=Minh}
{SpeakerID=ID1, S= (I), Attribute= (Company), O= (Alt Vietnam)}
38. Mô hình mạng neural cho trích xuất thuộc tính
38
39. Mô hình seq2seq cho sinh hội thoại
39
n Ý tưởng: tận dụng dữ liệu hội thoại (lịch sử hội
thoại) để học mô hình tự động sinh câu trả lời
n Xuất phát từ ý tưởng trong lĩnh vực dịch máy
¨ Sinh câu trả lời giống như như quá trình dịch từ câu nguồn
sang câu đích
40. Xây dựng mô hình seq2seq cho sinh câu trả lời
40
n Chuẩn bị dữ liệu hội thoại về các chủ đề khác nhau
n Tạo dữ liệu training cho mô hình seq2seq
¨ (context, q, r)
n q: query hiện tại
n context: các câu hội thoại trước đó
n r: câu trả lời
n Mô hình: Biến đổi mô hình seq2seq để sử dụng được context
¨ Tian, Zhiliang, et al. "How to make context more useful? an empirical
study on context-aware neural conversational models." Proceedings
of the 55th Annual Meeting of the Association for Computational
Linguistics (Volume 2: Short Papers). Vol. 2. 2017.
A:
B:
A:
B:
A:
B:
A:
B: IT
41. Nội dung đã trình bày
41
n “Deep Learning” là gì?
n Vì sao Deep Learning thành công?
n Kiến thức cơ bản về Deep Learning
n Ứng dụng của mạng neural trong xử lý ngôn ngữ tự
nhiên tại al+ inc
¨ Trích xuất thực thể có tên gọi
¨ Trích xuất thuộc tính người dùng trong hội thoại
¨ Sinh câu trả lời bằng mô hình seq2seq
Hỏi đáp & Thảo luận