CHƯƠNG 2: CÁC KỸ THUẬT HỌC MÁY TRONG BÀI TOÁN PHÂN TÍCH
2.5. Phương pháp tiếp cận học sâu (Deep Learning)
2.5.1. Mạng Neural hồi quy RNN
Ý kiến phản hồi của khách hàng được lưu dưới dạng văn bản có thể bao gồm nhiều từ, nhiều câu. Do đó, để trích xuất được thông tin quan điểm từ một ý kiến phải căn cứ trên ngữ cảnh của toàn bộ những câu trước đó. Điều này cũng dễ hiểu bởi trên thực tế con người không bắt đầu suy nghĩ tại mọi thời điểm mà phải phụ thuộc vào những gì xảy ra trước đó. Giả sử, khi đọc một bài review về sản phẩm, khách hàng sẽ đọc từng từ tại mỗi thời điểm và hiểu từng từ đó dựa vào ngữ cảnh của các từ trước đó [9].
Mỗi suy đoán hoặc quyết định của chúng ta được liên kết từ các thông tin phức tạp được tìm hiểu trước. Vấn đề càng phức tạp, lượng thông tin được tổng hợp để giải quyết càng lớn. Mạng RNN đưa ra các dự đoán dựa trên các thông tin đã có trong các vòng lặp chứa thông tin phía trước. Mạng RNN chứa các vòng lặp bên trong cho phép thông tin có thể lưu lại được
Hình 2. 5: Mạng RNN có vòng lặp
Trong mô hình trên mô tả một đoạn của mạng RNN A với đầu vào là xt và đầu ra là ht. Một vòng lặp cho phép thông tin có thể được truyền từ bước này qua bước này qua bước khác của mạng nơ-ron. Có thể thấy kết quả của đầu ra H1 nhận dữ liệu từ đầu vào X1 và kết quả của nút phía trước hay nói cách khác đầu ra của nút này chính là đầu vào của nút ngay phía sau. Điều này đã mang lại sự thành công cho mạng RNN nhờ vào khả năng suy luận có cơ sở. Tuy nhiên, khả năng này tỏ ra không hiệu quả đối với các trường hợp phức tạp, đòi hỏi lượng thông tin cần tổng hợp cho suy đoán nhiều hơn.
Trong quá trình tiếp nhận những thông tin phản hồi, đôi khi chúng ta không hoàn toàn tiếp nhận hết tất cả lượng thông tin được gửi đến. Tuy nhiên, chúng ta có thể dự đoán nội dung thông tin một cách chính xác, điểm nổi bật của RNN chính là ý tưởng kết nối các thông tin phía trước để dự đoán cho hiện tại. Ví dụ khi nghe câu "Sữa này rất ngon, bé nhà tôi rất..." thì chúng ta dễ dàng dự đoán từ tiếp theo là "thích" dựa vào từ "rất ngon" phía trước.
Trong nhiều tình huống ta buộc phải sử dụng nhiều ngữ cảnh hơn để suy luận. Ví dụ: “Tôi là người Việt Nam, tôi rất thích các sản phẩm sữa ...”. việc xác định được từ còn thiếu phụ thuộc vào nội dung phía trước. Giữa nội dung cần đưa ra dự đoán và nội dung cần cho quá trình này đã có khoảng cách nhất định, vì thế mạng RNN khó có thể đưa ra dự đoán chính xác.
Để giải quyết được vấn đề này, cần một mạng RNN có khả năng học được các ngữ cảnh hoặc nói chính xác hơn là kiểm soát được các phụ thuộc xa (long- term dependency). Về mặt lý thuyết, rõ ràng là RNN có khả năng xử lý các phụ thuộc xa. Tuy nhiên, thật đáng tiếc trên thực tế RNN không thể nhớ và học được các tham số với khoảng cách càng lớn dần. Vấn đề này đã được mạng Long short- term memory (LSTM) giải quyết được trong bài toán phân tích quan điểm.
2.5.2. Mạng bộ nhớ thuật ngữ ngắn dài (Long Short-Term Memory)
Mạng LSTM là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc từ quá dài. LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997), nhưng được cải tiến và phổ biến rất. Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay.
Kiến trúc dạng chuỗi các module của LSTM tương tự RNN tuy nhiên trong các module LSTM có cấu trúc phức tạp hơn, bao gồm 4 tầng tương tác với nhau theo một cấu trúc cụ thể với các cổng Forget Gate (ft), Input Gate (it), Output Gate (ot). Các cổng này quyết định việc thông tin nào sẽ được lưu trữ, xoá, chỉnh sửa và truyền đi
Hình 2. 7: Mô đun lặp lại trong một LSTM
Trong sơ đồ trên, mỗi dòng mang một vector toàn bộ, từ đầu ra của một nút đến đầu vào của những nút khác. Các vòng tròn màu hồng đại diện cho các phép toán theo chiều kim loại, như phép cộng vectơ, trong khi các hộp màu vàng là các
Hình 2. 6: Mô đun lặp lại trong RNN
lớp mạng nơ-ron đã học. Hợp nhất các dòng biểu thị sự móc nối, trong khi một dòng cho biết nội dung của nó đang được sao chép và các bản sao sẽ đến các vị trí khác nhau. Mô hình thiết kế của LSTM là một bảng mạch số, gồm các mạch logic và các phép toán logic
Mấu chốt của LSTM là trạng thái nhớ Ct, đường kẻ ngang trên đầu sơ đồ chạy dọc ở trên cùng của hình 2.8. Ct giống như băng chuyền, chạy xuyên thẳng toàn bộ mắt xích, nhờ vậy thông tin được lưu trữ cho các quá trình xử lý phía sau mà không mất đi. Đồng thời, các khối xử lý khác có thể tác động vào nội dung của ct để quyết định thông tin cần truyền tại các thời điểm. Các phép biến đổi trong modul bao gồm sigma, tanh.
Hình 2. 8: Ct của LSTM
LSTM có khả năng loại bỏ hoặc thêm vào các thông tin cần thiết cho trạng thái, chúng được điều chỉnh cẩn thận bởi các nhóm gọi là cổng (gate). Các cổng sàng lọc thông tin đi
qua nó. Cổng vào
i
t giúp quyết định bao nhiêu lượng thông tin đầu vào sẽ ảnh hưởng đến trạng thái mới. Quyết định bằng cách nào, thông qua đặc điểm của hàm sigmoid (đầu ra nằm trong khoảng [0,1][0,1]), như vậy khi một vector thông tin đi qua đây, nếu nhân với 0, vector sẽ bị triệt tiêu hoàn toàn. Nếu nhân với 1, hầu hết thông tin sẽ được giữ lại. Cổng rao
t điều chỉnh lượng thông tin có thể ra ngoài và lượng thông tin truyền tới trạng thái tiếp theo, được kết hợp bởi một tầng mạng sigmoid và một phép nhân.Hình 2. 9: Cổng trạng thái LSTM
Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1], mô tả có bao nhiêu thông tin có thể được thông qua. Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào qua, còn khi là 1 thì có nghĩa là cho tất cả các thông tin đi qua nó. Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của mạng nơron.
Quá trình hoạt động của LSTM được thông qua các bước cơ bản:
Bước đầu tiên trong LSTM là quyết định thông tin nào sẽ loại bỏ khỏi trạng thái tế bào. Quyết định này được thực hiện bởi một lớp sigmoid được gọi là ft (cổng quên). Cổng quyết định sẽ bỏ đi bao nhiêu lượng thông tin đến từ trạng thái trước đó.
Hình 2. 10: Cổng quên LSTM
Bước tiếp theo là quyết định thông tin mới nào sẽ lưu lại tại Ct . Việc này gồm 2 phần. Bước đầu là sử dụng một tầng sigmoid được gọi là
i
t để quyết định giá trị nào sẽ cập nhập. Tiếp theo là một tầng tanh tạo ra một véc-tơ cho giá trị mới 𝐶𝑡 ̃ nhằm thêm vào cho trạng thái.Hình 2. 11: Cổng vào it của tanh 𝐶𝑡 ̃
Trong bước tiếp theo, sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái, 𝐶𝑡−1 cũ vào Ct mới . Ta sẽ đưa state cũ hàm 𝑓 , để quên đi những gì trước đó. Sau đó sẽ thêm 𝑖𝑡 ∗ 𝐶𝑡 ̃. Đây là giá trị ứng viên mới, co giãn số lượng giá trị muốn cập nhật cho mỗi state.
Hình 2. 12: Giá trị state Ct
Cuối cùng, cần quyết định xem thông tin cần tìm là gì. Giá trị đầu ra sẽ dựa vào cell state, nhưng sẽ được sàng lọc bớt thông tin. Đầu tiên, ta chạy một tầng sigmoid để quyết định phần nào cell state muốn xuất ra. Sau đó, ta đưa nó trạng cell state qua một hàm tanh để co giá trị nó về khoảng [-1, 1] và nhân nó với đầu ra của cổng sigmoid để được giá trị đầu ra ta mong muốn.
Hình 2. 13: Kết quả trả về ht
Mạng LSTM theo các công thức trên mà được lặp lại qua từng thời điểm t.
Thông tin của Ct được điều khiển bởi cấu trúc các cổng chặn ft, cổng vào it và cổng ra ot . Trong đó cổng chặn ft chính là tư tưởng của mạng LSTM khi cho phép điều khiển lượng thông tin đầu vào ht-1 từ các thời điểm trước.
Ưu điểm của phương pháp LSTM: Trong các mô hình học sâu thường cho kết quả tốt nhất vì không cần trích chọn đặc trưng. LSTM có thể học được các từ phụ thuộc quá dài.
Kết luận chương
Trong chương 2 luận văn đã trình bày các phương pháp tiếp cận cho bài toán phân tích quan điểm bằng các kỹ thuật học máy truyền thống và học sâu: Mô hình Naïve Bayes, SVM, hồi quy Logistic và LSTM. Trong phần tiếp theo luận văn sẽ trình bày các bước xây dựng một hệ thống phân tích quan điểm dựa vào các kỹ thuật học máy cũng như cách cài đặt thuật toán để đưa ra kết quả thực nghiệm thu được.
CHƯƠNG 3: ỨNG DỤNG PHÂN TÍCH QUAN ĐIỂM VỚI DỮ LIỆU THỨC ĂN TRẺ EM
Với sự phát triển mạnh mẽ của công nghệ thông tin và Internet, các website thương mại điện tử ra đời như một phương tiện hữu ích giúp khách hàng thực hiện mua hàng, đặt thực phẩm trực tuyến cũng như chia sẻ những trải nghiệm, bình luận và đánh giá. Thức ăn trẻ em là một trong những ngành dịch vụ đặc thù, chính vì vậy cần có hệ thống tự động phân tích quan điểm của khách hàng thông qua ý kiến tích cực hay tiêu cực về sản phẩm và dịch vụ để doanh nghiệp cải thiện dịch vụ, chất lượng sản phẩm. Người tiêu dùng cũng sẽ tham khảo các ý kiến đó trước khi họ đưa ra quyết định lựa chọn sản phẩm.
Hệ thống phân tích quan điểm khách hàng sẽ có thể thực hiện phân tích những thay đổi tiêu cực, tích cực, các vấn đề mà khách hàng phản hồi theo thời gian.
3.1. Hệ thống phân tích quan điểm
Hiện nay đã có nhiều hệ thống phân tích quan điểm làm việc với những miền dữ liệu khác nhau nhưng đều bao gồm các bước chính như sau:
• Thu thập, phân tích, chuẩn bị dữ liệu: thành phần tự động lấy dữ liệu, cụ thể là những phản hồi, bình luận của khách hàng từ các hệ thống trực tuyến, các trang web đánh giá của người dùng hay các cộng đồng mạng xã hội.
• Tiền xử lý dữ liệu và gán nhãn: tại bước này có nhiệm vụ xử lý dữ liệu, gồm các công việc như: chuẩn hóa chữ thường, tách từ, loại bỏ dấu câu, các ký tự đặc biệt. Dữ liệu sẽ được làm sạch, chuẩn hóa rồi gán nhãn làm đầu vào cho bước tiếp theo.
• Trích chọn đặc trưng: sử dụng kỹ thuật biểu diễn văn bản như mô hình Bag of word (Bow), Term Frequency – Inverse Document Frequency (TF- IDF), N-Gram để biểu diễn các văn bản đầu vào thành các vector đặc trưng.
• Lựa chọn mô hình học máy (Machine Learning): xây dựng mô hình huấn luyện và dự đoán cho các mô hình truyền thống. Mô hình huấn luyện sử dụng tập dữ liệu huấn luyện làm đầu vào và có nhiệm vụ học một mô hình dự đoán. Mô hình dự đoán có nhiệm vụ tính toán để phân lớp quan điểm cho các vector biểu diễn văn bản từ đầu vào.
Học viên xin đề xuất kiến trúc hệ thống phân tích quan điểm trên tập dữ liệu thức ăn trẻ em qua các bước cụ thể trong hình 3.1:
Hình 3. 1: Kiến trúc hệ thống phân tích quan điểm 3.2. Đặc điểm của dữ liệu thức ăn trẻ em
Luận văn tìm hiểu, nghiên cứu và giải quyết cho miền dữ liệu cụ thể là những phản hồi, bình luận của khách hàng về lĩnh vực thức ăn trẻ em để người tiêu dùng biết được những bình luận, những đánh giá tích cực, tiêu cực và trung tính về sản phẩm mà họ đang quan tâm, từ đó các phụ huynh có thể dễ dàng đưa ra các quyết định trong việc mua hay sử dụng sản phẩm sản phẩm cho con em mình. Không những thế các công ty, doanh nghiệp, đơn vị phân phối của cửa hàng bán lẻ cũng có được những đánh giá, bình luận của khách hàng để xây dựng chiến lược bán hàng, phát triển sản phẩm, quảng bá thương hiệu cũng như cải thiện chất lượng, dịch vụ
Dữ liệu thức ăn trẻ em được là những câu bình luận tiếng việt được lấy từ các diễn đàn, các trang mạng xã hội và các trang web đánh giá sản phẩm. Đặc điểm của dữ liệu này thường là các đánh giá tính năng của sản phẩm hoặc dịch vụ cụ thể được thể hiện bằng ngôn ngữ tự nhiên. Các bình luận này thường là những
câu ngắn về nội dung và kích thước. Một số câu bình luận tiếng việt trong tập dữ liệu thức ăn trẻ em.
Hình 3. 2: Tập dữ liệu thức ăn trẻ em
Mỗi người khác nhau sẽ có quan điểm đánh giá khác nhau không theo một chuẩn quy tắc ngữ pháp nào. Đôi khi những bình luận xuất hiện từ viết tắt, sử dụng các từ láy, các từ pha trộn tiếng nước ngoài hoặc trong một câu có thêm cả các từ tiếng anh (“ Hãng sữa này thật pefect, con mình uống tăng cân, lại ổn định hệ tiêu hóa, thích quá điiiii”). Từ đó, có thể thấy dữ liệu được thu thập đều có kiểu không tập trung, vụn vặt, đa dạng và đặc biệt là thuần văn bản. Do đó để nâng cao hiệu suất cho các mô hình phân tích quan điểm trên tập dữ liệu thì cần thực hiện các bước tiền xử lý dữ liệu.
3.3. Tiền xử lý dữ liệu và gán nhãn
Tiền xử lý dữ liệu và gán nhãn là một trong những bước quan trọng nhất trong khai thác dữ liệu, đặc biệt là trong khai thác dữ liệu văn bản vì có rất nhiều sự khác biệt về nội dung văn bản trên các kênh truyền thông điện tử.
3.3.1. Tiền xử lý dữ liệu
Dữ liệu thu thập về sẽ có dạng thô, do chưa qua xử lý nên có thể dữ liệu bị rỗng, dữ liệu sai chính tả, dữ liệu quá ngắn, quá dài hoặc chứa các biểu tượng icon. Điều này sẽ gây ảnh hưởng đến kết quả của việc phân tích, vì vậy ta cần làm sạch dữ liệu.
Xóa các icon, kí tự đặc biệt: các kí tự đặc biệt không mang ý nghĩa phân lớp, mặc khác sẽ gây nhiễu trong quá trình phân tích. Chuyển tất cả về chữ thường:
mỗi số, ký tự đặc biệt, ký tự là đại diện cho một dãy nhị phân trong bộ nhớ máy
tính. Chữ in hoa sẽ có mã Unicode khác chữ in thường, về mặt ngữ nghĩa là giống nhau tuy nhiên máy tính sẽ không thể phân biệt dữ liệu đầu vào, dẫn đến có thể kết quả dự đoán bị ảnh hưởng. Vì vậy việc chuyển toàn bộ chữ về chữ thường là hợp lý cho hệ thống phân tích và dự đoán.
Chuyển dạng từ rõ nghĩa: việc chuyển dạng từ rõ nghĩa là cần thiết cho bước tiền xử lý dữ liệu. Các bình luận do người dùng bình luận tiếng Việt nên việc viết tắt hoặc sai chính tả. Chẳng hạn từ ko ngon (không ngon), vs (với), 20k (20000) … hay dữ liệu không đồng bộ, không chuẩn hóa. Việc này sẽ ảnh hưởng gây nhiều kết quả phân tích. Trong quá trình huấn luyện của học máy, dữ liệu đưa vào là “không ngon”, nhưng khi dự đoán dự liệu đầu ra, cụm từ “ko ngon” không xuất hiện trong quá trình huấn luyện, vì vậy sẽ khó thể nhận diện cảm xúc và dự đoán kết quả được.
Xóa dòng dữ liệu: tập dữ liệu thu về sẽ có nhiều dữ liệu bị trống, dữ liệu trống không có ý nghĩa trong quá trình phân tích, gây tốn bộ nhớ lưu trữ.
Loại bỏ từ dừng: những từ không có ý nghĩa cho nội dung văn bản, nhưng lại xuất hiện ở nhiều văn bản. Loại bỏ từ dừng bằnng cách đặt ngưỡng để phát hiện từ dừng.
Bảng 3. 1: Một số từ dừng trong tiếng Việt
à à này ái ái chà này càng
cần chuyện các cái chiếc cho
Có thể khi mà nữa nhưng những không
là đây Có thể được không rồi
vì nếu thì cho nên quả thật chưa
vậy việc mà mỗi này rằng
vì vậy với lại tất cả phần lớn trước hết hầu hết
mỗi đang cân ra gì của
nhiều ngay để nên sẽ phải
3.3.2. Gán nhãn dữ liệu
Để thực hiện quá trình gán nhãn dữ liệu trước khi đưa vào huấn luyện, nghiên cứu áp dụng phương pháp phân lớp cảm xúc theo điểm số đánh giá của khách hàng để phân chia tập dữ liệu đã thu thập được thành 2 bộ dữ liệu được gán