Luận văn Thạc sĩ Kỹ thuật phần mềm: Hướng tiếp cận dựa trên học máy cho bài toán trích xuất thông tin quan điểm

24 7 0
Luận văn Thạc sĩ Kỹ thuật phần mềm: Hướng tiếp cận dựa trên học máy cho bài toán trích xuất thông tin quan điểm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận văn sẽ trình bày về lý thuyết mạng neural RNN và cải tiến của nó là LSTM cùng với một số thuật toán học máy quan trọng trong quá trình xử lý dữ liệu ngôn ngữ. Cuối cùng, luận văn sẽ mô tả việc áp dụng và kết quả khi sử dụng mô hình LSTM trong bài toán trích xuất thông tin quan điểm. Thuật toán sẽ được đánh giá dựa trên hai tập dữ liệu tiếng Anh và tiếng Việt.

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM HÙNG HƢỚNG TIẾP CẬN DỰA TRÊN HỌC MÁY CHO BÀI TỐN TRÍCH XUẤT THƠNG TIN QUAN ĐIỂM Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS NGUYỄN VĂN VINH HÀ NỘI - 2017 LỜI CAM ĐOAN Tôi Phạm Hùng, học viên lớp Kỹ Thuật Phần Mềm K21 xin cam đoan báo cáo luận văn đƣợc viết dƣới hƣớng dẫn thầy giáo, tiến sĩ Nguyễn Văn Vinh Tất kết đạt đƣợc luận văn trình tìm hiểu, nghiên cứu riêng tơi Trong tồn nội dung luận văn, điều đƣợc trình bày kết cá nhân đƣợc tổng hợp từ nhiều nguồn tài liệu khác Các tài liệu tham khảo có xuất xứ rõ ràng đƣợc trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày … tháng …… năm 2017 Ngƣời cam đoan Phạm Hùng MỤC LỤC MỤC LỤC TÓM TẮT NỘI DUNG MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ BÀI TOÁN 1.1 Khái niệm quan điểm 1.2 Bài tốn trích xuất thơng tin quan điểm 1.3 Các hƣớng tiếp cận giải toán 1.3.1 Mơ hình Support Vector Machine 1.3.2 K-nearest neighbors CHƢƠNG 2: MẠNG NEURAL VÀ RNN 2.1 Mạng neural nhân tạo ANN 2.1.1 Mạng nơ-ron sinh học 2.1.2 Kiến trúc tổng quát mạng neural nhân tạo 2.2 Mạng neural hồi quy RNN 2.3 Vấn đề lƣu trữ thông tin ngữ cảnh phụ thuộc lâu dài 2.4 Mạng Long short-term memory CHƢƠNG 3: RNN CHO BÀI TỐN TRÍCH XUẤT QUAN ĐIỂM 3.1 Bài tốn trích xuất thơng tin quan điểm sử dụng RNN 3.2 Một số phƣơng pháp vector hóa từ 3.2.1 Bag of Words 3.2.2 TF-IDF 3.2.3 Word2vec 3.3 Áp dụng LSTM tốn trích xuất thơng tin quan điểm CHƢƠNG 4: KẾT QUẢ THỰC NGHIỆM 10 4.1 Bộ ngữ liệu 10 4.1.1 Bộ ngữ liệu tiếng Anh (Food Reviews) 10 4.1.2 Bộ ngữ liệu tiếng Việt 10 4.2 Cài đặt thử nghiệm 11 4.2.1 Bƣớc tiền xử lý 11 4.2.2 Xây dựng model Word2vec 12 4.2.3 Word Embedding 13 4.2.4 Huấn luyện mơ hình LSTM 14 4.2.5 Cài đặt số phƣơng pháp học có giám sát kinh điển 17 4.3 Kết trích xuất thơng tin quan điểm 18 4.3.1 Một số thử nghiệm kết ngữ liệu tiếng Anh 18 4.3.2 Một số thử nghiệm kết ngữ liệu tiếng Việt 19 4.4 Nhận xét 20 CHƢƠNG 5: KẾT LUẬN 21 TÀI LIỆU THAM KHẢO 22 BẢNG CÁC TỪ VIẾT TẮT Viết tắt Đầy đủ Ý nghĩa RNN Recurrent Neural Network Mạng neural hồi quy ANN Artificial Neural Network Mạng neural nhân tạo NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên LSTM Long short-term memory Mạng neural cải tiến giải vấn đề phụ thuộc từ dài CNN Convolutional Neural network Mạng neural tích chập SVM Support Vector Machine Máy vector hỗ trợ TÓM TẮT NỘI DUNG Mạng neural hồi quy RNN đƣợc áp dụng rộng rãi tốn xử lý ngơn ngữ tự nhiên NLP Do mạng hồi quy RNN mơ hình hóa đƣợc chất liệu NLP nhƣ đặc tính chuỗi phụ thuộc lẫn thành phần theo thứ tự Ngoài ra, lực tính tốn máy tính ngày mạnh mẽ nên thực hóa đƣợc việc huấn luyện mạng neural hồi quy nhiều tham số vốn yêu cầu nhiều bƣớc tính tốn so với mạng neural thơng thƣờng Do đó, việc áp dụng mạng RNN coi bƣớc đột phá xử lý ngôn ngữ Luận văn trình bày lý thuyết mạng neural RNN cải tiến LSTM với số thuật toán học máy quan trọng trình xử lý liệu ngơn ngữ Cuối cùng, luận văn mô tả việc áp dụng kết sử dụng mơ hình LSTM tốn trích xuất thơng tin quan điểm Thuật tốn đƣợc đánh giá dựa hai tập liệu tiếng Anh tiếng Việt 6 MỞ ĐẦU Trong thời đại nay, nhằm phục vụ cho nhu cầu sống ngày cao ngƣời, sản phẩm dịch vụ có bƣớc phát triển mạnh mẽ Có thể kể đến từ sản phẩm đáp ứng nhu cầu thƣờng ngày ngƣời nhƣ quần áo, sách, tạp chí, đồ dùng cá nhân nhu cầu cao thị hiếu, du lịch, thẩm mĩ Với loại sản phẩm dịch vụ phong phú chủng loại, chất lƣợng, cạnh tranh giá tới từ nhiều nhà cung cấp khác Do đó, việc trì phát triển sản phẩm dịch vụ có đƣợc mạng lƣới ngƣời sử dụng rộng rãi địi hỏi nhiều cơng sức Một phƣơng pháp hiệu lắng nghe ý kiến phản hồi khách hàng sản phẩm dịch vụ Dựa ý kiến phản hồi này, nhà cung cấp sản phẩm dịch vụ đánh giá đƣợc thị hiếu sản phẩm, hiệu chiến lƣợc marketing quảng bá sản phẩm hay điều chỉnh sản phẩm phù hợp để đạt đƣợc hiệu kinh doanh tốt Cơng việc có tên gọi trích xuất thơng tin quan điểm ngƣời dùng Đây tốn nhƣng có ứng dụng lớn sống Cùng với phát triển thiết bị di động mạng internet, ngƣời dùng có nhiều kênh để tƣơng tác với nhà cung cấp dịch vụ Có thể kể đến kênh truyền thống nhƣ email, điện thoại, fax hình thức nhƣ viết phản hồi trang mạng xã hội, viết review sản phẩm, phản hồi trang giới thiệu sản phẩm hay diễn đàn Từ nguồn kể trên, liệu đƣợc thu thập lại dƣới dạng văn Từ liệu dạng văn bản, luận văn trình bày phƣơng pháp áp dụng học máy để xử lý thông tin văn nhằm trích xuất đƣợc thơng tin quan điểm ngƣời dùng Luận văn đƣợc chia thành phần sau: Chƣơng 1: Trình bày tổng quan tốn trích xuất thơng tin quan điểm số khái niệm liên quan Đồng thời, tơi trình bày thách thức việc trích xuất thơng tin quan điểm sử dụng mơ hình học máy Chƣơng 2: Trình bày phƣơng pháp số thuật toán sử dụng cho tốn trích xuất thơng tin quan điểm Trong đó, tơi trình bày kỹ mơ hình mạng Recurrent Neural Network (RNN), mơ hình tiên tiến đƣợc áp dụng cho việc xử lý thông tin dạng chuỗi nhƣ văn Chƣơng 3: Trình bày việc áp dụng mơ hình RNN cho tốn phân tích quan điểm Chƣơng 4: Kết số thử nghiệm Chƣơng 5: Kết luận 7 CHƢƠNG 1: TỔNG QUAN VỀ BÀI TỐN 1.1 Khái niệm quan điểm 1.2 Bài tốn trích xuất thơng tin quan điểm Bài tốn trích xuất thơng tin quan điểm dựa thông tin phản hồi ngƣời sử dụng nhằm phân loại phản hồi tích cực hay tiêu cực Thơng tin phản hồi ngƣời dùng đƣợc tổng hợp dƣới dạng văn từ nhiều nguồn khác nhƣ trang bán hàng, Facebook, hệ thống chợ Google hay Apple Dựa đánh giá ngƣời dùng, kết chiến lƣợc marketing hay quảng bá sản phẩm đƣợc xác định có hiệu hay khơng Bài tốn trích xuất thơng tin quan điểm (sentiment analysis) lĩnh vực nghiên cứu ý kiến, quan điểm, đánh giá, thái độ cảm xúc ngƣời đối tƣợng Trích xuất thơng tin quan điểm thu hút đƣợc quan tâm lớn cộng đồng nghiên cứu nói chung cộng đồng xử lý ngôn ngữ tự nhiên nói riêng hai yếu tố: Thứ nhất, bùng nổ thông tin mạng xã hội nên ngƣời tự chia sẻ ý kiến cảm nghĩ Trong lịch sử loài ngƣời, thời điểm lƣợng thơng tin nói chung thơng tin ý kiến quan điểm nói riêng phát triển nhanh mạnh Lƣợng thông tin chia sẻ mạng xã hội khổng lồ Nhận thấy khai thác thông tin từ lƣợng liệu khổng lồ cho phép khai phá nhiều thơng tin quan trọng giúp xác định giải nhiều vấn đề Đơn cử nhƣ dự đốn, định hƣớng xu công nghệ, thời trang, tiêu dùng xã hội Thứ hai, đa dạng kết thấy rõ áp dụng vào số lĩnh vực nhƣ phân tích tâm lý ngƣời dùng, nghiên cứu thị trƣờng Ví dụ nhƣ kinh doanh, việc phân tích nắm đƣợc ý kiến phản hồi ngƣời sử dụng, khách hàng giúp tổ chức, cá nhân nhận điểm hạn chế sản phẩm, dịch vụ cung cấp Họ kịp thời có giải pháp khắc phục để đáp ứng đƣợc nhu cầu sử dụng thị trƣờng, nâng cao kết kinh doanh nhờ nắm bắt đƣợc thị hiếu kênh chăm sóc khách hàng hiệu Quan điểm đƣợc chia làm chủ yếu hai loại tích cực (positive) tiêu cực (negative) Ngoài số trƣờng hợp xét tới loại thứ ba trung lập (neural) 1.3 Các hƣớng tiếp cận giải tốn 1.3.1 Mơ hình Support Vector Machine 1.3.2 K-nearest neighbors CHƢƠNG 2: MẠNG NEURAL VÀ RNN 2.1 Mạng neural nhân tạo ANN 2.1.1 Mạng nơ-ron sinh học 2.1.2 Kiến trúc tổng quát mạng neural nhân tạo 2.2 Mạng neural hồi quy RNN Các mạng ANN làm đƣợc điều chất khơng mơ khía cạnh thời gian Giả sử bạn muốn phân loại kiện xảy thời điểm phim Mạng ANN khó đƣợc vận dụng để dự đoán đƣợc kiện xảy thời điểm cần xét mà không vào kiện trƣớc phim Mạng ANN cho neural thành phần lớp đầu vào, lớp ẩn lớp đầu độc lập mặt thời gian Trong đó, tính chất thời gian trƣớc sau lại đặc trƣng ngôn ngữ văn hay xử lý ngôn ngữ tự nhiên 2.3 Vấn đề lƣu trữ thông tin ngữ cảnh phụ thuộc lâu dài Trên lý thuyết, mạng RNN phát sinh nhớ đủ để xử lý vấn đề lƣu trữ phụ thuộc dài Tuy nhiên, thực tế khơng phải Vấn đề đƣợc Hochreiter (1991) đƣa nhƣ thách thức mạng RNN Và mạng Long short-term memory (LSTM) đƣợc phát biểu năm 1997 giải đƣợc vấn đề 2.4 Mạng Long short-term memory Long short term memory cải tiến mạng RNN nhằm giải vấn đề học, lƣu trữ thông tin ngữ cảnh phụ thuộc dài xem xét cách LSTM [9] cải tiến so với mạng RNN Trong mô hình RNN, thời điểm t giá trị vector ẩn ht đƣợc tính hàm LSTM có cấu trúc mắt xích tƣơng tự, nhƣng module lặp có cấu trúc khác hẳn Thay có layer neural network, LSTM có tới bốn layer, tƣơng tác với theo cấu trúc cụ thể Christopher Olah [10] có cách giải thích cụ thể cách hoạt động RNN Hình 2.1 Module lặp mạng LSTM RNN CHO BÀI TỐN TRÍCH XUẤT QUAN ĐIỂM 3.1 Bài tốn trích xuất thông tin quan điểm sử dụng RNN 3.2 Một số phƣơng pháp vector hóa từ 3.2.1 Bag of Words 3.2.2 TF-IDF 3.2.3 Word2vec Giới thiệu Chi tiết cách thực 3.3 Áp dụng LSTM tốn trích xuất thơng tin quan điểm Việc giải tốn trích xuất thơng tin quan điểm bao gồm việc giải chuỗi toán nhỏ Chuỗi toán nhỏ đƣợc gọi pipeline mơ hình học máy Hình 2.2 Pipeline tốn trích xuất thông tin quan điểm sử dụng RNN Tiền xử lý kho ngữ liệu Xây dựng model vector hóa Word2vec cho tập ngữ liệu Word Embedding sử dụng mơ hình kết Word2vec để vector câu tập ngữ liệu Áp dụng mạng RNN để giải toàn bao gồm bƣớc nhỏ: xây dựng model RNN, huấn luyện model RNN, kiểm tra model RNN 10 CHƢƠNG 3: KẾT QUẢ THỰC NGHIỆM 4.1 Bộ ngữ liệu Luận văn sử dụng hai ngữ liệu tiếng Anh tiếng Việt đƣợc thu thập từ đánh giá ngƣời dùng Các kết thử nghiệm bao gồm việc turning hyper parameter mơ hình LSTM cuối so sánh kết LSTM với thuật toán state-of-art sử dụng hai ngữ liệu tiếng Việt tiếng Anh 4.1.1 Bộ ngữ liệu tiếng Anh (Food Reviews) Bộ ngữ liệu tiếng Anh Food Reviews lấy liệu từ Amazon [17] Dữ liệu đƣợc thu thập 10 năm, bao gồm 568.454 đánh giá sản phẩm đồ ăn trang thƣơng mại điện từ Amazon Dữ liệu bao gồm thông tin sản phẩm, thơng tin ngƣời dùng, xếp hạng ƣa thích phần liệu văn ghi lại đánh giá ngƣời dùng Hình 3.1 Bộ ngữ liệu tiếng Anh Positive Neural Negative Review/score 4-5 0-2 Số lƣợng đánh giá 443.777 42.640 82.037 Hình 3.2 Phân bố loại câu ngữ liệu tiếng Anh Làm vài khảo sát tập liệu tơi có số thông tin nhƣ sau: câu dài 1103 từ; độ dài câu gồm 13 từ có số lƣợng câu lớn 19166 câu Tính đƣợc độ dài câu có mean = 35.29 sigma = 31.76 4.1.2 Bộ ngữ liệu tiếng Việt Bộ ngữ liệu tiếng Việt gồm 5.100 nhận xét sản phẩm tin học bao gồm 1.700 nhận tích cực, tiêu cực trung tính loại Tập test bao gồm 1.050 nhận xét gồm 350 nhận xét loại Câu dài có 2.716 từ câu ngắn có từ Trung bình số từ câu 28,4 từ 11 Tích cực Trung tính Tiêu cực 1.700 1.700 1.700 4.2 Cài đặt thử nghiệm Các thử nghiệm đƣợc cài đặt sử dụng ngôn ngữ python [16] môi trƣờng python 3.6 Một số thƣ viện python sử dụng thực nghiệm gồm: Thƣ viện Numpy Thƣ viện xử lý mảng, ma trận thực phép tính nhƣ nhân ma trận, tính ma trận chuyển vị … Re Thƣ viện biểu thức quy Regular Expression Pandas Đọc liệu lớn Sklearn Thƣ viện hỗ trợ cài đặt thuật toán nhƣ SVM, ANN Gensim Thƣ viện hỗ trợ cài đặt mô hình Word2vec TensorFlow Thƣ viện mạnh cho học máy hỗ trợ cài đặt mơ hình, huấn luyện kiểm thử mơ hình Matplotlib Thƣ viện vẽ loại đồ thị hình 4.2.1 Bƣớc tiền xử lý Tiền xử lý bƣớc quan trọng không so với bƣớc xây dựng mơ hình tốn Theo Andrew Ng [8] tiền xử lý tốt mang lại kết tốt không ngờ cho tồn mơ hình Tại bƣớc tiền xử lý, chủ yếu thực việc loại bỏ ký tự HTML, ký tự chữ Hàm loại bỏ ký tự nhiễu đầu vào phản hồi khách hàng đầu phản hồi đƣợc làm mịn Mã python hàm loại bỏ ký tự nhiễu có dạng: def clean_sentence(sentence): # Remove HTML review_text = BeautifulSoup(sentence).text # Remove non-letters letters_only = re.sub("[^a-zA-Z]", " ", review_text) return letters_only Tiếp đó, tơi thực loại bỏ từ stopword phản hồi 12 def review_to_words(review): """ Function to convert a raw review to a string of words :param review :return: meaningful_words """ # Convert to lower case, split into individual words words = review.lower().split() # # In Python, searching a set is much faster than searching # a list, so convert the stop words to a set stops = set(stopwords.words("english")) # # Remove stop words meaningful_words = [w for w in words if not w in stops] # # Join the words back into one string separated by space, # and return the result return " ".join(meaningful_words) Đối với ngữ liệu tiếng Việt cần thêm bƣớc tách từ, dùng số cơng cụ tách từ có sẵn nhƣ Đơng Du [3] tác giả Lƣu Tuấn Anh 4.2.2 Xây dựng model Word2vec Từ mảng phản hồi đƣợc tiền xử lý, thực xây dựng mơ hình Word2vec Mơ hình Word2vec xây dựng từ điển từ giá trị ánh xạ vector cho từ Khi đƣa câu vào, dựa giá trị window tách đƣợc cặp từ mô tả xuất từ với từ xung quanh Giả sử câu “Em thấy thiết kế sony đẹp hơn”, hình dƣới mô tả việc lấy cặp từ để đƣa vào huấn luyện từ “thiết kế” 13 Hình 3.3 Cách lấy cặp từ đưa vào huấn luyện Word2vec Bản chất huấn luyện Word2vec dựa vào tần suất xuất cặp từ để dự đoán từ câu Từ đó, tính tốn tối ƣu hàm mát cập nhật tham số feature từ Xây dựng model word2vec sử dụng thƣ viện Gensim nhƣ sau from gensim.models import Word2vec model = Word2vec(doc, size=100, window=10, min_count=3, workers=4, sg=1); model.save("food.w2v") min_count: giá trị ngƣỡng từ Những từ có tần suất xuất lớn min_count đƣợc đƣa vào mơ hình word2vec Window: giá trị cửa sổ từ Tại vị trí từ xét ghi nhận giá trị window từ đứng trƣớc đứng sau từ Size: số lƣợng feature mong muốn Sg: sử dụng thuật toán CBOW skip-model để huấn luyện 4.2.3 Word Embedding Word Embedding trình đƣa từ câu dạng để mơ hình tốn hiểu đƣợc Cụ thể từ dạng text, từ đƣợc chuyển dạng vector đặc trƣng để đƣa vào mơ hình LSTM Trƣớc đƣa dạng vector câu cần đƣợc chuẩn hóa độ dài Chọn max_seq_len độ dài câu, tất câu tập huấn luyện đƣợc cắt nối để có độ dài max_seq_len Khi câu đƣợc đƣa vào, trƣớc tiên đƣợc embedding theo số index tƣơng ứng từ điển Sau đó, dựa từ điển kết word2vec thu đƣợc embedding tồn câu dƣới dạng ma trận nhƣ hình dƣới 14 Hình 3.4 Quá trình word embedding câu Tƣơng ứng nhãn câu đƣợc embedding theo bảng sau Tích cực Trung tính Tiêu cực [1,0,0] [0,1,0] [0,0,1] 4.2.4 Huấn luyện mơ hình LSTM Huấn luyện mơ hình tơi đƣa vào mơ hình batch_size số câu lƣợt huấn luyện Cách đƣa vào batch_size khơng đƣa tồn mơ hình dựa tƣ tƣởng thuật toán Mini-batch Gradient Decent Thuật toán lấy ngẫu nhiên không lặp lại batch_size liệu từ tập huấn luyện Mơ tả q trình word embedding với batch_size câu nhƣ sau 15 Hình 3.5 Đưa batch_size câu vào mơ hình huấn luyện Để xây dựng mơ hình LSTM tơi sử dụng thƣ viện TensorFlow [18], mã nguồn mở mạnh học máy đƣợc nhiều hãng lớn nhƣ Google sử dụng sản phẩm thƣơng mại Trƣớc tiên, cần tạo TensorFlow graph Để xây dựng TensorFlow graph, định nghĩa số siêu tham số (hyperparameter) nhƣ batch_size, số lƣợng LSTM units, số lƣợng vòng lặp train vocab_size = 20000 batch_size = 512 lstm_units = 64 iterations = 100000 Đối với TensorFlow graph, định nghĩa placeholders liệu nhãn dựa số chiều ma trận tƣơng ứng import TensorFlow as tf tf.reset_default_graph() labels = tf.placeholder(tf.float32, [batch_size, numClasses]) input_data = tf.placeholder(tf.int32, [batch_size, max_seq_len]) data = tf.Variable(tf.zeros([batch_size, max_seq_len, num_feature]),dtype=tf.float32) data = tf.nn.embedding_lookup(wordVectors,input_data) Sử dụng hàm embedding_lookup cho việc embedding batch_size câu đầu vào Số chiều data (batch_size x max_seq_len x num_feature) đƣa data vào mơ hình 16 LSTM việc sử dụng hàm tf.nn.rnn_cell.BasicLSTMCell Hàm BasicLSTMCell đầu vào siêu tham số lstm_units số lƣợng units layer LSTM Tham số phải đƣợc tinh chỉnh phù hợp tập liệu để đạt kết tốt Ngồi ra, huấn luyện mơ hình mạng neural, tơi nên dropout bớt tham số để tránh mơ hình bị overfitting lstmCell = tf.contrib.rnn.BasicLSTMCell(lstm_units) lstmCell = tf.contrib.rnn.DropoutWrapper(cell=lstmCell, output_keep_prob=0.75) value, _ = tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float32) Việc mơ hình hóa LSTM tơi có nhiều cách để xây dựng tơi xếp chồng nhiều lớp LSTM lên nhau, vector ẩn cuối lớp LSTM thứ đầu vào lớp LSTM thứ Việc xếp chồng nhiều lớp LSTM lên đƣợc coi cách tốt để lƣu giữ phụ thuộc ngữ cảnh xa lâu dài Tuy nhiên số lƣợng tham số tăng gấp số lớp lần, đồng thời tăng thời gian huấn luyện, cần thêm liệu dễ bị overfitting Trong khuôn khổ tập liệu thu thập đƣợc luận văn, không xếp chồng lớp LSTM thử nghiệm với nhiều lớp LSTM không hiệu gây overfitting Đầu mơ hình LSTM vector ẩn cuối cùng, vector đƣợc thay đổi để tƣơng ứng với dạng vector kết đầu cách nhân với ma trận trọng số weight = tf.Variable(tf.truncated_normal([lstm_units, numClasses])) bias = tf.Variable(tf.constant(0.1, shape=[numClasses])) value = tf.transpose(value, [1, 0, 2]) last = tf.gather(value, int(value.get_shape()[0]) - 1) prediction = (tf.matmul(last, weight) + bias) Tính tốn độ xác (accuracy) dựa kết dự đốn mơ hình nhãn Kết dự đốn mơ hình giống với kết nhãn thực tế mơ hình có độ xác cao correctPred = tf.equal(tf.argmax(prediction,1), tf.argmax(labels,1)) accuracy = tf.reduce_mean(tf.cast(correctPred, tf.float32)) Kết dự đoán mơ hình khơng phải ln ln giống nhãn, gọi la lỗi Để huấn luyện mơ hình tơi cần tối thiểu hóa giá trị lỗi Định nghĩa hàm tính lỗi cross entropy layer softmax sử dụng thuật toán tối ƣu Adam với learning_rate đƣợc lựa chọn nhƣ siêu tham số loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=labels)) optimizer = tf.train.AdamOptimizer(learning_rate=0.0001).minimize(loss) 17 Lƣu trữ độ xác giá trị hàm lỗi qua vòng lặp huấn luyện sửa dụng tensorboard sess = tf.InteractiveSession() saver = tf.train.Saver() tf.summary.scalar('Loss', loss) tf.summary.scalar('Accuracy', accuracy) logdir = "tensorboard/" +"dict="+str(vocab_size) + "_maxSeq=" + str(maxSeqLength) + "_batch=" + str(batchSize) + "_dimens=" + str(numDimensions) + "/" writer = tf.summary.FileWriter(logdir, sess.graph) merged = tf.summary.merge_all() Thực thử nghiệm với mơ hình LSTM có nhiều loại tham số cần turning thay đổi tập liệu Ví dụ nhƣ lựa chọn giá trị learning_rate, lựa chọn hàm tối ƣu, số lƣợng units LSTM, kích thƣớc từ điển, số lƣợng đặc trƣng từ, số vòng lặp thực huấn luyện LSTM … Dựa nhiều thử nghiệm, rút đƣợc số tham số ảnh hƣởng nhiều hay đến kết thực huấn luyện Từ đó, tơi rút đƣợc nhiều kết luận bổ ích thực nghiệm 4.2.5 Cài đặt số phƣơng pháp học có giám sát kinh điển Việc cài đặt số thuật tốn nhƣ SVM, KNN có vai trị so sánh kết thuật tốn LSTM mà tơi xây dựng Để cài đặt thuật toán này, tơi sử dụng thƣ viện sklearn [20] dễ dàng sau liệu đƣợc word embedding 18 4.3 Kết trích xuất thơng tin quan điểm 4.3.1 Một số thử nghiệm kết ngữ liệu tiếng Anh Việc huấn luyện mơ hình LSTM cho kết đầu phụ thuộc vào nhiều yếu tố nhƣ siêu tham số Khi thay đổi tham số để tối ƣu cho mơ hình, tơi phải làm nhiều thử nghiệm Để đánh giá đƣợc hay vài tham số có ý nghĩa so với tham số khác thực tinh chỉnh vào đƣờng học (Learning Curve) để đánh giá Những thử nghiệm luận văn, lựa chọn tham số có ý nghĩa mặt ngôn ngữ để đánh giá Chi tiết chia liệu tiếng Anh làm tập train test theo tỉ lệ 60/40 thực thử nghiệm nhƣ sau Thử nghiệm 1: Giữ số lƣợng từ vựng 20000 (vocab_size = 20000) Số lƣợng từ tập ngữ liệu đƣợc tính tốn 50.538, nhiên thử chọn 20.000 từ đƣợc sử dụng nhiều để làm từ điển Thay đổi độ dài cho phép câu đầu vào (max_seq_len) Max_seq_len có tác dụng truncate chuỗi câu đầu vào thành câu có độ dài max_seq_len, câu có độ dài nhỏ đƣợc điền tiếp số ký tự đặc biệt câu có độ dài lớn đƣợc cắt độ dài max_seq_len Max_seq_len Độ xác (Train) Độ xác (Test) 25 84.23 % 75.57 % 50 85.12 % 82.76 % 80 82.11 % 80.82 % 110 81.31 % 78.23 % 140 77.57 % 79.85 % Nhận xét, số lƣợng từ vựng không đổi max_seq_len cho kết tốt với độ dài 50 từ Với số từ 50 tƣơng ứng với 80% câu tập mẫu tơi thấy giá trị đại diện tốt cho độ dài câu Thử nghiệm 2: Giữ độ dài từ câu 50 từ Giữ max_seq_len = 50, thay đổi độ lớn từ điển Thay đổi độ lớn từ điển ảnh hƣởng lớn đến kết số lƣợng từ nhỏ có nhiều từ tập mẫu khơng có từ điển; số lƣợng lớn số lƣợng từ đƣợc nhận nhiều sử dụng word2vec với số lƣợng đặc trƣng lớn (khoảng 300) độ phức tạp tính tốn tăng lên nhiều 19 Hình 3.6 Thử nghiệm với độ dài câu 50 từ Thử nghiệm 3: So sánh với số phƣơng pháp khác Các phƣơng pháp đƣợc so sánh gồm KNN, SVM, Gaussian, ANN Kết cho thấy sử dụng LSTM cho kết khả quan Độ xác Thuật tốn Nearest Neighbors accuracy Linear SVM accuracy Gaussian Process accuracy Train 74.63% 79.55% 79.52% Test 78.32% 81.82% 79.68% Neural Net accuracy LSTM 79.52% 85.12% 79.12% 82.76% Hình 3.7 Kết ngữ liệu tiếng Anh 4.3.2 Một số thử nghiệm kết ngữ liệu tiếng Việt Thuật toán Độ xác Train Nearest Neighbors accuracy 55.7% Linear SVM accuracy 56.9% Gaussian Process accuracy 62.3% Neural Net accuracy 73.3% LSTM 87.83% Hình 3.8 Kết ngữ liệu tiếng Việt Test 38.5% 40.5% 42.9% 41.3% 43.7% 20 Bộ ngữ liệu tiếng Việt có số lƣợng câu cịn ít, ngồi có nhiều từ bị viết tắt, viết sai theo cách khác Ví dụ nhƣ để “khơng” – tập liệu có từ “ko”,”k”,”khog” Khi áp dụng thuật toán nhƣ word2vec để tính tốn word embedding thƣờng cho số lƣợng tham số lớn dễ gây tƣợng overfitting Kết tốt ghi nhận sử dụng vocab_size = 2000, max_seq_len = 20, số feature word2vec 50, nhiên bị overfitting 4.4 Nhận xét Kết ngữ liệu tiếng Anh tốt, kết sử dụng model LSTM cho kết tốt so với thuật toán SVM, KNN, Gaussian hay ANN Trong tập liệu tiếng Anh chọn số tham số nhƣ sau Số feature of vector = 128 Dropout = 0.8 Activation = „softmax‟ Optimizer = „adam‟ Learning_rate = 0.001 Kết ngữ liệu tiếng Việt bị overfitting Hiện tƣợng xảy độ xác tập train tốt nhƣng độ xác tập test lại thấp Nguyên nhân đƣợc xác định ngữ liệu tiếng Việt có số lƣợng mẫu ít, train mạng neural có nhiều tham số khơng tốt hay dẫn đến overfitting Việc cải thiện kể dropout thêm Sau quan sát ngữ liệu tiếng Việt thấy có nhiều từ tên riêng (Ví dụ: iphone, asus) hay viết tắt (Ví dụ: k thay cho khơng) dù loại bỏ stopword Đây thực thách thức việc thu thập liệu tự nhiên đặc biệt tiếng Việt 21 CHƢƠNG 4: KẾT LUẬN Mạng neural LSTM đƣợc sử dụng rộng rãi tốn xử lý ngôn ngữ tự nhiên nhƣ sentiment analysis Đặc biệt tận dụng đƣợc ƣu điểm việc xử lý dạng chuỗi thứ tự từ câu Tuy nhiên, nghiên cứu LSTM cho sentiment analysis chƣa tận dụng đƣợc đầy đủ tài nguyện sentiment nhƣ Sentiment lexicon, từ phủ định hay từ mức độ Với việc định nghĩa max_seq_len cách làm chấp nhận đƣợc tập ngữ liệu mà luận văn sử dụng Tập ngữ liệu tập phản hồi ngƣời dùng có số lƣợng từ khơng lớn 100 Do đó, xem xét việc lấy max_seq_len số từ đƣa vào LSTM để huấn luyện tổng quát hóa đƣợc câu cần xét Tuy nhiên, tập phản hồi có số từ lớn tơi phải xem xét việc vector hóa mà khơng làm mát q nhiều ý nghĩa câu việc chọn đại diện max_seq_len không không đủ để đại diện cho câu Một phƣơng pháp thƣờng đƣợc sử dụng dùng TF-IDF kết hợp với thuật toán giảm số chiều nhƣ LDA (Linear Discriminant Analysis) LSTM mơ hình kỹ thuật hiệu toán xử lý chuỗi đƣợc nhà nghiên cứu sử dụng nhiều Tuy nhiên, LSTM kỹ thuật vạn mà toán NLP lại áp dụng đƣợc Nó cịn vào nhiều yếu tố nhƣ tập ngữ liệu, đặc tính tập ngữ liệu Vì đơi sử dụng thuật toán ML lại cho kết tốt nhƣ SVM, Decision Tree hay ANN Nhận thấy rằng, nghiên cứu gần sử dụng phƣơng pháp học máy Deep Learning giống nhƣ trận sóng thần áp đảo NLP Tuy nhiên, ngƣời làm nên trú trọng bổ sung kiến thức ngơn ngữ học semantic Bởi ngồi việc vài trƣờng hợp, việc sử dụng vài rule cách giải tối ƣu so với việc train mơ hình ngơn ngữ đồ sộ Mà nhờ kiến thức ngơn ngữ học, ngƣời nghiên cứu cân nhắc đƣợc mơ hình NLP tốt giải toán nhƣ biểu diễn đầu vào đặc trƣng có ý nghĩa 22 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Bùi Công Cƣờng, Nguyễn Doãn Phƣớc (2001) Hệ mờ, mạng nơ-ron ứng dụng Nhà xuất Khoa học kỹ thuật Hà Nội [2] Vũ Hữu Tiệp, Blog Machine Learning Cơ địa https://machinelearningcoban.com/ [3] Lƣu Tuấn Anh (2012), Bộ tách từ Đông Du https://github.com/rockkhuya/DongDu Tiếng Anh [4] Hochreiter and Schmidhuber (1997), Long short-term memory [5] B Liu (2009), Handbook Chapter: Sentiment Analysis and Subjectivity Handbook of Natural Language Processing, Handbook of Natural Language Processing Marcel Dekker, Inc New York, NY, USA [6] B.Liu (2015), Sentiment analysis: mining sentiments, opinions and emotions, Cambridge University Press, ISBN 9781107017894 [7] Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean (2013), Efficient Estimation of Word Representations in Vector Space In Proceedings of Workshop at ICLR [8] Andrew Ng, Machine Learning course on Coursera [9] Christopher Olah (2015), Understanding LSTM networks in Colah‟s blog [10] Andrej Karpathy (2015), The Unreasonable Effectiveness of Recurrent Neural Network at Andrej Karpathy blog [11] McCormick, C (2016) Word2vec Tutorial - The Skip-Gram Model [12] Google (2013), Word2vec model https://code.google.com/archive/p/word2vec/ [13] J McAuley and J Leskovec (2013), From Amateurs to Connoisseurs: Modeling the Evolution of User Expertise through Online Reviews [14] The statistic of social media usage (2014) http://thesocialskinny.com/103crazy-social-media-statistics-to-kick-off-2014/ [15] Kishori K Pawar, Pukhraj P Shrishrimal, R R Deshmukh (2015) Twitter Sentiment Analysis: A Review ISSN 2229-5518 [16] Python Programming Language https://www.python.org/ 23 [17] Jure Leskovec, Web data Amazon Fine Foods reviews (2014) https://snap.stanford.edu/data/web-FineFoods.html [18] TensorFlow https://www.TensorFlow.org/ [19] Scikit Learn http://scikit-learn.org/stable/ ... luận 7 CHƢƠNG 1: TỔNG QUAN VỀ BÀI TOÁN 1.1 Khái niệm quan điểm 1.2 Bài tốn trích xuất thơng tin quan điểm Bài tốn trích xuất thơng tin quan điểm dựa thông tin phản hồi ngƣời sử dụng nhằm phân... kể trên, liệu đƣợc thu thập lại dƣới dạng văn Từ liệu dạng văn bản, luận văn trình bày phƣơng pháp áp dụng học máy để xử lý thơng tin văn nhằm trích xuất đƣợc thông tin quan điểm ngƣời dùng Luận. .. tốn trích xuất thơng tin quan điểm Việc giải tốn trích xuất thơng tin quan điểm bao gồm việc giải chuỗi toán nhỏ Chuỗi toán nhỏ đƣợc gọi pipeline mơ hình học máy Hình 2.2 Pipeline tốn trích xuất

Ngày đăng: 26/04/2021, 18:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan