Phân tích cảm xúc của du khách trong du lịch là một việc quan trọng vì nĩ cĩ thể giúp các cơng ty du lịch và các địa điểm du lịch địa phương cĩ thể hiểu rõ hơn về cảm nhận về dịch vụ và
Cơ sở lý thuyết
Giới thiệu chương
Chương 1, "Cơ sở lý thuyết", là một bước đệm quan trọng trong việc hiểu và áp dụng các kỹ thuật phân tích từ và phân tích cảm xúc trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP)
Phần đầu của chương này tập trung vào việc giới thiệu về phân tích từ, một kỹ thuật cốt lõi trong NLP, và phân tích cảm xúc, một lĩnh vực quan trọng giúp máy tính hiểu và phản ứng với các cảm xúc con người Đặc biệt, chúng ta sẽ khám phá sâu hơn về sự kết hợp giữa phân tích cảm xúc và học sâu, và cách học sâu có thể cải thiện đáng kể khả năng của các mô hình trong việc phân loại cảm xúc
Phần cuối của chương tập trung vào mô hình BERT, một trong những tiến bộ đột phá trong lĩnh vực NLP, cung cấp một cái nhìn tổng quan về cách thức ứng dụng, tinh chỉnh, và huấn luyện mô hình này để tối ưu hóa hiệu suất trong phân tích từ.
Phân tích từ
2.1 Tổng quan về kỹ thuật phân tích từ
Phân tích từ (thường được gọi là "tokenization”) là quá trình chia một đoạn văn bản ra thành các từ riêng lẻ hoặc "token" Các từ riêng lẻ có thể đóng nhiều vai trò trong câu hoặc đóng góp làm nổi bật lên được hàm ý của câu, văn bản Quá trình phân tích rất quan trọng trong nhiều ứng dụng của xử lý ngôn ngữ tự nhiên (NLP) như phân tích cảm xúc, dịch máy, và tìm kiếm thông tin
Mục đích của phân tích từ:
Chuẩn bị dữ liệu: Chuyển đoạn văn bản thành dạng phù hợp để xử lý tiếp theo
Nhận dạng từ: Giúp xác định ranh giới giữa các từ trong câu
Cung cấp đầu vào cho các thuật toán NLP khác
Cách thức phân tích từ:
Dựa trên quy tắc: Sử dụng các quy tắc và biểu diễn chính quy để phân chia văn bản thành từ
Dựa trên học máy: Huấn luyện mô hình trên dữ liệu đã được gắn nhãn để phân chia văn bản
Thách thức trong phân tích từ tiếng Việt:
- Từ ghép: Trong tiếng Việt, nhiều từ ghép có nghĩa riêng biệt khi kết hợp với nhau Ví dụ: "cà phê" khác với "cà" và "phê" riêng lẻ
- Dấu cách: Dấu cách không chỉ dùng để phân tách giữa các từ mà còn giữa các âm tiết trong một từ
- Ngữ pháp và từ vựng đa dạng: Sự phong phú về từ vựng và cách sắp xếp từ trong câu có thể gây khó khăn cho việc phân tích
2.2 Tổng quan về phân tích cảm xúc
Theo Bing Luu, phân tích cảm xúc tập trung nghiên cứu ở 3 mức độ chính: Mức độ văn bản (Document-level): Phân tích cảm xúc ở mức này nghĩa là xác định cảm xúc chung của một văn bản hoặc một đoạn văn dài, thường được áp dụng trong việc đánh giá ý kiến của người dùng về một sản phẩm cụ thể, dịch vụ, phim, sách, v.v Ví dụ: Đánh giá sản phẩm trên trang thương mại điện tử Amazon hoặc nhận xét về một bộ phim trên IMDb
Mức độ câu (Sentence-level): Mức này tập trung vào việc xác định xem một câu cụ thể có mang tính cảm xúc tích cực, tiêu cực hay trung lập Nó không chỉ giới hạn ở việc phân loại mà còn nắm bắt được độ mạnh yếu của cảm xúc trong mỗi câu Ví dụ, câu "Tôi yêu sản phẩm này!" mang tính cảm xúc tích cực mạnh, trong khi câu "Sản phẩm này tạm được." chỉ mang tính cảm xúc tích cực ở mức độ vừa phải
Mức độ thực thể/đối tượng (Aspect-level/Entity-level): Đây là việc phân tích cảm xúc dựa trên các khía cạnh cụ thể hoặc tính năng của một sản phẩm hoặc dịch vụ Mức độ này giúp doanh nghiệp hiểu rõ hơn về những điểm mạnh, điểm yếu cụ thể của sản phẩm dưới góc độ người tiêu dùng Ví dụ, trong một đánh giá về cuốn sách, người dùng có thể nói "Nội dung cuốn sách rất hay nhưng giấy in chất lượng tệ." Tại đây, "nội dung cuốn sách" và "giấy in" là hai thực thể/đối tượng được đề cập, với mức độ cảm xúc tích cực cho nội dung cuốn sách và tiêu cực cho giấy in
2.3 Tổng quan phân tích cảm xúc và học sâu trong phân tích cảm xúc
Cảm xúc con người thật sự rất phức tạp và không dễ dàng để phân loại Khi chúng ta nói đến phân tích cảm xúc ở mức câu, một cách đơn giản hơn để tiếp cận vấn đề này là xem xét hai khía cạnh chính Đầu tiên, ta cần xác định xem câu đó có chứa cảm xúc hay không Ví dụ, câu "Bầu trời hôm nay nhiều mây." chỉ đưa ra một sự thật mà không mang tính cảm xúc Ngược lại, câu "Tôi thật vui khi trời mưa." chứa cảm xúc tích cực về việc trời mưa
Thứ hai, sau khi xác định câu chứa cảm xúc, ta cần phân loại xem cảm xúc đó là tích cực hay tiêu cực Trong câu "Sách này thật buồn chán." cảm xúc được thể hiện rõ ràng là tiêu cực Còn câu "Bộ phim này đáng xem!" mang một cảm xúc tích cực
Nhờ phân tích như vậy, chúng ta có thể hiểu rõ hơn về tình hình, suy nghĩ và cảm nhận của người nói, giúp nắm bắt thông điệp một cách chính xác hơn
2.4 Các kỹ thuật phân loại cảm xúc Đầu tiên tôi sẽ nói tới Kỹ thuật tạo đặc trưng là quá trình chuyển đổi dữ liệu thô thành đầu vào cho thuật toán học máy Để được sử dụng trong các thuật toán học máy, các đặc điểm phải được đưa vào các vectors đặc trưng, là các vectors số đại diện cho giá trị của từng đặc điểm Để phân tích cảm xúc, dữ liệu văn bản phải được đưa vào các vectors từ ngữ, là vectors của các số biểu thị giá trị cho mỗi ký tự Văn bản đầu vào có thể được mã hóa thành các vectors ký tự bằng cách sử dụng các kỹ thuật đếm như Bag of Words (BoW), bag-of-ngrams hoặc Term Frequency/Inverse Document Frequency (TF-IDF) a) Phân loại cảm xúc bằng cách sử dụng học máy có giám sát (Supervised ML)
Hình 1 Vector số của từ
Sau khi văn bản đầu vào đã được chuyển đổi thành vectors từ ngữ, thuật toán học máy phân loại có thể được sử dụng để phân loại cảm xúc Phân loại là một nhóm các thuật toán học máy được giám sát để xác định chủng loại nào mà đối tượng thuộc về (chẳng hạn như văn bản là tiêu cực hay tích cực) dựa trên dữ liệu được gắn nhãn (chẳng hạn như văn bản được gắn nhãn là tích cực hay tiêu cực)
Các thuật toán học máy phân loại có thể được sử dụng để phân tích cảm nghĩ bao gồm:
- Nạve Bayes là một bộ các thuật tốn xác suất xác định xác suất cĩ điều kiện của lớp dữ liệu đầu vào
- Support Vector Machines tìm thấy một “mặt phẳng” trong không gian
N chiều (N là số lượng đặc điểm) phân loại rõ ràng các điểm dữ liệu
Hình 2 Gán nhãn cho dữ liệu
- Logistic regression sử dụng hàm logistic để mô hình hóa xác suất của một cấp nhất định b) Phân tích cảm xúc bằng cách sử dụng Học sâu
Học sâu là một tập hợp con của học máy sử dụng các mạng nơ-ron để mang lại độ chính xác cao nhất trong các tác vụ như NLP và các tác vụ khác Các kỹ thuật nhúng từ học sâu chẳng hạn như Word2Vec mã hóa các ký tự theo những cách có ý nghĩa bằng cách học các liên kết ký tự, ý nghĩa, ngữ nghĩa và cú pháp Các thuật toán học sâu cũng cho phép đào tạo từ đầu đến cuối các mô hình NLP mà không cần phải thiết kế thủ công các tính năng từ dữ liệu thô đầu vào
Hình 4 Các bước của phân tích cảm xúc sử dụng Học sâu
Có nhiều biến thể khác nhau của thuật toán học sâu
Hình 3 Phân tích cảm xúc bằng học máy
Mạng nơ-ron hồi quy là công cụ toán học để phân tích các mẫu ngôn ngữ và dữ liệu được sắp xếp theo trình tự Chúng là bộ não xử lý ngôn ngữ tự nhiên mang đến thính giác và lời nói cho Alexa của Amazon và được sử dụng trong dịch thuật ngôn ngữ, dự đoán chứng khoán và giao dịch thuật toán
Các mô hình học sâu, chẳng hạn như Bert, là một giải pháp thay thế cho mạng nơ-ron hồi quy áp dụng kỹ thuật phân tích cú pháp một câu bằng cách tập trung sự chú ý trên những ký tự có liên quan nhất đến trước và sau nó Bert đã cách mạng hóa tiến trình trong NLP bằng cách cung cấp độ chính xác có thể so sánh với lộ trình cơ sở của con người trên các điểm chuẩn để nhận biết ý định, phân tích tình cảm Nó mang tính hai chiều sâu sắc và có thể hiểu cũng như giữ lại ngữ cảnh tốt hơn so với các cơ chế mã hóa văn bản khác.
Lý thuyết về Bert
3.1 Lý thuyết về ứng dụng mô hình Bert vào phân tích từ
Trước khi hiểu về Bert chúng ta cùng tìm hiểu về kỹ thuật transformer[6] Đây là một lớp mô hình SEQ2SEQ gồm 2 pha mã hóa (Encoder) và giải mã (Decoder) Mô hình hoàn toàn không sử dụng các kiến trúc mạng hồi quy của RNN mà chỉ sử dụng các các tầng chú ý (attention) để nhúng các từ trong câu Kiến trúc cụ thể của mô hình như sau:
Mô hình sẽ bao gồm 2 pha:
• Mã hóa: Bao gồm 6 tầng liên tiếp nhau Mỗi một tầng sẽ bao gồm một tầng con là Chú ý đa đầu (Multi-Head Attention) kết hợp với tầng kết nối đầy đủ (fully- connected layer) như mô tả ở nhánh mã hóa bên trái của hình vẽ Kết thúc quá trình mã hóa ta thu được một vector đầu vào nhúng cho mỗi từ
Hình 5 Sơ đồ kiến trúc Transformer
• Giải mã: Kiến trúc cũng bao gồm các tầng liên tiếp nhau Mỗi một tầng của giải mã cũng có các tầng con gần tương tự như tầng của Mã hóa nhưng bổ sung thêm tầng con đầu tiên là Chú ý Đa Đầu Có Mặt Nạ (Masked Multi-Head Attention) có tác dụng loại bỏ các từ trong tương lai khỏi quá trình chú ý b) Các tiến trình Chú ý tự và Chú ý mã hóa-giải mã
Trong kiến trúc transformer chúng ta sẽ áp dụng 2 dạng chú ý khác nhau tại từng bước huấn luyện
Chú ý tự (Self-attention): Được sử dụng trong cùng một câu đầu vào, tại mã hóa hoặc tại giải mã Đây chính là chú ý được áp dụng tại các Chú ý đa đầu ở đầu vào của cả 2 pha mã hóa và giải mã
Các vector nhúng của cùng một chuỗi mã hóa hoặc giải mã tự liên kết với nhau để tính toán chú ý như hình bên phải c) Chú ý mã hóa và giải mã (Encoder-decoder attention)
Bên trái là vị trí áp dụng chú ý mã hóa và giải mã
Hình 6 Sơ đồ vị trí áp dụng Chú ý tự trong kiến trúc Transformer
Bên phải là cách tính trọng số chú ý khi kết hợp mỗi vector nhúng ở giải mã với toàn bộ các vector nhúng ở mã hóa
Chú ý mã hóa và giải mã là kiến trúc chú ý tương tác giữa các vector nhúng của mã hóa và giải mã Vector ngữ cảnh được tính toán trên mã hóa đã được tính tương quan với vector giải mã nên sẽ có ý nghĩa giải thích bối cảnh của từ tại vị trí bước thời gian giải mã (time step decoder) tương ứng Sau khi kết hợp giữa vector ngữ cảnh và vector giải mã ta sẽ thực hiện tiếp qua một tầng kết nối đầy đủ (fully connected layer) để tính phân phối xác suất cho đầu ra
Mặc dù có kiến trúc chỉ gồm các biến đổi chú ý nhưng Transformer lại có kết quả rất tốt trong các nhiệm vụ NLP như phân tích tình cảm và dịch máy 3.1.2 Mô hình Bert
Bert[7] (Bidirectional Encoder Representations from Transformers) là một mô hình ngôn ngữ được tạo ra bởi Google AI và được giới thiệu vào năm 2008 Hình 7 Sơ đồ chú ý tương tác giữa các vector nhúng của mã hóa và giải mã
Bert được coi như là đột phá lớn trong Học sâu bởi vì khả năng ứng dụng của nó vào nhiều bài toán NLP khác nhau: Hỏi đáp, Suy luận Ngôn ngữ Tự nhiên, với kết quả rất tốt
Bert được thiết kế để huấn luyện trước các từ nhúng (pre-train word embedding) Điểm đặc biệt ở Bert đó là nó có thể điều hòa cân bằng bối cảnh theo cả 2 chiều trái và phải
Cơ chế chú ý của Transformer sẽ truyền toàn bộ các từ trong câu văn đồng thời vào mô hình một lúc mà không cần quan tâm đến chiều của câu Do đó Transformer được xem như là huấn luyện hai chiều (bidirectional) mặc dù trên thực tế chính xác hơn chúng ta có thể nói rằng đó là huấn luyện không chiều (non- directional) Đặc điểm này cho phép mô hình học được bối cảnh của từ dựa trên toàn bộ các từ xung quanh nó bao gồm cả từ bên trái và từ bên phải
3.2 Mô hình Bert tinh chỉnh
Một điểm đặc biệt ở Bert mà các mô hình nhúng trước đây chưa từng có đó là kết quả huấn luyện có thể tinh chỉnh được Chúng ta sẽ thêm vào kiến trúc mô hình một tầng đầu ra để tùy biến theo nhiệm vụ huấn luyện
Hình 8 Toàn bộ tiến trình tiền huấn luyện và tinh chỉnh của Bert
Một kiến trúc tương tự được sử dụng cho cả mô hình huấn luyện trước và mô hình tinh chỉnh Chúng ta sử dụng cùng một tham số huấn luyện trước để khởi tạo mô hình cho các nhiệm vụ sau khác nhau
Trong suốt quá trình tinh chỉnh thì toàn bộ các tham số của các tầng học chuyển giao sẽ được điều chỉnh Đối với các nhiệm vụ sử dụng đầu vào là một cặp chuỗi (pair-sequence) ví dụ như câu hỏi và trả lời thì ta sẽ thêm mã khởi tạo là [CLS] ở đầu câu, mã [SEP] ở giữa để ngăn cách 2 câu Tiến trình áp dụng tinh chỉnh sẽ như sau:
• Bước 1: Nhúng toàn bộ các mã của cặp câu bằng các vector nhúng từ mô hình huấn luyện trước Các mã nhúng bao gồm cả 2 mã là [CLS] và [SEP] để đánh dấu vị trí bắt đầu của câu hỏi và vị trí ngăn cách giữa 2 câu Hai mã này sẽ được dự báo ở đầu ra để xác định các phần mở rộng bắt đầu/kết thúc (Start/End Spand) của câu đầu ra
Kết luận chương
Chương 1 cung cấp một nền tảng vững chắc trong lý thuyết về phân tích từ và phân tích cảm xúc trong NLP, với sự nhấn mạnh đặc biệt vào mô hình BERT
Qua việc nghiên cứu các kỹ thuật này, chúng ta có thể thấy rằng sự phát triển của học sâu đã mang lại những cải tiến đáng kể trong khả năng hiểu và xử lý ngôn ngữ của máy Mô hình BERT, cụ thể, đã mở ra những cơ hội mới trong việc phân tích và xử lý ngôn ngữ tự nhiên, cho phép các hệ thống máy tính hiểu và tương tác với ngôn ngữ con người một cách tự nhiên hơn
Những nghiên cứu và ứng dụng của mô hình BERT và các kỹ thuật liên quan sẽ tiếp tục là trọng tâm trong tương lai của ngành công nghệ thông tin và xử lý ngôn ngữ
Chúng ta sẽ đến với chương tiếp theo, ứng dụng Bert vào dữ liệu thực tế phân tích cảm xúc người dùng sản phẩm du lịch.
Thu thập, xây dựng, phân tích dữ liệu
Xây dựng bộ từ điển cảm xúc
Hiện nay có hai phương pháp tiếp cận chính để giải quyết vấn đề trích xuất cảm xúc một cách tự động Cách đầu tiên là dựa vào các từ vựng thông qua việc tính toán giá trị ngữ nghĩa của các từ hay cụm từ trong tài liệu Cách tiếp cận thứ
2 sử dụng phương pháp thống kê hay máy học để giải quyết vấn đề
Sau nhiều thời gian nghiên cứu, tôi quyết định sử dụng phương pháp dựa vào từ vựng thông qua việc tính toán giá trị ngữ nghĩa của các từ hay cụm từ trong tài liệu Bước đầu tiên để tính toán được các giá trị ngữ nghĩa cần dựa trên một tập hợp các từ và giá trị ngữ nghĩa của chúng hay còn gọi là từ điển cảm xúc
Theo khảo sát cá nhân, hiện tại chưa có một bộ từ điển cảm xúc nào cho tiếng Việt được công bố chính thức Việc xây dựng một bộ từ điển cần đầu tư nhiều thời gian, kinh phí và nhất là cần sự hợp tác của những chuyên gia về ngôn ngữ học
2.1 Bộ từ điển cảm xúc SO-CAL tiếng Anh
SO-CAL sử dụng một bộ từ điển để đánh giá cảm xúc của từ và cụm từ trong văn bản Mỗi từ trong từ điển này có một giá trị cảm xúc được gán, thường nằm trong khoảng từ -5 (rất tiêu cực) đến +5 (rất tích cực) Số lượng từ của các bộ từ điển danh từ, động từ, tính từ và trạng từ lần lượt là 1142 từ, 903 từ, 2252 từ và
Bộ từ điển này có thể chứa:
Từ đơn: Những từ như "good", "bad", "happy", "sad", v.v
Cụm từ: Những biểu thức cụ thể hoặc ngữ cảnh mà cảm xúc của chúng có thể khác biệt so với khi chúng được xem xét riêng lẻ Ví dụ, "not bad" có thể có một giá trị khác nhau so với "bad" khi xét riêng lẻ
Các từ tăng cường: Những từ giúp tăng cường hoặc giảm bớt cảm xúc của từ hoặc cụm từ Ví dụ, "very" trong "very good" hoặc "hardly" trong "hardly interesting"
Một số từ tăng cường
Từ tăng cường Mức độ
Bảng 1 Một số từ tăng cường
Khi SO-CAL phân tích văn bản, nó sẽ tìm kiếm các từ và cụm từ trong từ điển của mình và sử dụng giá trị cảm xúc đã gán để tính toán tổng cảm xúc cho đoạn văn bản hoặc câu
Trong thực tế, câu còn có thêm những từ phủ định, làm tăng/giảm mức độ ngữ nghĩa, động từ khiếm khuyết Làm sao đánh giá ảnh hưởng của các từ này đến cảm xúc trong câu để đưa ra mức độ cảm xúc chính xác là một thách thức lớn đối với việc phân tích cảm xúc
Ví dụ, từ "không" có thể đảo ngữ nghĩa của một câu hoàn toàn "Tôi thích bộ ảnh này" mang một ý nghĩa tích cực, nhưng khi thêm từ "không" trở thành "Tôi không thích bộ ảnh này", câu đó chuyển biến thành tiêu cực
Ngoài ra, việc sử dụng các từ và cụm từ làm tăng hoặc giảm mức độ ngữ nghĩa cũng rất quan trọng "Tôi thích bộ phim này" và "Tôi rất thích bộ phim này" mang hai ý nghĩa khác biệt về mức độ yêu thích Sự thêm vào của từ "rất" tăng cường mức độ tích cực của cảm xúc
Các động từ khiếm khuyết như "có lẽ", "có thể" hoặc "hy vọng" thêm vào sự không chắc chắn cho câu và làm mờ đi mức độ cảm xúc "Tôi nghĩ cuốn sách này hay" không mang một ý nghĩa mạnh mẽ bằng "Cuốn sách này hay"
2.2 Bộ từ điển cảm xúc SO-CAL tiếng Việt Để dịch bộ từ điển SO-CAL tiếng Anh tôi đã sử dụng Google Translate bằng phương pháp tự động bằng Selenium, mỗi từ sẽ được phân tách nhau theo dòng và được dịch auto trên web sau đó tổng hợp lại
Google Translate là dịch vụ hỗ trợ dịch ngôn ngữ, có thể dịch được hầu hết các ngôn ngữ trên thế giới trong đó có tiếng Việt Chất lượng của Google Translate là khá tốt và có tốc độ phản hồi nhanh, thích hợp cho việc chuyển đổi các từ, câu văn bản tiếng Anh
Sau khi dịch xong bộ từ điển SO-CAL tiếng Anh sang tiếng Việt, tôi đã thu được một bộ từ điển SO-CAL tiếng Việt bao gồm 5 bộ từ điển nhỏ: Từ điển danh từ (1544 từ), từ điển động từ (1105 từ), từ điển tính từ (2357 từ), từ điển trạng từ
(749 từ) và từ điển tăng cường (185 từ)
Dưới đây là một số từ trong các từ điển trong bộ từ điển SO-CAL tiếng Việt mà tôi xây dựng
Danh từ Giá trị cảm xúc
Bảng 2 Một số từ trong bộ từ điển danh từ
Một số từ trong bộ từ điển động từ Động từ Giá trị cảm xúc
Bảng 3 Một số từ trong bộ từ điển động từ
Một số từ trong bộ từ điển tính từ
Tính từ Giá trị cảm xúc
Bảng 4 Một số từ trong bộ từ điển tính từ
Một số từ trong bộ từ điển trạng từ
Trạng từ Giá trị cảm xúc
Bảng 5 Một số từ trong bộ từ điển trạng từ Một số từ trong bộ từ điển từ tăng cường
Từ tăng cường Giá trị cảm xúc Ít -1.5
Bảng 6 Một số từ trong bộ từ điển từ tăng cường
2.3 Phương pháp phân loại chủ quan
Phân loại chủ quan là bước đầu tiên cần thiết để phân tích cảm xúc Trong phần này, công việc cần thực hiện là đánh giá và phân lớp dữ liệu sau khi tiền xử lý thành 2 lớp: lớp chủ quan và khách quan a) Câu có từ hàm chứa cảm xúc
Thu thập dữ liệu
Mạng xã hội mà tôi tiếp cận để thu thập dữ liệu là Facebook Hiện nay, Facebook là mạng xã hội phổ biến nhất ở Việt Nam Do đó nguồn dữ liệu ở đây vô cùng phong phú và cập nhật thường xuyên, nhanh chóng
Tìm kiếm trên các diễn đàn, nhóm về du lịch tại Quy Nhơn, chúng ta có thể thấy một số bình luận theo hướng tích cực như “Biển Quy Nhơn đẹp quá”, “Kỳ
Co tuyệt vời” … hay một số bình luận theo hướng tiêu cực như “không nên tới chỗ này”, “chẳng có gì hấp dẫn”…
Tôi sử dụng Selenium để lấy các dữ liệu Facebook
Selenium là một bộ công cụ và thư viện được thiết kế để tự động hóa trình duyệt web, ra đời từ năm 2004 Nó bao gồm một loạt các thành phần như Selenium IDE, một plugin trình duyệt cho phép ghi và phát lại thao tác; Selenium WebDriver, thư viện cho phép lập trình viên tương tác trực tiếp với trình duyệt Điểm mạnh của Selenium bao gồm khả năng hỗ trợ đa nền tảng, đa ngôn ngữ và là mã nguồn mở
3.1 Bộ dữ liệu huấn luyện
Gán nhãn câu bằng tay
Bộ dữ liệu tôi thu thập được bao gồm 2000 câu chia làm 3 nhãn cảm xúc: tích cực, không cảm xúc và cảm xúc tiêu cực
Sau khi thu thập xong, quá trình tiền xử lý dữ liệu được thực hiện để loại bỏ các yếu tố gây nhiễu như ngôn từ không liên quan, biểu tượng cảm xúc, và các ký tự đặc biệt Bên cạnh đó, việc chuẩn hóa dữ liệu cũng được thực hiện, bao gồm việc chuyển tất cả văn bản về dạng chữ thường, loại bỏ khoảng trắng dư thừa và sửa lỗi chính tả
Tăng cường dữ liệu là một kỹ thuật có thể tăng kích thước của tập dữ liệu Nhiều nhà nghiên cứu làm việc về tăng cường dữ liệu, chủ yếu trong lĩnh vực thị giác máy tính, âm thanh, v.v
So với những lĩnh vực này, có ít nghiên cứu hơn về tăng cường dữ liệu trong lĩnh vực văn bản và chưa có phương pháp tiêu chuẩn nào Phương pháp thường được sử dụng là sử dụng từ điển hoặc từ đồng nghĩa hoặc cơ sở dữ liệu từ đồng nghĩa để thay thế từ Trong tình huống không có từ điển, cách khác là sử dụng biểu diễn từ phân phối để tìm các từ tương tự Một phương pháp thuộc loại này được gọi là tăng cường từ đồng nghĩa Trong thực tế, cách tốt nhất để tăng cường là thay đổi cách diễn đạt của ngôn ngữ một cách nhân tạo, nhưng chi phí của phương pháp này quá đắt đỏ Do đó, tùy chọn phổ biến nhất trong tăng cường dữ liệu cho hầu hết các nghiên cứu là thay thế từ hoặc cụm từ bằng từ đồng nghĩa của chúng
Tăng cường Mixup (Guo, 2020)[8] tạo ra các ví dụ mới bằng cách lấy mẫu từ dữ liệu gốc và kết hợp chúng theo hình lồi, thường là mẫu được lấy từ hai hoặc nhiều hơn, nó kết hợp dữ liệu cả về đầu vào và đầu ra Nó lấy cặp mẫu từ tập dữ liệu ban đầu và tổng cả đầu vào và đầu ra Ý tưởng chính của Mixup là một mẫu Cho hai dữ liệu có nhãn (xi, yi) và (xj, yj), trong đó x là vector đầu vào và y là nhãn đã được mã hóa one-hot, thuật toán tạo ra các mẫu huấn luyện bằng cách nội suy tuyến tính: Ở đây, λ ∈ [0, 1], và λ được lấy từ phân phối Beta với tham số α là siêu tham số để điều chỉnh phân phối của λ Đây là phù hợp nhất cho các mô hình học sử dụng hàm mất mát cross-entropy và thay đổi đầu vào Tăng cường bằng phương pháp mixup có thể được thực hiện trên biểu diễn văn bản cho các vấn đề văn bản Vì vậy, chúng ta có thể sử dụng mixup với các mô hình túi ngôn ngữ, biểu diễn từ, và mô hình ngôn ngữ
3.2.1 Cải tiến phương pháp Mixup
Mixup có thể được hiểu một cách khác nhau Một mặt, phương pháp Mixup có thể được xem như một phương pháp tăng cường dữ liệu tạo ra dữ liệu mới dựa trên tập huấn luyện gốc Mặt khác, nó tăng cường tính chất chặn của mô hình Mixup ban đầu được thiết kế cho các nhiệm vụ hình ảnh; do đó, mixup đã được chứng minh là hoạt động tốt trên dữ liệu hình ảnh liên tục; tuy nhiên, việc mở rộng mixup từ hình ảnh sang văn bản khá khó khăn, vì không thể tính toán sự nội suy của các mã thông báo rời rạc Để vượt qua thách thức này, Tôi đề xuất một phương pháp mới mở rộng từ văn bản gốc và nội suy trong không gian ẩn Lấy cảm hứng từ hiệu suất xuất sắc của các mô hình đã được đào tạo trước như Bert, tôi sử dụng một mô hình đa tầng để mã hóa văn bản được cung cấp để thu được biểu diễn ngữ nghĩa Trong quá trình này, tôi mở rộng văn bản gốc và thực hiện các phép nội suy trong không gian
(2) ẩn như một phương pháp tăng cường dữ liệu cho văn bản Đối với một bộ mã hóa với L tầng, tôi chọn để trộn lẫn biểu diễn ẩn tại tầng K
Như được thể hiện trong Hình 12, tôi đầu tiên sử dụng các kỹ thuật tăng cường văn bản để mở rộng kích thước dữ liệu đã được gán nhãn, chẳng hạn như EDA, dịch ngược và tăng cường dựa trên Word2vec (tương tự ngữ nghĩa đã học), và sau đó, tôi tính toán biểu diễn ẩn ở các tầng dưới cùng và trộn lẫn biểu diễn ẩn tại tầng m, và đưa các biểu diễn ẩn đã nội suy đến các tầng trên
Trong biểu thức toán học, tôi ký hiệu tầng m trong mạng mã hóa là mixupm(., θ), do đó, biểu diễn ẩn của tầng m có thể được tính như hiddenm = mixupm(hiddenm-
1,θ) Đối với các mẫu văn bản Xi và việc tăng cường của chúng Xj, tôi định nghĩa tầng 0 là tầng nhúng, ví dụ, ℎ = WEXi và biểu diễn ẩn của hai mẫu từ các tầng thấp hơn và quá trình trộn lẫn tại tầng k và truyền tiến đến các tầng trên được định nghĩa như sau
Hình 12 Tăng cường dữ liệu
Tôi sử dụng một mô hình mã hóa mixup(., θ), Phương trình (3) biểu thị phương pháp mixup trước tầng hợp nhất m, trong đó θ biểu thị các tham số còn lại trong mô hình Phương trình (4) biểu thị phương pháp tính toán trong tầng hỗn hợp Phương trình (5, 6) lần lượt biểu thị thao tác trên tầng hỗn hợp và toàn bộ phương pháp hỗn hợp MATEXT kết hợp văn bản gốc và văn bản tăng cường đơn giản của nó như đầu vào và thực hiện việc nội suy các biểu diễn ẩn ngữ nghĩa văn bản như một loại tăng cường dữ liệu So với mixup được định nghĩa trong tăng cường biểu diễn văn bản Trong thí nghiệm, tôi lấy mẫu tham số mix λ từ phân phối Beta cho mỗi batch để thực hiện việc nội suy
Trong phương trình, a là siêu tham số để điều chỉnh phân phối của λ Trong MATEXT, khác với mixup gốc, tôi chia sẻ nhãn của văn bản gốc và văn bản tăng cường của nó
Tôi sử dụng kỹ thuật Tăng cường Dữ liệu Dễ dàng (EDA) (Wei và Zou, 2019)[9] bao gồm bốn hoạt động chỉnh sửa văn bản khác nhau:
(1) Thay thế từ đồng nghĩa: N từ được chọn ngẫu nhiên từ câu và được thay thế bằng một trong các từ đồng nghĩa được chọn ngẫu nhiên
(2) Tiêm nhiễu ngẫu nhiên: N từ được chọn ngẫu nhiên từ câu và một ký tự duy nhất của mỗi từ được thay thế bằng một ký tự bảng chữ cái ngẫu nhiên
(3) Hoán đổi ngẫu nhiên: tôi ngẫu nhiên chọn hai từ trong câu và hoán đổi vị trí của chúng và lặp lại N lần
Xây dựng mô hình
Cấu trúc mô hình tôi đã thiết kế được hiển thị trong Hình 13 Dữ liệu văn bản đầu vào được mở rộng và sau đó được kết hợp trong tầng biến áp trước khi được đào tạo và phân loại Ngoài các mô hình truyền thống, mô hình chủ yếu được chia thành bốn phần, đó là phần tăng cường dữ liệu, tầng kết hợp, tầng tuyến tính và mô-đun xếp chồng
Các mô-đun mixup và tăng cường văn bản đã được hiển thị trong hai hình ảnh nhỏ ở trên, và tầng tuyến tính trong Hình 3 cũng có thể được gọi là tầng hạn chế Tôi đã giới thiệu tầng tuyến tính này vào mô hình với hai lý do: một mặt, tầng hạn chế này cho phép điều chỉnh kích thước đầu vào và đầu ra lên 512, giúp việc truyền thụ kiến thức sau này và đào tạo mô hình trở nên dễ dàng; mặt khác, sự lựa chọn tầng tuyến tính thay vì một hàm kích hoạt ngăn không tuyến tính làm mất
Hình 13 Cấu trúc mô hình quá nhiều thông tin, trong khi hàm kích hoạt có thể loại bỏ nhiều thông tin hữu ích.
Kết quả huấn luyện mô hình
Bộ dữ liệu của tôi sau khi thu thập và tăng cường bao gồm 15.176 câu, bao gồm 3 nhãn chính là tích cực, tiêu cực và không cảm xúc
Trong biểu đồ sau, các câu thể hiện cảm xúc tiêu cực chiếm số lượng nhiều nhất, 1 phần cũng là do sự kết hợp với bộ từ điển SO-CAL
Hình 14 Mô tả dữ liệu
Hình trên là hình ảnh đám mây từ (word cloud) chứa nhiều từ ngữ và cụm từ khác nhau trong tập dữ liệu
Tập dữ liệu thu thập và xây dựng dựa trên du lịch Quy Nhơn nên có thể nhận thấy "biển" là giá trị xuất hiện nhiều nhất với 1.2% tần suất Ngoài ra còn có các từ khác liên quan như “cảm”, “khách”, “tháp” … cũng phù hợp với phân tích cảm xúc du lịch
5.2 Sử dụng Mô hình tiền huấn luyện Ở đây tôi sử dụng 3 mô hình để huấn luyện sau đó lựa chọn sử dụng mô hình đạt điểm tốt nhất bao gồm:
Bert-Base-Uncase[10] là một kiến trúc dự đoán ngôn ngữ được huấn luyện trước trên một lượng lớn dữ liệu văn bản Mô hình "base" của Bert có 110 triệu tham số Ở phiên bản uncase, các chữ cái đều được chuyển thành chữ thường trước khi đưa vào mô hình, nghĩa là nó không phân biệt chữ hoa và chữ thường
DistilBert-Base-Uncase[11] là một phiên bản nhỏ gọn hơn của Bert, được tạo ra bằng cách "distill" (lọc) kiến thức từ mô hình Bert lớn hơn Nó giữ được khoảng 95% hiệu suất của Bert nhưng chỉ với 60% số tham số Vì kích thước nhỏ hơn, DistilBert thích hợp cho các ứng dụng cần tới tốc độ nhanh và bộ nhớ ít hơn, như trên các thiết bị di động hoặc trong môi trường sản xuất
Bert-Base-Multilingual-Uncased[12] Đây là phiên bản của Bert được huấn luyện trên dữ liệu văn bản đa ngôn ngữ từ 104 ngôn ngữ khác nhau Mô hình này được thiết kế để hỗ trợ nhiều ngôn ngữ và có khả năng tinh chỉnh cho các tác vụ xử lý ngôn ngữ tự nhiên trong nhiều ngôn ngữ
5.3.1 Mô hình Bert-Base-Uncase
Ta thấy quá trình huấn luyện và độ chính xác khá tốt, Độ chính xác tăng theo các giai đoạn huấn luyện và hàm mất mát cho thấy sự giảm theo thời gian
Hình 16 Quá trình huấn luyện Bert-base-uncase
Kết quả F1-score và độ chính xác Điểm F1-score là 0.9163 điểm, tôi sẽ đi tổng hợp các điểm F1-score và đưa ra phiên bản tốt nhất
Kết quả ma trận nhầm lẫn – Confusion matrix
Hình 17 F1-score và độ chính xác của Bert-Base-
Hình 18 Ma trận nhầm lẫn khi kiểm thử mô hình Bert-base-uncase
Dưới đây là phân tích chi tiết về ma trận nhầm lẫn:
Hàng Positive – Cảm xúc tích cực
- 723 mẫu được dự đoán chính xác là Tích cực
- 120 mẫu thực sự là Positive nhưng lại bị dự đoán là Tiêu cực
- Không có mẫu nào thực sự là Tích cực bị dự đoán là Tiêu cực
Hàng Negative – Cảm xúc tiêu cực
- 79 mẫu thực sự là Negative nhưng lại bị dự đoán là Tích cực
- 928 mẫu được dự đoán chính xác là Tiêu cực
- Không có mẫu nào thực sự là Tiêu cực bị dự đoán là Không cảm xúc
Hàng Neutral – không cảm xúc
- Không có mẫu nào thực sự là Neutral bị dự đoán là Tích cực hoặc Tiêu cực
- 427 mẫu được dự đoán chính xác là Không cảm xúc
- Mô hình có độ chính xác cao khi dự đoán nhãn Tích cực và Tiêu cực, nhưng vẫn có một số lỗi khi dự đoán nhãn Tích cực là Tiêu cực và ngược lại
- Mô hình hoàn toàn chính xác khi dự đoán nhãn Không cảm xúc
Ta thấy quá trình huấn luyện và độ chính xác khá tốt, hàm mất mát cho thấy sự giảm theo thời gian
Hình 20 F1-score và độ chính xác của DistilBert-Base-Uncase
Hình 19 Quá trình huấn luyện mô hình DistilBert-Base-Uncase
Ta có thể nhận thấy mô hình DistilBert-Base-Uncase có độ chính xác và F1- score thấp hơn so với Bert-base-uncase Ma trận nhầm lẫn có số lượng nhận biết sai số nhãn nhiều hơn so với mô hình trước đó
Hình 21 Ma trận nhầm lẫn khi kiểm thử mô hình DistilBert-Base-
Hình 22 Quá trình huấn luyện Bert-Base-Multilingual-Uncased
Ta thấy đây là mô hình có độ chính xác và hàm mất mát tốt nhất (so với 2 mô hình trên phía trên) Có điểm F1-score cũng như các giá trị độ chính xác và gọi lại ổn nhất
Hình 23 F1-score và độ chính xác của Bert-Base-Multilingual-Uncased
Dựa trên hình ảnh, ta có thể phân tích như sau:
Positive – Cảm xúc tích cực:
- True Positive (TP): 723 mẫu được dự đoán chính xác là tích cực
Negative – Cảm xúc tiêu cực:
- True Negative (TN): 928 mẫu được dự đoán chính xác là tiêu cực
Hình 24 Ma trận nhầm lẫn khi kiểm thử mô hình Bert-Base-
- True Neutral (TN): 427 mẫu được dự đoán chính xác là không cảm xúc
Mô hình hoạt động tốt với lớp Cảm xúc tích cực, và cảm xúc tiêu cực vì số lượng TP và TN đều cao
5.4 Tổng kết xây dựng mô hình
Bảng so sánh 3 mô hình
Bảng 8 Bảng so sánh các thông số của 3 mô hình Hình 25 Biểu đồ tổng quá trình huấn luyện của 3 mô hình
Thông qua biểu đồ tổng và bảng so sánh chung ta có thể thấy mô hình Bert- Base-Multilingual-Uncased khá thích hợp với tác vụ phân tích cảm xúc trong đề án này, vì thế tôi chọn mô hình này vào ứng dụng Ta có thể chọn DistilBert mô hình nếu sử dụng phần cứng không đáp ứng được những tác vụ nặng
Giao diện thực nghiệm - ứng dụng
Tôi ứng dụng mô hình được huấn luyện với tập dữ liệu thu thập được vào trợ lý ảo cho Facebook
AgriTours Bình Định là một trang giới thiệu các địa điểm du lịch ở Quy Nhơn Bình Định do tôi xây dựng Ở phần tin nhắn của trang, có một trợ lý ảo được tôi dựng lên nhằm mục đích tương tác với người dùng Trợ lý ảo này có nhiệm vụ hội thoại: chào hỏi, đưa ra thông tin điểm đến, nhận biết các cảm xúc người dùng thông qua chia sẻ người dùng sau khi kết thúc chuyến du lịch
Trợ lý ảo AgriTours Bình Định được xây dựng thông qua Rasa platform được mô tả như sau:
Rasa là một nền tảng mã nguồn mở được thiết kế để xây dựng các ứng dụng chatbot và trợ lý ảo Rasa cung cấp các công cụ và khả năng tùy chỉnh cao, cho phép các nhà phát triển xây dựng các giải pháp trò chuyện phức tạp và tinh vi mà không cần sử dụng dịch vụ đám mây của bên thứ ba
Dưới đây là một số đặc điểm nổi bật của Rasa:
- Mã nguồn mở: Rasa là mã nguồn mở, cho phép bạn tùy chỉnh và mở rộng nó dễ dàng theo nhu cầu cụ thể của bạn
- Hỗ trợ NLU (Natural Language Understanding): Rasa NLU giúp máy hiểu và phân loại ngôn ngữ tự nhiên của con người, giúp xác định ý định (intent) và thực thể (entity) từ văn bản đầu vào
- Xử lý hội thoại: Với Rasa Core, bạn có thể xây dựng các luồng hội thoại phức tạp và tạo ra các phản hồi dựa trên trạng thái hiện tại của cuộc hội thoại
- Tích hợp dễ dàng: Rasa có thể tích hợp mượt mà với nhiều dịch vụ và nền tảng khác nhau như Facebook Messenger, Slack, và nhiều nền tảng trò chuyện khác
Hình 26 Giao diện trang Facebook
Hình 27 Giao diện ứng dụng AgriTours Bình Định
Hình 28 Người dùng chia sẻ cảm xúc tích cực Ở đây, tôi đã cho Trợ lý ảo của mình đồng cảm với người dùng khi gặp cảm giác tích cực (“quý khách đã có trải nghiệm tuyệt vời”) và chia sẻ khi người dùng gặp cảm giác tiêu cực (“rất tiếc khi gặp trải nghiệm không tốt”)
Mô hình đã hoạt động tốt với các trường hợp người dùng chia sẻ những điểm tích cực và tiêu cực trong du lịch.
Kết luận chương
Chương 2 cung cấp một cái nhìn sâu sắc và toàn diện về quy trình phát triển mô hình NLP, từ việc xây dựng bộ từ điển cảm xúc, thu thập dữ liệu, đến xây dựng và huấn luyện mô hình Qua quá trình này, chúng ta có thể thấy rằng mỗi bước trong quy trình phát triển mô hình đều đóng vai trò quan trọng và không thể thiếu, đặc biệt là trong việc đảm bảo tính chính xác và hiệu quả của mô hình
Hình 29 Người dùng chia sẻ cảm xúc tiêu cực
Các mô hình như Bert-Base-Uncased, DistilBert, và Bert-Base-Multilingual không chỉ cho thấy sự tiến bộ trong công nghệ học máy mà còn cung cấp những công cụ mạnh mẽ cho việc phân tích ngôn ngữ tự nhiên Kết quả huấn luyện và phân tích cho thấy rằng, với sự chính xác và linh hoạt của chúng, các mô hình này có thể được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau
Giao diện thực nghiệm và ứng dụng thực tế là bước cuối cùng, chứng minh tính ứng dụng thực tế của các mô hình đã phát triển Sự kết hợp giữa lý thuyết và thực hành trong chương này không chỉ mở ra hướng nghiên cứu mới mà còn là cơ sở vững chắc cho các phát triển tiếp theo trong lĩnh vực NLP.