Academia.eduAcademia.edu
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 Nội dung chính 2 “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 n ¨ 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 Deep Learning là gì? 3 Artificial Intelligence (AI) Machine Learning Deep Learning Trí tuệ nhân tạo (Artificial Intelligence) 4 n n Ra đời từ những năm 1950 Đị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) Học máy (Machine Learning) 5 Rules Symbolic AI Data Answers Data Machine Learning Answers Rules Trước khi có Deep Learning 6 n n n n n n n n Perceptron Naive Bayes Decision Trees Random Forest SVM Kernel methods .... Các thuật toán trên thường được gọi là Shallow Learning Deep Learning 7 Layer 1 Layer 2 Layer 3 Layer 4 0 1 2 3 4 5 6 7 8 9 Final output Deep Learning dùng mạng Neural để học biểu diễn của dữ liệu qua các tầng Lịch sử phát triển của Deep Learning 8 Nguồn ảnh: UVA Deep Learning Course (https://uvadlc.github.io/) 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 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ể 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 ¨ ... Những thành công của Deep Learning 10 n n n n 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) 2016: AlphaGo của Google DeepMind vượt qua con người trong môn cờ vây 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 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 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 Nội dung chính 11 “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 n ¨ 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 Chương trình “Hello World” của Deep Learning 12 n n n Bài toán: huấn luyện mô hình nhận dạng chữ số viết tay Dữ liệu huấn luyện: 60,000 ảnh 28 x 28 pixels Dữ liệu test: 10,000 ảnh from from from from 13 keras.datasets import mnist keras import models keras import layers keras.utils import to_categorical (train_images, train_labels), (test_images, test_labels) = mnist.load_data() I/O: Đọc dữ liệu đầu vào network = models.Sequential() network.add(layers.Dense(512, activation='relu’, input_shape=(28 * 28,))) network.add(layers.Dense(10, activation='softmax’)) Xây dựng mô hình gồm mạng của các layers Định nghĩa loss function, optimizer 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) Chuyển đổi dữ liệu thành các tensor thích hợp với model network.fit(train_images, train_labels, epochs=5, batch_size=128) Huấn luyện mô hình 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 Quan hệ giữa các thành phần trong mạng 15 Nguồn ảnh: sách “Deep Learning with Python” Kiến trúc Multi-layer Perceptron (MLP) 16 network = models.Sequential() network.add(layers.Dense(6, activation='relu', input_shape=(5,))) network.add(layers.Dense(6, activation='relu')) network.add(layers.Dense(3, activation='softmax’)) 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 6 12 18 9 10 11 7 -1 5 2 3 4 6 12 18 9 10 11 7 -1 5 Một số ví dụ về dữ liệu trong các bài toán 18 n n Biểu diễn tập 1000 văn bản bằng 2D tensor với kích thước (1000, 20000) 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) 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 n Tầng thường có trạng thái là các trọng số (weights) 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) Mạng neural = mạng của các layer 20 n n Một mô hình deep learning là một đồ thị có hướng, không có chu trình của layer 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 Answer Dense Sentiment Topic Dense Dense Concatenation LSTM LSTM 1D convnet Embedding Embedding Sentence Reference text Question 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) 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 Gradient Descent 23 Nguồn ảnh: https://imaddabbura.github.io/post/gradient_descent_algorithms/ 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) Một số framework cho Deep Learning 25 n TensorFlow ¨ http://tensorflow.org/ n Keras ¨ https://keras.io/ n PyTorch ¨ https://pytorch.org/ Tóm tắt nội dung đã trình bày 26 n n n n n 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 Các thành phần cơ bản trong mô hình deep learning: input, layers, loss function, optimizer 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) Mô hình deep learning học biểu diễn của dữ liệu qua nhiều tầng khác nhau 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 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 Nội dung chính 27 “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 n ¨ 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 Một số ứng dụng tại al+ inc 28 n n n n Công ty: al+ inc Trang Web: https://alt.ai/en Các ứng dụng hướng tới việc phát triển hệ thống giao tiếp tự động 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 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 Location Person 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 * Ordinal_Number Position_Vocation Country 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). Trích xuất thực thể tên gọi ở mức chi tiết 30 n n n n Tăng số loại thực thể lên từ 8 loại đến 200 loại Sử dụng cấu trúc phân cấp cho các loại thực thể Bao gồm 3 cấp Mức top: 16 loại, mức lá: 200 loại Person Internation al Org Organization  Location ... Facility Ethnic Group Government Product Sports Org Political Party ... Corporation Cabinet Timex Political Org Military Countx Countx Other Org Other Political Org FGNER Demo 31 n Thử nghiệm hệ thống FG-NER: https://fgner.alt.ai/extractor/ Thuật toán trong mô hình FG-NER 32 al+ FG-NER Rule + Dictionary based Hierarchical CRF-SVM Machine Learning based LSTM+CNN+CRF LSTM+CNN+CRF+Dict Mô hình LSTM+CNN+CRF 33 Ma and Hovy, 2016) Bổ sung đặc trưng từ điển 34 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 B-Person B-City … Each dimension is associated with a B-I-O label I-God 0 0 0 1 … … … 0 0 0 0 0.1 0.5 0.01 0.02 0.2 0.15 0.02 0.80 in City Each dimension is associated with probability of category given the word 0.07 Tokyo … lives 0.02 Person … He 0.12 … 0.3 … … Category embedding 0 0 … One-hot Representation by category 0 0 ! "#$% &'(%' = God *'+,$(&'(%', "#$%) *'+,$(&'(%') Bỏ CNN layer đối với mô hình cho tiếng Nhật 35 B-Person B-City … Each dimension is associated with a B-I-O label I-God 0 0 0 1 … … … 0 0 0 0 0.1 0.5 0.01 0.02 0.2 0.15 0.02 0.80 He lives 0.02 0.07 in Tokyo Person City … 0.12 … 0.3 … … … Category embedding 0 0 … One-hot Representation by category 0 0 God Each dimension is associated with probability of category given the token 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 - 75.18 82.29 - LSTM+CRF+Dict+Cate LSTM+CNN+CRF+Dict+Cate 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)} Mô hình mạng neural cho trích xuất thuộc tính 38 Mô hình seq2seq cho sinh hội thoại 39 n 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 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 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 A:   B:   A: ., #"$  * 0 2 B: + &)-  A: &)-'1 2 B: 1  A: #"$  2 B: IT/(% !   n Tạo dữ liệu training cho mô hình seq2seq ¨ n (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 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. Nội dung đã trình bày 41 n n n n “Deep Learning” là gì? Vì sao Deep Learning thành công? Kiến thức cơ bản về Deep Learning Ứ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