Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
2,95 MB
Nội dung
UBND TỈNH BÌNH DƯƠNG TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT TƠ VĂN DUY PHÂN TÍCH CẢM XÚC ĐỂ ĐÁNH GIÁ CHẤT LƯỢNG SẢN PHẨM DỰA TRÊN NHẬN XÉT CỦA NGƯỜI DÙNG SỬ DỤNG MƠ HÌNH HỌC SÂU LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN MÃ SỐ: 8480104 BÌNH DƯƠNG – 2019 UBND TỈNH BÌNH DƯƠNG TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT TƠ VĂN DUY PHÂN TÍCH CẢM XÚC ĐỂ ĐÁNH GIÁ CHẤT LƯỢNG SẢN PHẨM DỰA TRÊN NHẬN XÉT CỦA NGƯỜI DÙNG SỬ DỤNG MƠ HÌNH HỌC SÂU LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN MÃ SỐ: 8480104 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS QUẢN THÀNH THƠ BÌNH DƯƠNG – 2019 Lời Cam Đoạn Tơi xin cam đoan rằng, luận văn "Phân tích cảm xúc để đánh giá chất lượng sản phẩm dựa nhận xét người dùng sử dụng mơ hình học sâu" cơng trình nghiên cứu tơi hướng dẫn thầy PGS.TS Quản Thành Thơ, xuất phát từ nhu cầu thực tiễn nguyện vọng tìm hiểu thân Ngoại trừ kết tham khảo từ cơng trình khác ghi rõ luận văn, nội dung trình bày luận văn kết nghiên cứu tơi thực kết luận văn chưa công bố trước hình thức Bình Dương, tháng 02 năm 2019 Tác giả Tô Văn Duy Lời Cảm Ơn Qua thời gian học tập rèn luyện trường Đại học Thủ Dầu Một, bảo giảng dạy nhiệt tình q thầy cơ, đặc biệt quý thầy cô khoa Khoa Kỹ thuật Công nghệ truyền đạt cho kiến thức lý thuyết thực hành suốt thời gian học trường Cùng với nỗ lực thân, tơi hồn thành luận văn Từ kết đạt này, xin chân thành cám ơn quý thầy cô trường Đại học Thủ Dầu Một, truyền đạt cho kiến thức bổ ích thời gian qua Đặc biệt, PGS.TS Quản Thành Thơ tận tình hướng dẫn tơi hồn thành tốt báo cáo luận văn thạc sỹ Do kiến thức cịn hạn hẹp nên khơng tránh khỏi thiếu sót cách diễn đạt trình bày Chúng mong nhận đóng góp ý kiến quý thầy cô để báo cáo luận văn đạt kết tốt Tơi xin kính chúc q thầy bạn thật nhiều sức khỏe, niềm vui thành công công việc sống Tóm tắt luận văn Với tốc độ phát triển công nghệ Internet nay, mà lượng liệu bùng nổ khắp giới nguồn tài ngun vơ tận để khai thác tận dụng Trong lượng liệu đánh giá, nhận xét trang web thương mại điện vơ lớn Từ xuất theo nhu cầu cấp thiết khai phá trích xuất thơng tin từ lượng liệu cách hiệu hợp lý Nhu cầu xuất phát từ mong muốn hiểu rõ thị trường doanh nghiệp nhà sản xuất Trong năm ngần đây, mơ hình học sâu (Deep Learning) lên phương pháp hiệu để giải toán thuộc lĩnh vực nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên Điểm đặc biệt Deep Learning tính xác dựa vào lượng liệu, lượng liệu có kích thước khổng lồ mà không bị hạn chế Với đời ngày nhiều thiết bị có khả tính tốn mạnh mẽ, cộng với lượng liệu dồi dào, mơ hình Deep Learning hứa hẹn ngày phát triển, trở thành nhân tố cho cách mạng 4.0 ngày Trong báo cáo luận văn này, tơi đề xuất mơ hình giải tốn trích xuất khía cạnh phân tích cảm xúc văn (mà đánh giá, nhận xét khách hàng sản phẩm trang thương mại điện tử) Tôi trình bày kiến thức tảng Deep Learning, áp dụng Deep Learning vào toán phân loại văn Từ kiến thức tham khảo từ cơng trình liên quan giới, mơ hình mà tơi đề xuất cụ thể kết hợp mạng nơ-ron tích chập nhiều lớp (Convolutional Neural Network - CNN) mạng nơ-ron hồi quy nhớ ngắn-dài (LSTM), để giải toán đặt Sau tơi thực hệ thống nhằm thu thập đánh giá, nhận xét khách hàng trang thương mại điện tử thegioididong.com để đưa vào mơ hình đề xuất tơi Cuối tơi sử dụng thơng tin trích xuất để trực quan hóa giao diện website Mục Lục TĨM TẮT LUẬN VĂN DANH SÁCH HÌNH VẼ DANH SÁCH BẢNG DANH SACH CÁC CỤM TỪ VIẾT TẮT CHƯƠNG GIỚI THIỆU 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU 1.3 TỔNG QUAN VỀ BÁO CÁO CHƯƠNG KIẾN THỨC NỀN TẢNG 10 2.1 MẠNG NƠ-RON NHÂN TẠO (ARTIFICIAL NEURAL NETWORK - ANN) 10 2.1.1 Giới thiệu 10 2.1.2 Cơ sở toán học 11 2.1.3 Các hàm kích hoạt thường dùng 12 2.1.4 Hàm chi phí mát 14 2.1.5 Các kĩ thuật xử lý với mạng nơ-ron 15 2.2 MẠNG NƠ-RON TÍCH CHẬP (CONVOLUTIONAL NEURAL NETWORK-CNN) 18 2.2.1 Giới thiệu 18 2.2.2 Các thành phần cấu trúc mạng CNN 19 2.2.2.1 Lớp tích chập 20 2.2.2.2 Lớp Pooling 23 2.2.2.3 Lớp kết nối đầy đủ (Fully-connected-FC) 24 2.2.3 Lớp tích chập ma trận 1D 25 2.3 MẠNG NƠ-RON HỒI QUY BỘ NHỚ NGẮN DÀI(LONG SHORT TERM MEMORY- LSTM) 25 2.3.1 Giới thiệu 25 2.3.2 Cấu trúc bên mạng LSTM 26 2.3.2 Bidirectional LSTM (BiLSTM) 28 2.4 MƠ HÌNH WORD2VEC 29 2.4.1 Khái niệm vector từ 29 2.4.2 Lý luận với vector từ 30 2.4.3 Huấn luyện vector từ 32 CHƯƠNG CÁC CÔNG TRÌNH LIÊN QUAN 35 3.1 MƠ HÌNH CNN Ở CẤP ĐỘ KÍ TỰ ĐỂ PHÂN LOẠI VĂN BẢN CỦA XIANG ZHANG VÀ CỘNG SỰ 35 3.2 MƠ HÌNH CNN RẤT SÂU ĐỂ PHÂN LOẠI VĂN BẢN CỦA ALEXIS CONNEAU VÀ CÁC CỘNG SỰ 36 3.3 MƠ HÌNH CNN ĐỂ PHÂN LOẠI CÂU CỦA YOON KIM 38 CHƯƠNG 4: MƠ HÌNH ĐỀ XUẤT VÀ THỰC NGHIỆM 39 4.1 MƠ HÌNH ĐỀ XUẤT 39 4.1.1 Tạo liên kết thông tin từ 40 4.1.2 Trích xuất đặc trưng 40 4.1.3 Chọn đặc trưng tốt sau tích chập 40 4.2 ĐÁNH GIÁ THỰC NGHIỆM TRÊN TẬP DỮ LIỆU BENCHMARK 41 4.2.1 Tiền huấn luyện vector từ 41 4.2.2 Tập liệu Benchmark thực nghiệm 41 4.2.3 Tiền xử lý liệu thực nghiệm 41 4.2.4 Các thiết lập trình huấn luyên thực nghiệm 42 4.2.5 Kết thực nghiệm 42 4.3 ÁP DỤNG MƠ HÌNH VÀO TẬP DỮ LIỆU THỰC 43 4.3.1 Nguồn liệu thực 43 4.3.2 Quá trình xử lý liệu trích xuất đặc trưng khía canh 43 4.3.3 Kết thực nghiệm tập liệu thực 44 4.4 TRỰC QUAN LÊN HỆ THỐNG WEBSITE 45 4.4.1 Kiến trúc hệ thống tổng quát 45 4.4.2 Bộ crawler 46 4.4.3 Mơ hình mạng nơ-ron 46 4.4.4 Database lưu trữ 46 4.4.5 Hệ thống website thống kê 47 CHƯƠNG 5: CÔNG NGHỆ SỬ DỤNG 48 5.1 NGƠN NGỮ LẬP TRÌNH 48 5.1.1 Python 48 5.1.2 Javascript 48 5.2 CÁC FRAMEWORK VÀ LIBRARY 48 5.2.1 TensorFlow 48 5.2.2 Keras 48 5.2.3 Flask 49 5.3 CÔNG CỤ VÀ THIẾT BỊ 50 5.3.1 Jupyter Notebook 50 5.3.2 Chíp xử lý 50 CHƯƠNG 6: TỔNG KẾT 51 6.1 KẾT QUẢ ĐẠT ĐƯỢC 51 6.2 TỒN TẠI VÀ HẠN CHẾ 51 6.3 CẢI TIẾN TRONG TƯƠNG LAI 51 THAM KHẢO 52 Danh sách hình vẽ Hình 2.1: Mạng nơ-ron nhân tạo với lớp ẩn 10 Hình 2.2: Đồ thị hàm 13 Hình 2.3: Đồ thị hàm hard .13 Hình 2.4: Đồ thị hàm sigmoid 13 Hình 2.5: Đồ thị hàm ReLU .14 Hình 2.6: Hình mơ tả kỹ thuật Early Stopping .16 Hình 2.7 Minh họa kỹ thuật dropout Nửa bên trái mạng nơ-ron đầy đủ bên phải sau áp dụng dropout 17 Hình 2.8: Trực quan hóa cách tổ chức nơ-ron CNN 19 Hình 2.9: Minh họa mạng CNN đơn giản .20 Hình 2.10: Một minh họa khác tính chất kết nối cục CL, nơ-ron nhận input số nơ-ron lớp 21 Hình 2.11: Trực quan hóa cấu trúc khơng gian layer CONV .22 Hình 2.12: Layer max-pooling xen kẽ layer CONV A B 24 Hình 2.13: Minh họa lớp tích chập 1D max-pooling 25 Hình 2.14: Các Module lặp mạng RNN chứa lớp 26 Hình 2.15: Các Module lặp mạng LSTM chứa lớp 26 Hình 2.16: Cell state LSTM giống băng truyền 26 Hình 2.17: Cổng trạng thái LSTM 27 Hình 2.18: Cổng forget mạng LSTM 27 Hình 2.19: Cổng input mạng LSTM .28 Hình 2.20: Cổng candidate mạng LSTM 28 Hình 2.21: Cổng output mạng LSTM 28 Hình 2.22: BiLSTM kết hợp forward LSTM backward LSTM 29 Hình 2.23: Ví dụ dạng biểu diễn vector từ 29 Hình 2.24: Ví dụ biểu diễn word2vec 30 Hình 2.25: Minh họa mối quan hệ giới tính từ 30 Hình 2.26: Một ví dụ khác quan hệ số nhiều số từ 31 Hình 2.27: Biểu diễn vector từ 31 Hình 2.28: Kết phép tính KING - MAN + WOMAN .31 Hình 2.29: Từ trọng tâm ngữ cảnh 32 Hình 2.30: Quá trình huấn luyện CBOW 32 Hình 2.31: Việc nhân vector input với ma trận trọng số W1 tương đương việc chọn hàng tương ứng ma trận 33 Hình 2.32: Quá trình huấn luyện skip-gram 34 Hình 3.1: Mơ hình kiến trúc đề xuất Xiang Zhang cộng 36 Hình 3.2: Mơ hình kiến trúc đề xuất Alexis Conneau cộng .37 Hình 3.3: Mơ hình kiến trúc đề xuất Yoon Kim 38 Hình 4.1 Cấu trúc mơ hình tơi đề xuất .39 Hình 4.2: Ví dụ đánh giá sản phẩm iPhone Xs Max .43 Hình 4.3: Một số ví dụ sử dụng kết huấn luyện để phân tích cảm xúc cho số đánh giá 45 Hình 4.4: Sơ đồ cấu trúc hệ thống 45 Hình 4.5: Mơ tả bảng liệu lưu đánh giá phân tích cảm xúc .46 Hình 4.6: Chức phân tích cảm xúc trực tiếp nhập văn vào .47 Hình 4.7: Báo cáo thơng kê sản phẩm .47 Hình 5.1: Một đoạn code sử dụng keras cho mơ hình tơi 49 Hình 5.2: Ví dụ trực quan mảng chiều Jupyter Notebook .50 Danh sách bảng Bảng 1.1: Tổng quan chương báo cáo .9 Bảng 4.1: Chi tiết tham số lơp kiến trúc mơ hình mà tơi đề xuất 39 Bảng 4.2: Thống kê tập liệu mà sử dụng 41 Bảng 4.3: Tóp 10 mơ hình theo tỷ lệ lỗi (theo phần trăm) bao gồm mơ hình tơi đề xuất mơ hình khác lấy từ nghiên cứu nhóm tác giả cơng bố .42 Bảng 4.4: Số liệu cụ thể khía cạnh tập liệu 43 Bảng 4.5: Kết phân tích cảm xúc lần huấn luyện 44 3.3 Mô hình CNN để phân loại câu Yoon Kim Yoon Kim đề xuất mơ hình sử dụng mạng CNN huấn luyện word-vector huấn luyện sẵn cho thao tác phân loại câu Nghiên cứu cho thấy mạng CNN đơn giản kèm theo tinh chỉnh hyperparameter word-vector tĩnh đạt kết tốt nhiều thử nghiệm khác Hình 3.3: Mơ hình kiến trúc đề xuất Yoon Kim Kiến trúc mơ hình miêu tả hình 35 Một câu có độ dài n biểu diễn thành ma trận có kích thước n×k, với k kích thước word-vector Một lọc w ∈ Rh×k trượt lên ma trận áp dụng phép tích chập để trích xuất đặc trưng từ ma trận ban đầu Sau trích xuất đặc trưng từ đầu vào, phép pooling thực để chọn đặc trưng tốt nhất, đại diện cho đặc trưng Mơ hình sử dụng nhiều lọc với kích thước khác để trích xuất nhiều đặc trưng Các đặc trưng qua lớp kết nối đầy đủ cho kết phân phối tỉ lệ nhãn đầu Để đạt kết tốt hơn, Yoon Kim sử dụng kĩ thuật dropout lớp kết nối đầu đủ cuối cùng, kết hợp với l2−normm trọng số ma trận tính tốn Với việc sử dụng mạng CNN đạt kết ấn tượng, mô hình Yoon Kim mở đường cho nghiên cứu sau ứng dụng deep learning tốn xử lý văn 38 Chương 4: Mơ hình đề xuất thực nghiệm 4.1 Mơ hình đề xuất Mơ hình tơi thiết kế gồm phần với tổng chiều sâu 11 lớp, có lớp BiLSTM lớp tích chập 1D Mọi chi tiết mơ hình thể hình 36 Hình 4.1 Cấu trúc mơ hình tơi đề xuất STT 10 11 Lớp Filter Kernel Stride Đặc trưng đầu Embedding 300 BiLSTM 600 Tích chập 300 300 Tích chập 300 300 Tích chập 300 300 Tích chập 400 400 Tích chập 400 400 Tích chập 500 500 Tích chập 500 500 Kết nối đầy đủ 1000 Kết nối đầy đủ 1000 Pool Max-5/2 - Bảng 4.1 Chi tiết tham số lơp kiến trúc mơ hình mà tơi đề xuất Phần thứ mơ hình lớp embedding, dùng để chuyển từ văn thành vector Phần thứ hai lớp BiLSTM chứa mạng LSTM đơn sử dụng đồng thời độc lập để mơ hình hoá chuỗi đầu vào theo hướng: từ trái sang phải (forward LSTM) từ phải sang trái (backward LSTM) Tiếp theo phần gồm lớp tích chập theo sau lớp kỹ thuật Batch normalization hàm kích hoạt Relu (giống Convolutional block [6]), tơi tăng số lượng cửa sổ chập lên 100 đồng thời giảm độ dài đầu vào lần cách tăng stride lên Ở cuối phần lớp maxpooling sử dụng với kích thước pool=5, stride=2 nhằm trích lọc lại đặc trưng bật tài liệu giảm nhanh khối lượng tham số cần tính tốn Phần cuối mơ hình lớp kết nối đầy đủ với hàm kích hoạt Relu kỹ thuật Dropout trọng số 39 0.1 Hàm kích hoạt softmax sử dụng để đưa kết phân lớp cuối Chi tiết tham số lớp mơ hình chung thể thông qua bảng 4.1.1 Tạo liên kết thông tin từ Với đầu vào xi ∈ Rk vector k chiều tương ứng với từ thứ i văn Một văn có chiều dài n biểu diễn: 𝑥11 𝑥1… 𝑥1𝑘 𝑥2… 𝑥2𝑘 ] 21 𝑋 = [𝑥… … … 𝑥𝑛1 𝑥𝑛… 𝑥𝑛𝑘 Mạng Bidirectional LSTM liên kết thơng tin từ phía trước phía sau văn giúp nhận dạng xác tên riêng hay từ khóa mang ý nghĩa tâm đoạn văn 𝑥1 𝑥2 … 𝑥𝑛 Kết mạng ta nhận ma trận có chiều cao tương ứng với độ dài văn chiều rộng (số chiều vector) gấp đôi số chiều vector từ 4.1.2 Trích xuất đặc trưng Với đầu vào ma trận có chiều cao n (số lượng vector) chiều rộng k thể đặc trưng văn xử lý phía trước Mạng nơ-ron tích chập thực thao tác tích chập lên h vector để trích xuất đặc trưng với lọc w ∈ Rh×k Điểm khác biệt mạng nơ-ron tích chập dùng mơ hình so với mạng nơ-ron tích chập dùng tốn xử lý ảnh khác lọc có kích thước h×k khơng phải 3×3 hay 5×5 bình thường Với lọc có kích thước vậy, thao tác tích chập trích xuất đặc trưng ci từ cửa sổ chứa h từ đứng cạnh nhau: 𝑥𝑖 𝑥 𝑐𝑖 = 𝑓(𝑤 [ 𝑖+1 … ] + b) 𝑥𝑖+ℎ−1 Ở đây, b bias f hàm phi tuyến tính (sigmoid, ReLU, ) Bộ lọc áp dụng lên ma trận để trích xuất đặc trưng c ∈ Rn−h+1 Mỗi lọc trích xuất đặc trưng khác để việc phân loại văn xác sử dụng nhiều lọc với trọng số khác kích thước khác cho lớp mạng nơ-ron tích chập 4.1.3 Chọn đặc trưng tốt sau tích chập Sau trích xuất đặc trưng mạng nơ-ron tích chập, đặc trưng qua lớp pooling để chọn đặc trưng tốt Bước vừa có tác dụng loại bớt đặc trưng "yếu", khơng có ý nghĩa với việc phân loại, đồng thời làm giảm số lượng liệu cần phải xử lý bước sau, giúp giảm thời gian tính tốn mơ hình Loại pooling thường sử dụng max pooling Với đặc trưng 𝐶 ∈ 𝑅𝑛−ℎ+1 sau pooling với kích thước pooling p stride kết 𝐶𝑝 ∈ 𝑅𝑑 với 𝑛−ℎ+1 𝑑= 𝑝 40 4.2 Đánh giá thực nghiệm tập liệu Benchmark 4.2.1 Tiền huấn luyện vector từ Tiền huấn luyện vector từ kỹ thuật học không giám sát (unsupervised learning) phương pháp phổ biến để cải tiến độ xác, hiệu cho mơ hình học sâu giải tốn xử lý ngơn ngữ tự nhiên Tôi sử dụng vector từ word2vec công bố Google vào năm 2013[4] Bộ vector huấn luyện phần liệu Google News với 100 tỷ từ với kỹ thuật bag-of-words (ref Mikolov) Tạo thành vector bao gồm tỷ từ khác nhau, vector có số chiều lên đến 300 Những từ không tồn tập từ điển vector từ khởi tạo ngẫu nhiên 4.2.2 Tập liệu Benchmark thực nghiệm Để tiến hành thực nghiệm, sử dụng tập liệu tập hợp Zhang (2015) [7] Các tập liệu tập chung vào vấn đề chính: phân tích cảm xúc phân loại văn bản: • AG’s news: bao gồm tiêu đề phần mô tả báo từ 2000 nguồn khác Tập liệu có nhãn ứng theo thể loại báo • DBPedia 2014: bao gồm trích xuất thơng tin có cấu trúc từ Wikipedia, tập liệu có 14 nhãn ứng với tiêu đề phần tóm tắt báo Wikipedia • Yelp reviews 2015: bao gồm đánh giá địa điểm trang web "Yelp", nguồn liệu chia thành tập: tập thứ (Yelp Polarity) gồm nhãn “Tích cực” “Tiêu cực” tập thứ hai (Yelp Full) có số lượng nhãn ứng với số đánh giá • Yahoo! Answers: bao gồm câu hỏi trả lời từ chương trình Yahoo! Webscope, tập liệu có 10 nhãn • Amazon reviews: bao gồm đánh giá sản phẩm người dùng trang web "Amazon", tương tự Yelp nguồn liệu chia làm tập: tập thứ (Amazon Polarity) gồm nhãn “Tích cực” “Tiêu cực” tập thứ hai (Amazon Full) có số lượng nhãn ứng với số đánh giá Tập liệu Số mẫu huấn luyên Số mẫu kiểm thử Số nhãn AG 120K 7.6K DBP 560K 70K 14 Yelp P 560K 38K Yelp F 650K 50K Yah A 1.4M 60K 10 Amz F 3M 560K Amz P 3.6M 400K Bảng 4.2 Thống kê tập liệu mà sử dụng 4.2.3 Tiền xử lý liệu thực nghiệm Tiền xử lý liệu thực bao gồm bước: • Loại bỏ ký tự khơng phải alphabet, ký tự số ngoại trừ khoảng trắng • Tách từ, tạo từ điển để đánh số thứ tự cho từ, từ điển có kích thước tối đa 50000 từ (Tokenize) 41 • Chuyển từ sang dạng vector kích thước 300 (dựa vector từ word2vec công bố Google vào năm 2013) [2] thiết lập câu có độ dài sử dụng kỹ thuật padding Chiều dài tối đa câu 2.5 lần chiều dài trung bình tất câu tập liệu lọc, bị giới hạn thấp 64 cao 150 • Các từ khơng có vector từ khởi tạo ngẫu nhiên với giá trị trung bình (trung tâm) độ lệch chuẩn giá trị trung bình độ lệch chuẩn ma trận vector từ điển (50000 từ) 4.2.4 Các thiết lập trình huấn luyên thực nghiệm • Thuật tốn tối ưu hóa sử dụng Adam Optimizer với hàm chi phí softmax, learning rate khởi tạo 0.0005, kích thước Mini-Batch 128 • Thuật tốn tính mát: Categorical Crossentropy • Số lần huấn luyện tối đa (epoch) 20 Trong trình huấn luyện Learning rate giảm 10 lần độ xác không cải thiện (nhỏ 5e-6) Và dừng huấn luyện sau lần mà độ xác khơng cải thiện (2 tập liệu lớn) 4.2.5 Kết thực nghiệm Sau khoảng 20 huấn luyện chip đồ họa GTX 1060 ngôn ngữ lập trình python, kết thực nghiệm so sánh với mơ hình khác thể bảng Để dễ dàng so sánh đánh giá, đưa kết số nghiên cứu công bố khác Các kết xếp theo thứ tự tăng dần tỷ lệ lỗi (error rate) Kết tương đối khả xếp thứ khơng thua mơ hình đại khác mơ hình xếp có số tham biến số lớp lớn nhiều Mơ Hình AG DBP YelpP YelpF YahA AmzF AmzP Tổng word-CNN w/ tv (300-dim) [5] 6.57 0.84 2.9 32.39 24.85 36.24 3.79 107.58 char-CNN 29 layers (MaxPooling) [6] 8.73 1.29 4.28 35.74 26.57 37 4.31 117.92 Mơ hình tơi (BiLSTM-CNN) 7.68 1.07 4.47 36.95 26.25 38.11 4.33 118.86 fastText, h = 10, bigram [8] 7.5 1.4 4.3 36.1 27.7 39.8 5.4 122.2 char-level (Lg Full Conv Th.) [7] 9.51 1.55 4.88 38.04 29.58 40.54 5.51 129.61 char-level (Lg w2v Conv Th.) [7] 9.91 1.37 4.63 39.58 31.23 43.75 5.8 136.27 char-level (LSTM)[7] 13.94 1.45 5.26 41.83 29.16 40.57 6.1 138.31 char-level (Sm Lk Conv.) [7] 10.87 1.85 5.54 41.41 30.02 43.66 5.85 139.2 char-level (Bow TFIDF) [7] 10.36 2.63 6.34 40.14 28.96 44.74 9.00 142.17 char-level (ngrams TFIDF) [7] 7.64 1.31 4.56 45.2 31.49 47.56 8.46 146.22 Bảng 4.3 Tóp 10 mơ hình theo tỷ lệ lỗi (theo phần trăm) bao gồm mơ hình tơi đề xuất mơ hình khác lấy từ nghiên cứu nhóm tác giả cơng bố 42 4.3 Áp dụng mơ hình vào tập liệu thực 4.3.1 Nguồn liệu thực Tập liệu thực tế mà sử dụng đánh giá kết tập đánh giá sản phẩm điện thoại, máy tính bảng, láp top… trang thương mai điện tử thegioididong com Một vài ví dụ đánh giá mơ tả hình 37 Hình 4.2: Ví dụ đánh giá sản phẩm iPhone Xs Max Tập liệu có tất 15.000 đánh giá sản phẩm Trong tơi tiến hành gán nhãn cho 1000 theo khía cạnh là: "tổng quát", "thiết kế", "pin", "hiệu năng" "chụp hình" Số liệu cụ thể khía cạnh sau: Cảm xúc Tích cực Khơng đề cập Bình thường Tiêu cực Tổng quát Thiết kế 681 386 583 58 256 27 Pin Hiệu 298 460 507 228 65 33 130 279 Chụp hình 246 643 31 80 Bảng 4.4: Số liệu cụ thể khía cạnh tập liệu 4.3.2 Q trình xử lý liệu trích xuất đặc trưng khía canh Tương tự tập liệu Benchmark, loại bỏ ký tự alphabet, ký tự số ngoại trừ khoảng trắng khỏi đánh giá thu thập Sau đó, tiến hành word embedding với kĩ thuật word2vec tổng số mẫu, kích thước vector từ 300 đặc trưng Kết lưu dạng file BIN, huấn luyện nạp lên để chuyển từ câu thành vector 43 Tiếp theo, sử dung mơ hình đề xuất để huấn luyện cho khía cạnh riêng biệt cách độc lập Ban đầu mộ hình khởi tạo giá trị ngẫu nhiên cho trọng số học tầng BiLSTM tầng kết nối đầy đủ, với filter lớp tích chập (số lượng filter tầng tích chập [300;300;300;400;400;500;500]) Các trọng số filter cập nhật lại q trính huấn luyện thơng qua q trình lan truyền ngược (Backpropagation) nhằm điều chỉnh giá trị trọng số đăc biệt trọng số filter để trích lọc đặc trưng có ý nghĩa cảm xúc với khía cạnh tại, loại bỏ vơ hiệu hóa đặc trưng khía cạnh khác Như ứng với khía cạnh ta nhận trọng số riêng, trọng số lưu lại với cấu trúc mơ hình, phân tích cảm xúc cho mẫu mới, trọng số nạp lên sử dụng để đưa cảm xúc khía cạnh tương ứng 4.3.3 Kết thực nghiệm tập liệu thực Để đánh giá kết quả, chia tập liệu thành phần ngẫu nhiên dùng để huấn luyện kiểm thử với tỷ lệ 9:1, sau sử dụng mơ hình nêu phần mơ hình đề xuất với tham số sau: • Số lượng từ tối đa với số từ có 15.000 mẫu • Tiến hành embedding với kĩ thuật word2vec tổng số mẫu, kích thước 300 • Số lần huấn luyện 50 lần với minibath 128 Sau tiến hành huấn luyện tập liệu Kết mơ hình phân tích cảm xúc sau (kết phụ thuộc vào trình phân chia tập ngẫu nhiên độ xác trênh lệch khơng đáng kể): Khía cạnh Tổng qt Thiết kế Pin Hiệu Chụp hình Độ xác 91% 95% 84% 79% 89% Bảng 4.5: Kết phân tích cảm xúc lần huấn luyện 44 Hình 4.3: Một số ví dụ sử dụng kết huấn luyện để phân tích cảm xúc cho số đánh giá 4.4 Trực quan lên hệ thống website 4.4.1 Kiến trúc hệ thống tổng quát Hệ thống thiết kế sơ đồ hình 39 gồm module chính: crawler, mơ hình mạng nơ-ron huấn luyện sẵn để phân tích cảm xúc văn bản, database lưu trữ liệu ứng dụng web hiển thị kết thống kê Hình 4.4: Sơ đồ cấu trúc hệ thống 45 4.4.2 Bộ crawler Theo tìm hiểu tơi trang web thương mai điện tử, đa phần trang web có cấu trúc chia theo thư mục (category), mục có nhiều sản phẩm (product) Trong trang sản phẩm chứa nhiều đánh giá (review) khác Vì tơi định thiết kế crawler tự động truy cập vào category lấy tất đường dẫn sản phẩm Sau module vào đường dẫn sản phầm để lấy liệu bình luận đánh giá người dùng, liệu crawl đưa vào mô hình mạng nơ-ron để phân tích cảm xúc, kết cuối lưu trữ database Bộ crawler chạy định kì theo thời gian, nhờ mà liệu database thường xuyên cập nhật liệu Chính nhờ mà hệ thống thu thập ý kiến khách hàng gần real-time Trong phạm vi đề tài, thực crawl cho mặt hàng trang web thegioididong.com 4.4.3 Mơ hình mạng nơ-ron Mơ hình mạng nơ-ron kết huấn luyện áp dụng mô hình đề xuất để xử lý liệu thực tế nói Để sử dụng mơ hình chúng tơi sử dụng thư viện Flask để tạo HTTP microservice làm trung gian thành phần khác hệ thống mơ hình huấn luyện Keras Các mơ hình nạp lên hệ thống khởi động, ứng với khía cạnh có mơ hình dùng để đánh giá cảm xúc tác giả bình luận khía cạnh 4.4.4 Database lưu trữ Để lưu trữ lượng thông tin lớn này, sữ dụng hệ quản trị sở liệu oracle đặc tính dễ dàng thay đổi cấu trúc, tương thích với nhiều hệ thơng khác xử lý tốt lượng liệu lớn Hình 4.5: Mơ tả bảng liệu lưu đánh giá phân tích cảm xúc 46 4.4.5 Hệ thống website thống kê Ứng dụng web bao gồm hai chức chính: trang nhập bình luận để phân tích cảm xúc trực tiếp trang báo cáo thông kê Về chức báo cáo thông kê cho thấy số lượng bình luận sản phẩm, từ đưa tỉ lệ bình luận tích cực khía cạnh trung bình khía cạnh giúp người sử dụng nhanh cho đưa nhìn tổng khác hàng sản phẩm, đưa chiến lược đắn Hình 4.6: Chức phân tích cảm xúc trực tiếp nhập văn vào Hình 4.7: Báo cáo thơng kê sản phẩm 47 Chương 5: Công nghệ sử dụng 5.1 Ngơn ngữ lập trình 5.1.1 Python Python ngơn ngữ lập trình thơng dịch, thiết kế trọng vào tính dễ đọc đoạn mã cho phép lập trình viên diễn tả khái niệm với vài dòng lệnh Python sử dụng hệ thống kiểu động (dynamic type system), chế cấp phát nhớ tự động hỗ trợ nhiều mô hình lập trình lâp trình hướng đối tượng, lập trình hàm lập trình thủ tục Tối sử dụng Python phiên 3.6 làm ngơn ngữ lập trình ngồi ưu điểm trên, Python cịn ngôn ngữ nhiều framework học sâu hỗ trợ (Tensorflow, Keras, ) 5.1.2 Javascript Javascript ngôn ngữ lập trình cấp cao, có hệ thống kiểu động ngôn ngữ thông dịch Javascript ngôn ngữ phổ biến cơng nghệ để xây dựng nội dung web Hầu hết trang web dùng Javascript, tất trình duyệt đại hỗ trợ Javascript Javascript hỗ trợ nhiều mơ hình lập trình lập trình hướng đối tượng, lập trình hàm lập trình thủ tục Cùng với HTML CSS, Javascript phần khơng thể thiếu lập trình web nội dung internet Javascript ngôn ngữ mà chọn để xây dựng trang web với HTML CSS Tất trang web mà viết có sử dụng Javascript thư viện viết Javascript jQuery, Ajax, eChart, 5.2 Các Framework library 5.2.1 TensorFlow TensorFlow thư viện mã nguồn mở dùng cho việc tính tốn số học sử dụng mơ hình đồ thị luồng liệu (data flow graphs) Các node đồ thị biểu thị cho phép tính tốn, cạnh đồ thị biểu diễn mảng đa chiều chứa liệu (còn gọi tensor) truyền qua cạnh Kiến trúc đặc biệt giúp cho việc triển khai tác vụ tính tốn cách linh hoạt hay nhiều CPU GPU máy tính cá nhân, hệ thống máy chủ hay thiết bị di động mà khơng cần viết lại mã nguồn TensorFlow cịn hỗ trợ mạnh việc xây dựng sử dụng mơ hình học máy học sâu Tơi sử dụng TensorFlow phiên 1.12 (thông qua API cấp cao Keras) để xây dựng mơ hình thực huấn luyện liệu 5.2.2 Keras Keras thư viện mã nguồn mở dùng cho Deep Learning, chạy Theano Tensorflow 48 Keras thiết kế để hỗ trợ thực mơ hình Deep Learning nhanh phục vụ cho nghiên cứu phát triển ứng dụng Keras phát triển với ngun tắc chính: • Mơ đun: Một mơ hình hiểu chuỗi đồ thị riêng lẻ Các thành phần mơ hình học sâu Keras tách thành phần riêng kết hợp tùy ý lại với cách dễ dàng để hình thành nên mơ hình • Thân thiện với người dùng: Keras API thiết kế cho người Keras đặt trải nghiệm người dùng lên hàng đầu, đưa API đồng đơn giản, tối thiểu hóa số thao tác cần thiết cho tác vụ phổ biến • Dễ dàng mở rộng: Các mơ đun dễ dàng thêm vào sử dụng bên thư viện, điều đặc biệt hữu dụng nhà nghiên cứu muốn thử nghiệm khám phá ý tưởng • Làm việc với Python: Thư viện viết hoàn tồn Python Các mơ hình miêu tả Python, với đặc tính nhỏ gọn, dễ dàng kiểm tra lỗi cho phép dễ dàng mở rộng Keras trọng vào ý tưởng mơ hình Kiểu mơ hình gọi Sequence - ngăn xếp (stack) tầng (layer) Hình 5.1: Một đoạn code sử dụng keras cho mơ hình tơi 5.2.3 Flask Flask micro web framework viết Python, không yêu cầu tool hay thư viện cụ thể “Micro” khơng có nghĩa thiếu chức mà “micro” theo triết lý thiết kế cung cấp lõi chức “súc tích” cho ứng dụng web người dùng mở rộng lúc Flask ln hỗ trợ thành phần tiện ích mở rộng cho ứng 49 dụng tích hợp sở liệu, xác thực biểu mẫu, xử lý upload, công nghệ xác thực, template, email, RESTful , khác bạn muốn bạn đưa vào thơi Người dùng tập trung xây dựng web application từ đầu khoảng thời gian ngắn phát triển quy mơ ứng dụng tùy theo yêu cầu 5.3 Công cụ thiết bị 5.3.1 Jupyter Notebook Jupyter Notebook cụ định dạng văn cho phép lập trình kết hợp với phần tử khác văn bản, hình ảnh, liên kết, cơng thức Jupyter Notebook vừa chứa mơ tả q trình phân tích liệu kết phân tích vừa có khả hỗ trợ thực thi tác vụ phân tích liệu Hình 5.2: Ví dụ trực quan mảng chiều Jupyter Notebook 5.3.2 Chíp xử lý Để tiến hành thực nghiêm tơi sử dụng chíp đồ họa GTX 1060 OC3 chứa 1152 nhân CUDA, hỗ trợ theo chíp CPU: Intel® Xeon® Processor E5-2620 v4 giúp cho tốc độ huấn luyện cải thiện nhiều CUDA (Compute Unified Device Architecture) kiến trúc tính tốn song song NVIDIA phát triển Nói cách ngắn gọn, CUDA động tính tốn đơn vị xử lý đồ họa (GPU) NVIDIA, lập trình viên sử dụng thơng qua ngơn ngữ lập trình phổ biến Lập trình viên dùng ngơn ngữ C cho CUDA, dùng trình biên dịch PathScale Open64 C, để cài đặt thuật toán chạy GPU Kiến trúc CUDA hỗ trợ chức tính tốn thơng qua ngôn ngữ C CUDA cho phép nhà phát triển truy nhập vào tập lệnh ảo nhớ phần tử tính tốn song song đơn vị xử lý đồ họa CUDA (CUDA GPU) Sử dụng CUDA, GPU NVIDIA sản xuất dễ dàng thực tính tốn CPU Tuy nhiên, không giống CPU, GPU có kiến trúc song song tồn giúp cho tập trung vào khả thực thi cách chậm rãi nhiều luồng liệu lúc, thực thi nhanh luồng liệu Các bên thứ ba phát triển để hỗ trợ CUDA Python, Fortran, Java MATLAB 50 Chương 6: Tổng kết 6.1 Kết đạt Thông qua việc tìm hiểu ứng dụng kiến thức deep learning, tơi thiết kế mơ hình kiến trúc mạng kết hợp mạng nơ-ron hồi quy nhớ ngắn-dài mạng nơ-ron tích chập mức từ với độ sâu trung bình thu kết tương đối tốt toán phân loại văn Mơ hình đề xuất sử dụng kĩ thuật embedding, chứa lớp nơ-ron hồi quy nhớ ngắn-dài với nhiều lớp tích chập - pooling chồng lên để trích xuất lựa chọn đặc trưng Qua q trình thí nghiệm đánh giá cho thấy mơ hình cho kết tương đối khả quan với tập liệu đo lường tập liệu thực tế Tôi phát triển hệ thống thể đánh giá người dùng sản phẩm Hệ thống bao gồm nhiều thành phần dịch vụ crawler để lấy bình luận sản phẩm từ trang thương mại điện tử, dịch vụ sử dụng mơ hình deep learning để nhận biết khía cạnh, phân tích cảm xúc bình luận ứng dụng web để thể giá trị thống kê cho nhìn tổng quan đánh giá người dùng sản phẩm 6.2 Tồn hạn chế Cơng việc tơi cịn nhiều hạn chế cần khắc phục sau: • Mơ hình đề xuất cho hiệu suất tốt chưa đạt kết tốt so với mơ hình đưa gần • Các tinh chỉnh mơ hình cịn chưa tối ưu, cần thêm trình thử chỉnh sửa để đạt thông số cho hiệu tốt • Do thiếu nguồn liệu thực tế nên việc thử nghiệm đánh giá tập liệu thực tế cịn thơ sơ chưa có nhiều ý nghĩa thực tiễn • Độ dài số lượng khía cạnh trích xuất từ văn giới hạn mức không lớn Cụ thể đề tài giới hạn độ dài văn nhỏ 150 từ số lượng khía cạnh tối đa trích xuất 500 6.3 Cải tiến tương lai Trong tương lai, hi vọng cố gắng cải tiến mơ hình để tăng tốc thời gian tính tốn cho kết xác hơn: • Tiếp tục nghiên cứu đào sâu vào deep learning để phát triển mơ hình đạt hiệu ngày tốt • Xem xét kĩ thuật công bố gần thử nghiệm kĩ thuật phù hợp vào mơ hình • Tìm kiếm thu thập nhiều liệu thực tế để điều chỉnh mơ hình cho thích hợp với ứng dụng thực tế lý thuyết 51 THAM KHẢO [1] Xavier Glorot, Antoine Bordes, and Yoshua Bengio Deep sparse rectifier neural networks International Conference on Artificial Intelligence and Statistics, p315– 323 2011 [2] Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov Dropout: A Simple Way to Prevent Neural Networks from Overfitting Journal of Machine Learning, Vol 15 p1929-1958 2014 [3] Y Kim, “Convolutional neural networks for sentence classification,” in Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, EMNLP 2014, October 25-29, 2014, Doha, Qatar, A meeting of SIGDAT, a Special Interest Group of the ACL, 2014, pp 1746–1751 [4] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean Efficient estimation of word representations in vector space ICLR Workshop, 2013 [5] R Johnson and T Zhang “Convolutional neural networks for text categorization: shallow word-level vs deep character-level” arXiv:1609.00718, 2016 [6] A Conneau, H Schwenk, L Barrault, and Y LeCun, “Very deep convolutional networks for natural language processing,” CoRR, vol abs/1606.01781, 2016 [7] X Zhang, J J Zhao, and Y LeCun, “Character-level convolutional networks for text classification,” in Advances in Neural Information Processing Systems 28: Annual Conference on Neural Information Processing Systems 2015, December 7-12, 2015, Montreal, Quebec, Canada, 2015, pp 649–657 [8] E Grave, T Mikolov, A Joulin, and P Bojanowski, “Bag of tricks for efficient text classification,” in Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics, EACL 2017, Valencia, Spain, April 3-7, 2017, Volume 2: Short Papers, 2017, pp 427– 431 [9] Sergey Ioffe and Christian Szegedy 2015 Batch normalization: Accelerating deep network training by reducing internal covariate shift In ICML, pages 448–456, Lille, France [10] S Hochreiter and J Schmidhuber Long short-term memory Neural Comput., 9(8):1735–1780, Nov 1997 52 ...UBND TỈNH BÌNH DƯƠNG TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT TƠ VĂN DUY PHÂN TÍCH CẢM XÚC ĐỂ ĐÁNH GIÁ CHẤT LƯỢNG SẢN PHẨM DỰA TRÊN NHẬN XÉT CỦA NGƯỜI DÙNG SỬ DỤNG MƠ HÌNH HỌC SÂU LUẬN VĂN THẠC SỸ CHUYÊN NGÀNH:... 8480104 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS QUẢN THÀNH THƠ BÌNH DƯƠNG – 2019 Lời Cam Đoạn Tơi xin cam đoan rằng, luận văn "Phân tích cảm xúc để đánh giá chất lượng sản phẩm dựa nhận xét người dùng sử dụng. .. 38 Hình 4.1 Cấu trúc mơ hình tơi đề xuất .39 Hình 4.2: Ví dụ đánh giá sản phẩm iPhone Xs Max .43 Hình 4.3: Một số ví dụ sử dụng kết huấn luyện để phân tích cảm xúc cho số đánh giá