1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ kỹ thuật máy tính: Nghiên cứu và tối ưu mô hình học sâu trong bài toán phân loại bình luận tiêu cực trên mạng xã hội

126 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Tối Ưu Mô Hình Học Sâu Trong Bài Toán Phân Loại Bình Luận Tiêu Cực Trên Mạng Xã Hội
Tác giả Võ Mạnh Thường
Người hướng dẫn GVHD: Võ Minh Huân
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 126
Dung lượng 4,62 MB

Cấu trúc

  • CHƯƠNG 1 GIỚI THIỆU (9)
    • 1.1. Đ ẶT VẤN ĐỀ (9)
    • 1.2. H ƯỚNG TIẾP CẬN (10)
      • 1.2.1. Mô hình học sâu (10)
      • 1.2.2. Mô hình kết hợp (12)
      • 1.2.3. Dữ liệu tiếng Việt (12)
      • 1.2.4. Tăng cường dữ liệu (13)
    • 1.3. M ỤC TIÊU ĐỀ TÀI (14)
    • 1.4. G IỚI HẠN NGHIÊN CỨU (14)
  • CHƯƠNG 2 NGHIÊN CỨU TỔNG QUAN (16)
    • 2.1. S O SÁNH GIỮA CÁC MÔ HÌNH XỬ LÝ NGÔN NGỮ TỰ NHIÊN HIỆN NAY (16)
    • 2.2. M Ô HÌNH HỌC SÂU (D EEP L EARNING ) (18)
      • 2.2.1. CNN (18)
      • 2.2.2. Pre-trained Models (19)
    • 2.3. T ẬP DỮ LIỆU V I HSD (26)
    • 2.4. X Ử LÝ DỮ LIỆU (28)
      • 2.4.1. Tiền xử lý dữ liệu (28)
      • 2.4.2. Tăng cường dữ liệu (29)
    • 2.5. P HƯƠNG PHÁP ĐÁNH GIÁ (34)
      • 2.5.1. Accuracy và F1-Score (34)
      • 2.5.2. Hàm mất mát (Loss Function) (35)
      • 2.5.3. Confusion Matrix (36)
  • CHƯƠNG 3 PHƯƠNG PHÁP THỰC HIỆN PHÂN TÍCH THIẾT KẾ (37)
    • 3.1. T IỀN XỬ LÝ DỮ LIỆU (37)
    • 3.2. T HIẾT KẾ MÔ HÌNH (37)
      • 3.2.1. CNN (37)
      • 3.2.2. Pre-trained model (39)
      • 3.2.3. PhoBERT-CNN (40)
    • 3.3. T ĂNG CƯỜNG DỮ LIỆU (42)
      • 3.3.1. Tăng cường dữ liệu với phương pháp EDA (42)
      • 3.3.2. Tăng cường dữ liệu với PhoBERT (45)
    • 3.4. T HIẾT LẬP SIÊU THAM SỐ (H YPER P ARAMETER ) (48)
      • 3.4.1. Kỹ thuật xác định siêu tham số tối ưu (48)
      • 3.4.2. CNN (48)
      • 3.4.3. Pre-trained model (48)
    • 3.5. S Ơ ĐỒ KHỐI (48)
  • CHƯƠNG 4 KẾT QUẢ VÀ THẢO LUẬN (49)
    • 4.1. T IỀN XỬ LÝ DỮ LIỆU (49)
    • 4.2. P HƯƠNG PHÁP TĂNG CƯỜNG DỮ LIỆU (50)
      • 4.2.1. Phương pháp EDA (50)
      • 4.2.2. Phương pháp tăng cường dữ liệu với PhoBERT (51)
    • 4.3. S O SÁNH 2 PHƯƠNG PHÁP TĂNG CƯỜNG DỮ LIỆU DỰA TRÊN C ONFUSION M ATRIX (53)
    • 4.4. T HỜI GIAN HUẤN LUYỆN VÀ DUNG LƯỢNG MÔ HÌNH (54)
    • 4.5. P HÂN TÍCH CÁC DỰ ĐOÁN SAI (56)
  • CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (58)
    • 5.1. K ẾT LUẬN (58)
    • 5.2. H ƯỚNG PHÁT TRIỂN (60)

Nội dung

Với các kết quả thu được, tôi thực hiện phân tích khả năng dự đoán của mô hình trên tập dữ liệu với các công cụ đánh giá trên từng nhãn để xem xét, đánh giá ảnh hưởng của dữ liệu tăng cư

GIỚI THIỆU

Đ ẶT VẤN ĐỀ

Trong thời đại công nghệ hiện nay, mạng xã hội như Facebook, Youtube, TikTok, và Twitter đã trở thành một phần thiết yếu trong cuộc sống con người, giúp kết nối và chia sẻ thông tin Tuy nhiên, sự gia tăng người dùng cũng kéo theo nhiều bình luận tiêu cực, bao gồm nội dung xúc phạm và bạo lực, tạo ra môi trường độc hại Nghiên cứu cho thấy, sau khi tiếp xúc với bình luận tiêu cực, người dùng có thể trải qua cảm giác buồn bã, tức giận và sợ hãi, dẫn đến suy giảm tinh thần lạc quan và tăng cảm giác căng thẳng Hơn nữa, tiếp xúc lâu dài với những bình luận này có thể gây ra các vấn đề về sức khỏe tâm thần như trầm cảm Hành vi người dùng cũng bị ảnh hưởng, khi họ trở nên ít hoạt động và tương tác hơn trên mạng xã hội, điều này có thể dẫn đến giảm số lượng người dùng, một vấn đề mà các nền tảng không mong muốn.

Các bình luận tiêu cực có thể lan rộng và tạo ra xu hướng tiêu cực, đặc biệt là tình trạng phân biệt vùng miền tại Việt Nam Nguyên nhân một phần đến từ các thế lực muốn chia rẽ, nhưng chủ yếu là do những người dùng thích trêu chọc và chọc tức người khác Hành động này, dù sai trái, đã trở thành một hiện tượng thú vị trong mắt nhiều người Vì vậy, cần cải thiện môi trường mạng xã hội và áp dụng nhiều biện pháp đối với những bình luận công kích.

Các bình luận tiêu cực trên mạng xã hội không chỉ ảnh hưởng đến sức khỏe tinh thần mà còn dẫn đến hiện tượng "Bắt nạt trên mạng" (Cyber-bullying) ngày càng phổ biến Hiện tượng này xảy ra khi người dùng bị nhiều người khác công kích trong thời gian dài, gây ra cảm giác sợ hãi, tức giận và xấu hổ Hệ quả lâu dài có thể làm tổn thương nghiêm trọng đến tâm lý và sức khỏe tinh thần của nạn nhân Mặc dù các nền tảng mạng xã hội đã triển khai nhiều biện pháp ngăn chặn, như cho phép người dùng báo cáo bình luận tiêu cực, nhưng số lượng bình luận quá lớn khiến người dùng ngần ngại trong việc báo cáo Ngoài ra, việc thuê nhân viên kiểm duyệt cũng chỉ mang lại hiệu quả hạn chế, vì họ thường xuyên tiếp xúc với các bình luận tiêu cực, dẫn đến ảnh hưởng tâm lý cho chính họ.

Vào năm 2022, Microsoft đã công bố bảng đánh giá những quốc gia có hành vi kém văn minh nhất trên Internet, trong đó Việt Nam đứng trong top 5 Theo một khảo sát, 87% độc giả của báo Zing.vn đồng tình với xếp hạng này, cho thấy mức độ tiêu cực trong bình luận của người Việt Nam rất cao và dễ nhận thấy Do đó, việc nghiên cứu và phân loại các bình luận tiêu cực tại Việt Nam bằng các mô hình học sâu là một nhu cầu cấp bách hiện nay.

H ƯỚNG TIẾP CẬN

Nghiên cứu phân loại bình luận trên mạng xã hội đã thu hút sự chú ý của nhiều nhà khoa học và chuyên gia công nghệ Nhiều hướng tiếp cận và giải pháp đã được đề xuất và thực hiện để cải thiện hiệu quả trong lĩnh vực này.

Trước khi có sự xuất hiện của các mô hình học sâu, lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) chủ yếu dựa vào các phương pháp truyền thống như SVM, Logistic Regression và Naïve Bayes Những phương pháp này thường dựa trên quy tắc và sử dụng các đặc trưng được thiết kế thủ công, nghĩa là các đặc trưng này không được học tự động từ dữ liệu mà được xác định và xây dựng dựa trên kiến thức và hiểu biết của con người.

Sự ra đời của các mô hình học sâu như Convolutional Neural Network (CNN), Gated Recurrent Unit (GRU) và đặc biệt là Transformer đã mang lại bước đột phá lớn trong lĩnh vực xử lý ngôn ngữ tự nhiên Nhiều nghiên cứu đã chỉ ra rằng các mô hình học sâu vượt trội hơn so với các mô hình truyền thống Các công trình nghiên cứu đã so sánh hiệu suất và cho thấy rằng các mô hình học sâu cải thiện đáng kể những nhược điểm của các mô hình truyền thống.

Việc phụ thuộc vào các đặc trưng thủ công trong việc tính toán và trích xuất đặc trưng văn bản đòi hỏi người thực hiện phải có hiểu biết sâu sắc về ngôn ngữ Phương pháp này không phản ánh được sự tự nhiên của dữ liệu, dẫn đến những hạn chế trong hiệu quả và độ chính xác của quá trình phân tích.

Xử lý dữ liệu phi cấu trúc gặp nhiều khó khăn do các đầu vào như văn bản tự do và bình luận ngắn thường không tuân theo cấu trúc câu chuẩn Điều này gây trở ngại cho các mô hình truyền thống, vì chúng yêu cầu dữ liệu đầu vào được biểu diễn dưới dạng các đặc trưng có cấu trúc.

Khả năng tổng quát hóa kém là một vấn đề phổ biến, khi mà mặc dù mô hình có thể đạt hiệu suất tốt trên các tập huấn luyện, nhưng lại gặp khó khăn trong việc dự đoán các câu mới, đặc biệt khi dữ liệu mới không quen thuộc.

Mô hình CNN đã chứng minh hiệu quả trong phân loại văn bản, như được nêu trong nghiên cứu [5], nơi tác giả giới thiệu việc sử dụng word2vec để chuyển đổi từ thành các vector Kết quả đạt được rất khả quan, đặc biệt cho các tác vụ phân loại văn bản Tác giả cũng chỉ ra rằng CNN hoạt động tốt nhất với các văn bản ngắn và có độ dài cố định, phù hợp với cấu trúc của mô hình Điều này rất thích hợp với các bình luận trên mạng xã hội hiện nay, thường là câu hoặc đoạn văn ngắn Do đó, tôi quyết định áp dụng mô hình CNN cho nhiệm vụ phân loại các bình luận trên mạng xã hội.

Transformers are a type of neural network architecture that relies on the Attention mechanism, introduced by Vaswani et al in their seminal paper "Attention is All You Need."

2017 [6] Tiếp nối thành công của kiến trúc Transformer, vào năm 2018, Google

BERT, một mô hình tiên tiến được công bố bởi Google, sử dụng kiến trúc Transformer và được tiền huấn luyện trên một lượng lớn dữ liệu để nắm bắt ngữ nghĩa Mặc dù BERT đạt hiệu suất cao trong nhiều nhiệm vụ xử lý ngôn ngữ tự nhiên, nhưng mô hình này chủ yếu được huấn luyện trên dữ liệu tiếng Anh, dẫn đến hạn chế khi áp dụng cho các tập dữ liệu tiếng Việt Để khắc phục vấn đề này, vào năm

Vào năm 2020, VinAI Research đã phát triển phoBERT, một biến thể của BERT, được huấn luyện trên một tập dữ liệu lớn tiếng Việt PhoBERT đã cho thấy khả năng hiểu và biểu diễn ngôn ngữ tự nhiên tiếng Việt một cách chính xác và hiệu quả Mục tiêu của nghiên cứu này là phân loại bình luận tiếng Việt, vì vậy tôi đã chọn mô hình phoBERT để tối ưu hóa hiệu suất xử lý ngôn ngữ, đồng thời sử dụng BERT để so sánh hiệu năng giữa hai mô hình.

Các mô hình kết hợp ngày càng phổ biến nhờ khả năng tận dụng ưu điểm của nhiều kiến trúc khác nhau để nâng cao hiệu suất trong các nhiệm vụ cụ thể Nghiên cứu đã chỉ ra rằng mô hình kết hợp BERT-CNN đạt hiệu suất tốt hơn so với các mô hình đơn lẻ BERT và CNN, nhờ vào khả năng hiểu ngữ nghĩa của BERT và khả năng trích xuất đặc trưng của CNN Đặc biệt, mô hình này cho thấy độ chính xác cao trên dữ liệu mạng xã hội và tính linh hoạt trong việc nhận diện nội dung xúc phạm trực tuyến Mô hình kết hợp giữa PhoBERT và CNN cũng đã được triển khai và cho kết quả tốt nhất, khẳng định sức mạnh của hai mô hình này trong phân loại bình luận mạng xã hội Do đó, mô hình này sẽ được sử dụng để thử nghiệm và so sánh với các mô hình khác nhằm tìm ra hiệu suất tối ưu nhất.

Dữ liệu là yếu tố quan trọng nhất trong học máy, với chất lượng và sự đa dạng quyết định hiệu suất và độ chính xác của mô hình Bài viết này tập trung vào dữ liệu bình luận tiêu cực tiếng Việt, sử dụng tập dữ liệu ViHSD được phát triển vào năm 2021, đã được gán nhãn bởi người thật và kiểm tra độ chính xác bằng nhiều phương pháp Tác giả chỉ ra rằng tập dữ liệu hiện tại bị mất cân bằng do tỷ lệ câu tiêu cực không đồng đều, với phần lớn dữ liệu là câu không tiêu cực Để cải thiện hiệu suất, tác giả đề xuất tiền xử lý dữ liệu, bao gồm việc chuẩn hóa các câu viết tắt và teencode thông qua việc sử dụng từ điển tương ứng Mặc dù tiền xử lý là quan trọng, hiện tại chưa có nhiều nghiên cứu về các phương pháp tối ưu cho ngôn ngữ tiếng Việt, thường chỉ dừng lại ở các kỹ thuật đơn giản Bài viết này sẽ nghiên cứu và đề xuất các kỹ thuật tiền xử lý tối ưu nhất cho ngôn ngữ tiếng Việt.

Tăng cường dữ liệu là phương pháp quan trọng để tạo ra mẫu dữ liệu mới từ dữ liệu hiện có, nhằm mở rộng tập dữ liệu huấn luyện và nâng cao hiệu suất của các mô hình NLP Trong lĩnh vực NLP, phương pháp Easy Data Augmentation (EDA) nổi bật với ưu điểm đơn giản, khả năng tạo ra nhiều dữ liệu và cải thiện hiệu suất, đặc biệt hiệu quả với các tập dữ liệu nhỏ hoặc mất cân bằng Với vấn đề mất cân bằng dữ liệu mà tôi đang gặp phải, EDA là giải pháp phù hợp để khắc phục tình trạng này.

Phương pháp tăng cường dữ liệu bằng mô hình tiền huấn luyện được giới thiệu trong [12] cho thấy rằng việc áp dụng mô hình này để tạo ra dữ liệu mới dựa trên kiến thức ngôn ngữ có thể nâng cao hiệu quả.

Mô hình này vượt trội hơn cả phương pháp EDA đã được giới thiệu Nghiên cứu về phương pháp này tại Việt Nam còn hạn chế, vì vậy tôi áp dụng nó để đánh giá hiệu quả so với EDA và tìm ra giải pháp tối ưu nhất cho việc tăng cường dữ liệu trong mô hình.

M ỤC TIÊU ĐỀ TÀI

Trong nghiên cứu này, tôi huấn luyện bốn mô hình học sâu: CNN, BERT, PhoBERT và PhoBERT-CNN trên tập dữ liệu ViHSD để phân loại các bình luận tiêu cực trên mạng xã hội Việt Nam Mục tiêu của tôi là áp dụng các kỹ thuật tiền xử lý dữ liệu tốt nhất cho tiếng Việt và xây dựng phương pháp tăng cường dữ liệu mới, tối ưu hơn các phương án trước đó Ngoài ra, tôi cũng xây dựng bảng so sánh hiệu suất giữa các mô hình với các phương án tăng cường dữ liệu, phân tích cách dữ liệu tăng cường cải thiện hiệu suất mô hình và tìm ra phương án tối ưu nhất để nâng cao hiệu suất cho mô hình.

G IỚI HẠN NGHIÊN CỨU

1 Giới hạn về dữ liệu: Đề tài này không khai thác thêm dữ liệu và gán nhãn, việc này đòi hỏi nhiều thời gian, công sức, nhân lực để đào tạo và xây dựng một bộ dữ liệu mới chất lượng hơn Chỉ sử dụng bộ dữ liệu đã được công khai vào năm 2021 Bộ dữ liệu này có thể cũ và không mang lại hiệu quả nếu xem xét đến sự thay đổi bình luận tính đến hiện tại

2 Phương pháp nghiên cứu: Chỉ thực hiện nghiên cứu và xây dựng các mô hình học sâu cụ thể là CNN, BERT, PhoBERT thay vì các mô hình truyền thống hoặc mô hình học sâu khác, các mô hình học sâu xây dựng trong đề tài này xây dựng dựa vào nghiên cứu đã đạt được kết quả tốt trước đó Ngôn ngữ lập trình và công cụ sử dụng dựa trên Python và các API được cung cấp miễn phí, việc thiếu nhiều cơ sở dữ liệu hiệu quả dành cho tiếng Việt có thể ảnh hưởng đến kết quả của mô hình như Wordnet-Vi (cơ sở dữ liệu đồng nghĩa)

3 Tài nguyên tính toán: Việc huấn luyện mô hình được thực hiện trên máy tính cá nhân, do đó chỉ sử dụng phiên bản Base của mô hình BERT, PhoBERT Hiệu suất có thể được cải thiện trên các mô hình có nhiều tham số và lớp hơn (Large)

4 Triển khai thực tế: Vì giới hạn thời gian nên đề tài không xây dựng được các ứng dụng từ mô hình trong môi trường thực tế để kiểm tra tính hiệu quả của mô hình

NGHIÊN CỨU TỔNG QUAN

S O SÁNH GIỮA CÁC MÔ HÌNH XỬ LÝ NGÔN NGỮ TỰ NHIÊN HIỆN NAY

Trước đây, việc xử lý ngôn ngữ chủ yếu dựa vào các mô hình truyền thống như SVM và Naïve Bayes, được xây dựng trên các thuật toán thống kê và quy tắc rõ ràng Tuy nhiên, những mô hình này vẫn tồn tại nhiều nhược điểm.

• Không có khả năng mô hình hóa các ngữ cảnh phức tạp và mối quan hệ phi tuyến tính giữa các từ và câu

Việc phân loại và phân tích dữ liệu đòi hỏi quy trình thủ công, bao gồm các bước tiền xử lý phức tạp và lựa chọn đặc trưng một cách cẩn thận Điều này yêu cầu người thực hiện có kiến thức sâu rộng về cấu trúc và ngữ pháp của ngôn ngữ.

Mô hình không thể tự động học từ dữ liệu do phụ thuộc vào việc định nghĩa các quy tắc và tiêu chuẩn trước đó, dẫn đến tính linh hoạt thấp và khó khăn trong việc cập nhật khi có dữ liệu mới.

Mô hình học sâu đã được phát triển để khắc phục các nhược điểm của mô hình truyền thống, mang lại những cải tiến vượt bậc Với cấu trúc mạng nơ-ron sâu và khả năng học từ dữ liệu lớn, các mô hình học sâu có khả năng mô hình hóa các mối quan hệ phức tạp và tự động hóa quy trình huấn luyện Một số mô hình học sâu nổi bật trong giai đoạn đầu như Word2Vec và Fasttext, tuy nhiên, chúng cũng tồn tại nhiều nhược điểm cần được khắc phục.

• Không thể xử lý mối quan hệ ngữ nghĩa phức tạp như sự tương đồng giữa các cụm từ hoặc câu

• Chỉ tạo ra vector từ dựa trên tần suất xuất hiện trong dữ liệu, không chứa thông tin về ngữ cảnh

• Gặp khó khăn trong các từ hiếm gặp hoặc chưa xuất hiện trong dữ liệu

Sự phát triển của mô hình Word2Vec và FastText đã mở ra cơ hội ứng dụng các mô hình vốn dĩ được sử dụng trong các lĩnh vực khác, như CNN trong thị giác máy tính, vào lĩnh vực xử lý ngôn ngữ tự nhiên Nhờ vào Word2Vec, văn bản được chuyển đổi thành các vector, tạo điều kiện cho việc phân tích và hiểu ngữ nghĩa trong ngôn ngữ.

Mô hình CNN đã đạt được nhiều cải tiến đáng kể trong lĩnh vực xử lý ngôn ngữ tự nhiên, nhờ vào khả năng trích xuất đặc trưng mạnh mẽ Việc sử dụng 9 điểm ảnh để huấn luyện và phân loại trong CNN đã góp phần nâng cao hiệu quả của mô hình này.

Vào năm 2017, Transformer đã tạo ra một bước đột phá trong xử lý ngôn ngữ tự nhiên, trở thành kiến trúc mô hình mạnh nhất hiện nay và dẫn đến sự phát triển của nhiều biến thể như BERT, GPT và XLM-R Các mô hình này, được gọi là mô hình tiền huấn luyện, đã được huấn luyện trên một lượng lớn dữ liệu tiếng Anh và đa ngôn ngữ Đối với tiếng Việt, các mô hình tiền huấn luyện như PhoBERT, ViBERT và XLM-R đã xuất hiện, trong đó PhoBERT được coi là mô hình tốt nhất nhờ vào dữ liệu huấn luyện tập trung vào tiếng Việt với kích thước lớn nhất ViBERT có ít dữ liệu tiếng Việt hơn, trong khi XLM-R mặc dù cũng hiệu quả nhưng không chuyên sâu vào tiếng Việt Với tập dữ liệu hoàn toàn bằng tiếng Việt, PhoBERT là lựa chọn phù hợp nhất cho các bài toán liên quan đến ngôn ngữ này.

Vào năm 2019, sự kết hợp giữa mô hình tiền huấn luyện BERT dựa trên transformer và CNN đã mang lại hiệu quả cao trong xử lý ngôn ngữ tự nhiên, đặc biệt trong phân loại văn bản ngắn như bình luận xã hội Trong bối cảnh phân loại bình luận tiếng Việt, PhoBERT kết hợp với mô hình CNN hứa hẹn sẽ đạt được những kết quả khả quan tương tự như trong các nghiên cứu trước đây.

[8] đã kết hợp BERT với CNN

Trong nghiên cứu này, tôi áp dụng các mô hình phân loại văn bản ngắn tiếng Việt, bao gồm CNN, BERT, PhoBERT và PhoBERT-CNN Trong số đó, PhoBERT và PhoBERT-CNN được xem là hai mô hình tiềm năng nhất Tôi sẽ tiến hành đánh giá hiệu quả của mô hình tiền huấn luyện trên tiếng Việt so với các mô hình chỉ huấn luyện trên tiếng Anh như PhoBERT và BERT Tuy nhiên, hiệu suất của từng mô hình có thể khác nhau tùy thuộc vào tập dữ liệu, do đó cần thực hiện nghiên cứu và đánh giá cụ thể để xác định mô hình tối ưu nhất.

M Ô HÌNH HỌC SÂU (D EEP L EARNING )

Mạng nơ-ron tích chập (CNN) là một mô hình nổi bật trong xử lý ngôn ngữ tự nhiên, đặc biệt cho phân loại văn bản ngắn Ban đầu, CNN được phát triển cho nhận dạng hình ảnh nhưng đã chứng minh hiệu quả cao khi áp dụng vào lĩnh vực ngôn ngữ.

CNN là một mô hình học sâu có khả năng nhận diện các đặc trưng không gian từ dữ liệu đầu vào Trong xử lý văn bản, CNN học được các đặc trưng từ chuỗi từ ngữ, giúp nhận diện các yếu tố quan trọng trong câu Nhờ đó, mô hình có thể tập trung vào những phần quan trọng của văn bản.

Hình 2.1: Cấu trúc mô hình CNN [13]

Cấu trúc của mô hình CNN bao gồm các thành phần chính sau:

1 Embedding Layer: Lớp này thực hiện việc chuyển đổi các từ trong văn bản thành các vector, trong đề tài này, tôi sử dụng Word2Vec để thực hiện nhúng từ

2 Convolutional Layer: Lớp này áp dụng các bộ lọc (filters) lên các vector để trích xuất đặc trưng

3 Pooling Layer: Lớp này giảm thiểu kích thước của các ma trận đặc trưng bằng cách lấy giá trị lớn nhất (Max pooling) trong một vùng nhất định Lớp này giúp giảm số lượng tham số và tránh overfitting

4 Fully Connected Layer: Lớp này kết nối toàn bộ các đặc trưng trích xuất vào một lớp đầu ra để thực hiện nhiệm vụ phân loại

Hình 2.2: Cấu trúc kiến trúc Transformer [6]

Transformers được tạo thành từ hai thành phần chính là encoder và decoder:

Encoder là thành phần chịu trách nhiệm xử lý dữ liệu đầu vào và chuyển đổi chúng thành các biểu diễn vector Mỗi vector này đại diện cho một từ trong câu, mang theo thông tin về ngữ cảnh và ngữ nghĩa của từ đó.

• Decoder: Nhận vào biểu diễn vector của encoder kết hợp với một chuỗi đầu vào khác (Outputs) và sử dụng nó để dự đoán đầu ra

2.2.2.2 Nguyên lí hoạt động: a Tiền xử lý:

1 Tokenization: Đầu tiên các dữ liệu đầu vào (inputs) được biển đổi thành các token Mục đích của việc này là chia nhỏ văn bản đầu vào thành các đơn vị nhỏ hơn gọi là “token”, tạo ra một biểu diễn cấu trúc hơn và dễ hiểu hơn cho dữ liệu đầu vào của mô hình, tăng tính tổng quát hóa của mô hình Mỗi token có thể là một từ đơn/từ ghép, một dấu câu hoặc một phần của từ… Giả sử với câu “Tôi yêu quê hương!” sẽ được tách thành các token “Tôi” “yêu” “quê_hương” “!” Với từ

"Quê hương" là một từ ghép, trong khi các từ còn lại là từ đơn Nếu không phân chia rõ ràng giữa từ đơn và từ ghép, mô hình có thể xử lý thành hai từ riêng lẻ là "quê" và "hương".

"Hương" là một từ quan trọng trong ngôn ngữ, và các dấu câu như "!" cũng được xem là một token riêng biệt Điều này giúp xử lý các trường hợp viết khác nhau, chẳng hạn như "quê hương!" và "quê hương !", một cách chính xác và nhất quán.

2 Embedding: Mô hình không hiểu câu chữ mà chỉ hiểu các con số, do đó phải biểu diễn các token dưới dạng vector, các từ gần nghĩa sẽ có vector gần giống nhau Việc nhúng từ thường thực hiện bằng các pre-trained word embeddings như Glove, Fasttext,…

3 Positional encoding: Vì transformers đưa các token vào đồng thời nên cần gán các vị trí của token trong câu Việc này được posional encoding thực hiện bằng cách cộng trực tiếp vào các token embeddings Position encodings thực hiện dựa trên hàm như sau để đảm bảo mỗi vị trí có một encoding duy nhất [16]:

Trong đó pos là vị trí của token trong câu, PE là giá trị positional encoding của phần tử thứ i trong câu có độ dài dmodel

Sau khi có được PE vector ta cộng với embedding vector và đưa vào khối encoder

An encoder consists of multiple layers, with each layer comprising two components: Multi-Head Attention and Feed-Forward The outputs from these components pass through an Add & Norm layer.

Hình 2.3: Khối encoder [6] c Cơ chế Self-Attention:

Kiến trúc transformer dựa trên cơ chế self-attention, cho phép mô hình hiểu được mối liên hệ giữa các từ trong câu Cơ chế Attention tính toán các tham số quan trọng, giúp nâng cao khả năng xử lý ngữ nghĩa của văn bản.

Hình 2.4: Vector và các ma trận Q, V, K [14]

Cơ chế self-attention sử dụng ba vector chính: Query (Q), Key (K) và Value (V) Để tạo ra các vector này, đầu vào được embedding trước đó sẽ được nhân với ba ma trận trọng số tương ứng là WQ, WK và WV Những ma trận này được khởi tạo với giá trị ngẫu nhiên và được tinh chỉnh trong quá trình huấn luyện để đạt được hiệu quả tối ưu.

1 Vector Q của từ hiện tại sẽ thực hiện truy vấn đến các vector K của các từ còn lại trong câu bằng cách nhân chập Mục tiêu là tính toán mức độ liên quan giữa các từ trong câu Những từ liên quan càng nhiều thì điểm số càng lớn và ngược lại Trong ví dụ minh họa, vector q1 nhân chập lần lượt với k1 (chính nó) và k2 (Machines) và thu được điểm số 112 và 96, có nghĩa là sự liên quan giữa từ Thinking so với chính nó cao hơn Thinking với Machines

2 Thực hiện chia 2 điểm số cho căn bậc hai số chiều của vector Q, K, V (Giả sử số chiều của Q, K, V trong ví dụ minh họa là 64-D vectors) Việc chia như vậy giúp các giá trị score không phụ thuộc vào độ dài của vector Q, K, V

3 Thực hiện hàm softmax để lấy phân bổ xác suất của các từ

T ẬP DỮ LIỆU V I HSD

Tập dữ liệu ViHSD, được xây dựng và công bố bởi tác giả Son T Luu và đồng nghiệp vào năm 2021, nhằm giải quyết vấn đề phát ngôn thù ghét trên mạng xã hội tiếng Việt Nhóm nghiên cứu đã thu thập hơn 33,400 bình luận từ các trang Facebook và Youtube về các chủ đề như giải trí, người nổi tiếng, và các vấn đề xã hội, chính trị, với tiêu chí lựa chọn các trang có mức độ tương tác cao và không giới hạn bình luận Điều này giúp đảm bảo thu thập được nhiều ý kiến đa dạng từ người dùng Sau khi thu thập, các tên riêng đã được loại bỏ để bảo vệ tính ẩn danh cho người dùng.

Dữ liệu thu thập được sau đó được gán nhãn thành ba loại:

1 Clean: Nhãn này được dành cho các bình luận có nội dung bình luận hoặc trung lập, không chứa ngôn ngữ xúc phạm, thù địch hay mang tính phân biệt Đây là bình luận được viết với mục đích xây dựng, chia sẻ thông tin hoặc bày tỏ ý kiến một cách lịch sự và tôn trọng

2 Offensive: Đây là các bình luận được gán nhãn mang tính xúc phạm, có nội dung thô lỗ, không tôn trọng Các bình luận không nhất thiết mang tính thù địch (Hate) hoặc phân biệt nhưng chúng vẫn gây ra khó chịu hoặc phẫn nộ Thường là các câu chửi thề, thể hiện cảm xúc tiêu cực của bản thân nhưng không nhắm đến một cá nhân, tổ chức cụ thể

3 Hate: Đây là các bình luận mang tính thù địch, những nội dung mang tính cực đoan, phân biệt đối xử Thường nhắm vào một nhóm người, tổ chức hoặc cá nhân dựa trên các đặc điểm như chủng tộc, giới tính, tôn giáo, khuynh hướng tình dục… Và có thể kích động bạo lực hoặc sự căm ghét Quá trình gán nhãn gồm hai giai đoạn chính: huấn luyện và gán nhãn Trong giai đoạn huấn luyện, những người gán nhãn được đào tạo kỹ lưỡng và được cung cấp hướng dẫn chi tiết, cách nhận diện và phân loại các bình luận Độ đồng thuận giữa các người gán nhãn được đo lường bằng chỉ số Cohen Kappa để đảm bảo chất lượng và độ tin cậy của dữ liệu nếu độ đồng thuận không đạt yêu cầu, quá trình đào tạo sẽ được thực hiện lại và hướng dẫn gán nhãn được cập nhật

Kết quả cuối cùng là một tập dữ liệu lớn và chi tiết, với các bình luận được phân loại rõ ràng và chính xác Tập dữ liệu này được chia thành ba phần theo tỷ lệ 7-1-2, bao gồm tập huấn luyện (train), tập phát triển (dev) và tập kiểm tra (test).

Tỉ lệ giữa các nhãn Clean, Offensive, Hate được thể hiện trong hình sau:

Hình 2.7: Biểu đồ tập dữ liệu ViHSD

Tập dữ liệu gặp phải hạn chế về sự mất cân bằng, do sự phân phối tự nhiên của các bình luận Cụ thể, các bình luận "Clean" thường xuất hiện nhiều hơn so với hai nhãn còn lại, dẫn đến việc phần lớn dữ liệu thu thập được là các bình luận "Clean", trong khi các bình luận "Hate" và "Offensive" chỉ chiếm một phần nhỏ Sự mất cân bằng này ảnh hưởng đến hiệu suất dự đoán, khiến các nhãn có ít dữ liệu gặp khó khăn trong việc dự đoán chính xác, trong khi các nhãn có nhiều dữ liệu hơn được dự đoán tốt hơn Do đó, cần thiết phải áp dụng các phương pháp để giải quyết vấn đề mất cân bằng dữ liệu này.

X Ử LÝ DỮ LIỆU

2.4.1 Tiền xử lý dữ liệu:

Tiền xử lý dữ liệu là giai đoạn quan trọng trong phân tích ngôn ngữ tự nhiên, bao gồm việc làm sạch văn bản và loại bỏ thông tin không cần thiết Quá trình này giúp chuẩn hóa dữ liệu, tối ưu hóa hiệu suất mô hình và cải thiện khả năng học các đặc trưng Tuy nhiên, không phải tất cả phương pháp tiền xử lý đều mang lại lợi ích, và việc áp dụng quá nhiều kỹ thuật có thể dẫn đến mất thông tin quan trọng Do đó, cần cân nhắc và thử nghiệm các phương pháp phù hợp với từng bài toán và dữ liệu cụ thể.

Tách từ (tokenize) là phương pháp tiền xử lý quan trọng, cần thiết cho dữ liệu ở mọi ngôn ngữ Quá trình này chia đoạn văn bản thành các đơn vị nhỏ hơn như từ, cụm từ hoặc ký tự, với mỗi đơn vị được gọi là “token”.

Ví dụ: “Chúng ta hãy cùng nhau học tập và tiến bộ” sẽ được tách thành: [“Chúng_ta”, “hãy”, “cùng”, “nhau”, “học_tập”, “và”, “tiến_bộ”]

Trong quá trình xử lý văn bản, việc tách từ và cụm từ dựa trên dấu cách là rất quan trọng Mỗi từ được tách ra đóng vai trò là một đơn vị ngữ cảnh, thể hiện một khái niệm hoặc ý nghĩa riêng Nếu không thực hiện bước tách từ, mô hình có thể hiểu sai các cụm từ, ví dụ như “Chúng ta” có thể bị nhầm lẫn thành “Chúng” và “ta” đại diện cho các đối tượng khác nhau Do đó, tách từ là bước cần thiết trước khi đưa dữ liệu vào mô hình huấn luyện.

Hiện nay, Việt Nam có nhiều thư viện và công cụ phổ biến cho việc tách từ trong tiếng Việt Trong bài viết này, tôi sẽ sử dụng công cụ VNCoreNLP, được phát triển bởi nhóm nghiên cứu ngôn ngữ tự nhiên tại Trường Đại Học Khoa học Tự Nhiên VNCoreNLP không chỉ hỗ trợ tách từ mà còn cung cấp nhiều chức năng xử lý ngôn ngữ tự nhiên khác như phân loại từ loại và gán nhãn cú pháp.

2.4.2.1 Tăng cường dữ liệu với phương pháp EDA (Easy data augmentation):

EDA (Easy Data Augmentation) là một phương pháp tăng cường dữ liệu hiệu quả và dễ áp dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên Được giới thiệu bởi Jason Wei và Kai Zou, EDA sử dụng bốn kỹ thuật đơn giản để cải thiện chất lượng dữ liệu.

1 Thay thế từ đồng nghĩa ( Synosym Replacement – SR): Thay thế ngẫu nhiên n từ trong câu không phải là từ dừng (stop word) bằng các từ đồng nghĩa của chúng

2 Chèn từ ngẫu nhiên ( Random Insertion – RI): Chọn ngẫu nhiên n từ mà không phải từ dừng và chèn vào câu từ đồng nghĩa của chúng ở vị trí ngẫu nhiên trong câu

3 Hoán đổi ngẫu nhiên ( Random Swap – RS): Chọn ngẫu nhiên 2 từ trong cầu và hoán đổi vị trí Thao tác thực hiện n lần

4 Xóa ngẫu nhiên (Random Deletion – RD): Chọn ngẫu nhiên n từ và xóa từ đó trong câu

Các kỹ thuật này nhằm đơn giản hóa quá trình tăng cường dữ liệu mà không tốn nhiều công sức và tài nguyên Mục tiêu chính là nâng cao hiệu suất của các mô hình học máy trong các nhiệm vụ phân loại văn bản, đặc biệt khi dữ liệu hạn chế hoặc không cân bằng Mỗi câu được tăng cường sẽ được chọn ngẫu nhiên từ 4 kỹ thuật khác nhau, đảm bảo tính đa dạng cho câu.

Phương pháp sử dụng từ đồng nghĩa trong bài viết này dựa trên Wordnet-Vi, một cơ sở dữ liệu ngôn ngữ hỗ trợ tiếng Việt Wordnet cung cấp từ điển và các từ đồng nghĩa nhưng không xét đến ngữ cảnh, điều này có thể làm mất đi ý nghĩa ban đầu của câu Việc áp dụng phương pháp EDA với các từ đồng nghĩa từ Wordnet, cùng với các phương pháp như chèn từ, hoán đổi hoặc xóa từ ngẫu nhiên, có thể làm thay đổi cấu trúc câu Đặc biệt, trong phân loại bình luận công kích, những từ hiếm hoặc từ chửi thề không có trong từ điển Wordnet có thể không được thay thế, dẫn đến việc thiếu sót trong việc hiểu ý nghĩa câu.

EDA đã được kiểm nghiệm trên nhiều tập dữ liệu và chứng minh khả năng cải thiện hiệu suất của các mô hình phân loại, đặc biệt là CNN và RNN Tác giả so sánh phương pháp này với các kích thước dữ liệu khác nhau, cụ thể là N = {500, 2000, 5000}, và nhận thấy kết quả tốt nhất ở N = 500, trong khi hiệu suất giảm dần khi N tăng lên 5000 Ngoài ra, tác giả cũng đề xuất các cài đặt tham số tối ưu cho từng kích thước dữ liệu để đạt hiệu quả tốt nhất.

Bảng 2.1: Đề xuất của tác giả với phương pháp EDA [11]

• Ntrain là số lượng mẫu trong tập dữ liệu gốc Ví dụ trong tập dữ liệu ViHSD có 1606 bình luận Offensive thì NtrainOffensive = 1606

Tỉ lệ α là yếu tố quyết định mức độ thay đổi của mỗi câu, thường được chọn trong khoảng từ 0.05 đến 2 để đảm bảo cấu trúc câu không bị biến đổi quá mức Ví dụ, với α = 0.1, có thể áp dụng 4 kỹ thuật như SR và RI để điều chỉnh nội dung một cách hiệu quả.

RS, RD sẽ được áp dụng đồng thời với tỉ lệ thay đổi 10% số lượng từ trong câu

Naug là tham số xác định số lượng câu mới được tạo ra từ mỗi câu gốc, cho phép tạo ra nhiều biến thể cho mỗi câu ban đầu Chẳng hạn, nếu Naug = 8, mỗi câu trong tập dữ liệu sẽ được biến đổi thành 8 câu mới, do đó tăng tổng số mẫu dữ liệu lên gấp 8 lần.

Khi áp dụng phương pháp EDA để tăng cường dữ liệu, tôi cũng chú ý đến việc xem xét các từ đồng nghĩa và tạo ra những câu mới Tuy nhiên, phương pháp này cũng gặp một số hạn chế nhất định.

• Tìm từ đồng nghĩa không hợp lý: đi -> đi tù, mẹ -> sinh vật mẹ, ngân nga -

> rú, miệng -> cửa… Lý do cho việc này là vì Wordnet phiên bản tiếng Việt (Wordnet-Vi) được xây dựng bằng dịch tự động từ Wordnet tiếng Anh

Nghiên cứu chỉ ra rằng tỷ lệ từ trong Wordnet tiếng Việt chỉ đạt 43,09% so với tổng số từ trong từ điển tiếng Việt, cho thấy Wordnet-Vi chưa bao quát hết các từ vựng của tiếng Việt Trong thực nghiệm, nhiều từ không có danh sách từ đồng nghĩa tương ứng, dẫn đến việc chỉ một vài từ trong câu có danh sách đồng nghĩa, khiến cho một từ có thể phải được thay thế nhiều lần do các từ khác không có danh sách đồng nghĩa.

Wordnet-Vi chỉ cung cấp 1-3 từ đồng nghĩa cho mỗi từ, nhưng các từ đồng nghĩa thứ hai và thứ ba thường không chính xác hoặc thậm chí sai lệch nghĩa Điều này đặc biệt rõ ràng trong các câu ngắn, nơi một từ có thể được thay thế nhiều lần bằng các từ đồng nghĩa khác Sự thiếu chính xác trong danh sách đồng nghĩa, cùng với việc từ điển Wordnet-Vi chưa đầy đủ, dẫn đến tình trạng sử dụng từ đồng nghĩa không chính xác.

Việc sử dụng từ đồng nghĩa không chính xác có thể làm mất đi tính chính xác và thay đổi ý nghĩa của câu Chẳng hạn, câu "Anh ta theo đạo và hay đến đây" có thể bị hiểu sai thành "Anh ta ăn cắp và hay đến đây" khi từ "đạo" được thay thế bằng "ăn cắp" Sự thay đổi này làm cho câu trở nên xúc phạm thay vì trung lập Tương tự, câu "Tên này trông ngu vậy" khi thay đổi thành "Tên này trông tối tăm vậy" cũng làm giảm mức độ tiêu cực của câu, vì "tối tăm" chỉ đề cập đến trạng thái tinh thần, trong khi "ngu" mang tính xúc phạm rõ ràng hơn.

P HƯƠNG PHÁP ĐÁNH GIÁ

Độ chính xác là một trong những chỉ số đơn giản và phổ biến nhất để đánh giá hiệu quả của mô hình phân loại Chỉ số này được tính bằng tỷ lệ phần trăm số dự đoán đúng so với tổng số dự đoán Công thức tính độ chính xác như sau:

Tổng số dự đoán = TP + TN

TP + TN + FP + FN (2.3) Trong đó:

• TP (True Positives): Số lượng mẫu thực sự dương và được dự đoán là dương

• TN (True Negatives): Số lượng mẫu thực sự âm và được dự đoán là âm

• FP (False Positives): Số lượng mẫu thực sự âm nhưng được dự đoán là dương

• FN (False Negatives): Số lượng mẫu thực sự dương nhưng được đoán là âm

F1-Score là một chỉ số phổ biến, kết hợp giữa Precision và Recall, được sử dụng để đánh giá sự cân bằng giữa độ chính xác và khả năng tìm kiếm của mô hình Chỉ số này đặc biệt hữu ích trong các tình huống dữ liệu không cân bằng.

• Precision (độ chính xác): Tỷ lệ mẫu được dự đoán là dương thực sự là dương

• Recall (độ nhạy): Tỷ lệ mẫu thực sự dương được mô hình dự đoán đúng

Trong nghiên cứu này, tập dữ liệu ViHSD gặp vấn đề mất cân bằng, khiến chỉ số F1-Score trở nên quan trọng hơn so với Accuracy F1-Score không bị ảnh hưởng bởi sự phân bố không đồng đều của các lớp, trong khi Accuracy có thể cao nhưng không phản ánh đúng hiệu quả của mô hình Số lượng câu nhãn Clean vượt trội so với hai nhãn còn lại dẫn đến việc mô hình dự đoán chính xác nhiều nhãn Clean hơn, làm tăng Accuracy nhưng giảm F1-Score do khả năng nhận diện kém các nhãn ít dữ liệu Vì vậy, tôi tập trung vào F1-Score để đánh giá khả năng phân loại các nhãn có ít dữ liệu hơn.

2.5.2 Hàm mất mát (Loss Function):

Hàm mất mát là công cụ quan trọng để đánh giá độ chính xác giữa nhãn dự đoán và nhãn thực tế, được sử dụng trong quá trình huấn luyện để kiểm tra hiệu suất mô hình trên tập dữ liệu validation Thông qua chỉ số này, chúng ta có thể điều chỉnh tham số của mô hình, giúp phát hiện tình trạng học quá kỹ (Overfitting) hoặc không học đủ (Underfitting) Trong nghiên cứu này, tôi áp dụng hàm mất mát Categorical Cross-Entropy Loss, một trong những hàm phổ biến nhất cho bài toán phân loại đa lớp.

Hàm mất mát Categorical Crosss Entropy Loss được tính như sau [18]:

• yij: Nhãn thực tế cho lớp j của mẫu i

• ŷij: Xác suất dự đoán cho lớp j của mẫu i

Ma trận nhầm lẫn (Confusion Matrix) là công cụ quan trọng để đánh giá hiệu quả của các mô hình phân loại Nó giúp chúng ta hiểu rõ hơn về cách mà mô hình phân loại các mẫu dữ liệu và các lớp khác nhau, bao gồm cả số lượng dự đoán đúng và sai Ma trận này cung cấp cái nhìn chi tiết về hiệu suất của mô hình, hỗ trợ trong việc cải thiện độ chính xác trong các dự đoán.

Dự đoán: Positive Dự đoán: Negative

Thực tế: Positive TP FN

Trong nhiều bài toán phân loại đa nhãn, việc cải thiện hiệu suất mô hình có thể làm tăng Accuracy và F1-Score, nhưng không đảm bảo rằng tất cả các nhãn đều được dự đoán chính xác hơn Một số nhãn có thể bị giảm độ chính xác trong khi các nhãn khác lại được dự đoán đúng nhiều hơn Thông qua ma trận nhầm lẫn, tôi có thể đánh giá chi tiết số lượng nhãn mà mô hình dự đoán chính xác Sau khi áp dụng dữ liệu tăng cường, tôi có thể phân tích và xem xét cách mà mô hình học từ dữ liệu tăng cường và cải thiện độ chính xác của các nhãn.

PHƯƠNG PHÁP THỰC HIỆN PHÂN TÍCH THIẾT KẾ

T IỀN XỬ LÝ DỮ LIỆU

Tôi thực hiện các bước tiền xử lý lần lượt như sau:

Loại bỏ stop words là quá trình loại bỏ các từ phổ biến như “và”, “là”, “của” không mang ý nghĩa quan trọng trong câu Các từ stop-word được xác định từ một từ điển chứa các stopword.

• Lowercase: Chuyển đổi các từ viết hoa thành viết thường

• Thay thế các chuỗi như số tiền ($, đồng), hashtag (#), đường link (www, https ) bằng các từ thay thế như “số_tiền”, “hashtag”, “website”

• Thay thế các dấu gạch dưới “_”, “/” bằng dấu gạch trắng (“xin_chào” sẽ được thay thành “xin chào”)

• Loại bỏ các từ kéo dài bằng cách loại bỏ các ký tự lặp lại liên tiếp trong một từ (“xin chàoooooooooo” sẽ được thay thành “xin chào”)

• Loại bỏ các icon: Toàn bộ icon sẽ bị xóa bỏ

• Chuẩn hóa cách gõ dấu về cùng một chuẩn gõ dấu (oà thành òa)

• Chuẩn hóa Unicode: Chuẩn hóa văn bản về một loại Unicode

Xóa bỏ các dấu câu không hợp lý trong bình luận giúp nội dung trở nên rõ ràng và dễ hiểu hơn Việc loại bỏ các dấu câu như dấu phẩy, dấu chấm và dấu hỏi sẽ tạo ra một cách trình bày mạch lạc và tuân thủ quy tắc ngữ pháp.

• Tách từ: Thư viện VNCoreNLP được sử dụng để thực hiện tách từ, đây là bước tiền xử lý quan trọng nhất.

T HIẾT KẾ MÔ HÌNH

Mô hình CNN chỉ nhận đầu vào là các vector từ hoặc ma trận biểu diễn từ (word embeddings) của các câu Để thực hiện nhúng từ, tôi sử dụng mô hình Word2Vec, một phương pháp giúp biểu diễn từng từ trong văn bản dưới dạng vector số có kích thước cố định Đối với mô hình CNN, tôi đã xây dựng lại mô hình này bằng cách sử dụng TensorFlow Keras API với câu lệnh "from keras.layers import Input, Dense".

Embedding, Conv2D, MaxPool2D” để định nghĩa các lớp, sau đó cài đặt các lớp bằng thủ công Mô hình bao gồm các lớp sau:

• Input: Lớp này định nghĩa đầu vào của mô hình, có kích thước (sequence_length), tức là mỗi câu có độ dài sequence_length

Lớp Embedding chuyển đổi từ trong câu thành các vectơ nhúng có kích thước embedding_dim Đầu vào của lớp này là các chỉ số từ trong từ điển (input_dim=num_words), và đầu ra là các vectơ nhúng tương ứng với từng từ trong câu.

The Conv2D layer performs 2D convolution on inputs reshaped from the Embedding layer Each Conv2D layer consists of num_filters filters (kernels) with dimensions of (filter_sizes[i], embedding_dim), where i represents the kernel index The output of each Conv2D layer is a tensor sized (sequence_length - filter_sizes[i] + 1, 1, num_filters).

MaxPool2D là lớp thực hiện phép pooling cho các feature maps được tạo ra từ lớp Conv2D Phép pooling này chọn giá trị lớn nhất từ mỗi cửa sổ có kích thước (sequence_length - filter_sizes[i] + 1, 1) Kết quả đầu ra của lớp MaxPool2D là một tensor có kích thước (1, 1, num_filters), trong đó mỗi kênh tương ứng với giá trị lớn nhất được chọn từ mỗi feature map.

The fully connected layer classifies the output from the Dropout layer into corresponding output classes, utilizing three target classes with a softmax activation function.

Sau khi hoàn thành việc xây dựng các lớp cho mô hình CNN, tôi tiến hành tiền xử lý dữ liệu và đưa dữ liệu vào mô hình để tiến hành huấn luyện Hình ảnh dưới đây minh họa cách thức hoạt động của mô hình CNN.

Hình 3.1 : Thiết kế mô hình CNN

Mô hình CNN trong nghiên cứu này sử dụng các bộ lọc có kích thước lần lượt là 1, 2, 3 và 5, nhằm trích xuất đặc trưng từ dữ liệu đầu vào Mỗi kích thước bộ lọc đại diện cho cách di chuyển qua dữ liệu để tạo ra các đặc trưng khác nhau, với mỗi kích thước có 32 bộ lọc Việc áp dụng nhiều bộ lọc giúp mô hình học các đặc trưng từ nhiều tỷ lệ và phạm vi khác nhau, đồng thời đa dạng hóa quá trình học và chia sẻ thông tin giữa các bộ lọc, từ đó nâng cao khả năng học của mô hình Các tham số đã được tối ưu hóa cho tập dữ liệu ViHSD.

3.2.2 Pre-trained model: Đối với các mô hình pre-trained model như BERT, PhoBERT thì quá trình xây dựng mô hình đơn giản và nhanh hơn mô hình CNN bằng việc sử dụng thư viện

“Hugging Face” để lấy hai mô hình BERT và PhoBERT về Đối với BERT, PhoBERT đều có 2 phiên bản:

• Base: Phiên bản này có 12 lớp Transformer, kích thước hidden_size là

768, 12 heads attention có tổng cộng 110 triệu tham số

• Large: Phiên bản này có 24 lớp Transformer, kích thước hidden_size là

1024, 16 heads attention có tổng cộng 340 triệu tham số

Phiên bản Large thường có hiệu suất vượt trội hơn so với phiên bản Base, nhưng yêu cầu nhiều tài nguyên phần cứng hơn Vì hạn chế về phần cứng, tôi quyết định sử dụng phiên bản Base cho cả hai mô hình BERT và PhoBERT.

Sau khi tải mô hình từ thư viện, tôi tiến hành tiền xử lý và thiết lập các tham số cần thiết như learning_rate, batch_size và epoch trước khi đưa vào huấn luyện Việc sử dụng các mô hình pre-trained giúp đơn giản hóa và rút ngắn thời gian thiết kế so với việc xây dựng mô hình CNN từ đầu, vì hầu hết các lớp đã được cấu hình sẵn Nếu cần thay đổi, chỉ cần điều chỉnh các hyperparameter, nhưng thường không cần thay đổi nhiều ngoài các tham số ảnh hưởng đến quá trình training như learning_rate, epoch và batch_size, vì đây là các thiết lập tối ưu cho mô hình.

Hình 3.2: Thiết kế mô hình Pre-trained BERT, PhoBERT

Mô hình kết hợp giữa PhoBERT đã được huấn luyện trước và CNN được khởi tạo bằng cách tải từ thư viện Hugging Face Sau khi thiết lập PhoBERT, cấu hình mô hình CNN được thực hiện theo hướng dẫn 3.2.1 Cuối cùng, các tham số như embedding_dim được điều chỉnh để kết nối hai mô hình một cách hiệu quả.

1 Xây dựng lớp embedding bằng PhoBert để thực hiện word embedding cho dữ liệu đầu vào Ở mô hình đơn CNN, công việc word embedding do Word2Vec thực hiện thì ở mô hình này PhoBERT sẽ đảm nhận vai trò embedding để biểu diễn các câu đầu vào dưới dạng vector chứa ngữ cảnh

2 Xây dựng các lớp CNN (Convolutional layer) để trích xuất đặc trưng từ các vector embedding của PhoBERT Các lớp convolutional này sẽ quét qua các đặc trưng embedding để tạo ra các đặc trưng mới

3 Sử dụng các lớp MaxPooling layer để giảm kích thước đặc trưng đầu ra từ lớp convolutional sau đó lấy giá trị lớn nhất của các đặc trưng vừa trích xuất

4 Sau đó đưa các đặc trưng ở bước 3 vào các lớp fully connected để phân loại

Hình 3.3: Thiết kế mô hình PhoBERT-CNN

T ĂNG CƯỜNG DỮ LIỆU

3.3.1 Tăng cường dữ liệu với phương pháp EDA:

Sau đây là thuật toán của phương pháp EDA:

Input: Training Dataset Dtrain, numaug, α, Wordnet-Vi Database, Stopword-Vi dictionary

Output: Data augmendation with EDA

1 Initalize Daug, Dsentence as an emty dataset

2 For each sentence in Dtrain do: a Calculate the number of word changes in each sentence by multiplying α by the number of words in each sentence, the result is n b Calculate the number of times each technique is performed (naug/4)+1, the result is ntech c Randomly select n words in a sentence, don’t select words in Stopword-

To enhance the Vi dictionary, follow these steps: First, find synonyms for selected words using the Wordnet-Vi database and replace the original words, then add the results to the dataset (Daug) Next, randomly insert synonyms into various positions within the sentences and include these variations in Daug After that, randomly swap two words in each sentence multiple times and add the modified sentences to Daug For each word in a sentence, generate a random number between 0 and 1; if this number is less than or equal to α, delete the word, and add the resulting sentences to Daug Repeat the synonym replacement, random insertion, word swapping, and deletion processes for a specified number of iterations (ntech) Once completed, shuffle Daug and eliminate any duplicate sentences Finally, randomly select a specified number of sentences (naug) from Daug and remove the rest.

3 Return the augmented dataset by adding Dtrain and Daug.

Mã nguồn phương pháp EDA được lấy từ trang Github của tác giả [11]

Sau khi tiếp nhận dữ liệu, tôi đã thay thế từ điển stop-word tiếng Anh bằng phiên bản tiếng Việt để đảm bảo các kỹ thuật của phương pháp EDA không làm biến đổi các từ không mang ý nghĩa, tập trung vào các từ đặc trưng trong câu Đối với kỹ thuật thay thế từ đồng nghĩa, tôi cũng đã chuyển đổi từ điển Wordnet từ tiếng Anh sang tiếng Việt Sau khi cập nhật các bộ từ điển cần thiết, tôi tiến hành tiền xử lý dữ liệu và thiết lập các tham số α và naug để tạo ra dữ liệu tăng cường mới Tiếp theo, các hàm sẽ thực hiện biến đổi từ dựa trên 4 kỹ thuật đã trình bày trong Algorithm 1 Dưới đây là ví dụ về cách hoạt động của EDA với tập dữ liệu, với α 0.1 (biến đổi 10% số từ trong câu).

Bảng 3.1: Ví dụ về cách hoạt động của EDA

Original Sau ông này khỏi bệnh nên cho đi khám não

SR Sau ông này khỏi bệnh nên cho đi khám óc

RI Sau ông này chữa khỏi bệnh nên cho đi khám não

RS Sau não này khỏi bệnh nên cho đi khám ông

RD Sau ông này khỏi nên cho đi khám não

Trong nghiên cứu sử dụng tập dữ liệu ViHSD, số lượng nhãn Hate (Nhate) là 1606 và nhãn Offensive (Noffensive) là 2556 Tôi đã chọn tham số với α=0.05 và naug=8 theo đề xuất của tác giả Tác giả cũng đã chỉ ra rằng các tham số này ảnh hưởng đến hiệu suất của tập dữ liệu tăng cường.

Hình 3.4 cho thấy ảnh hưởng của tham số naug và α đến hiệu suất mô hình Khi số lượng dữ liệu thấp, phương pháp EDA tỏ ra hiệu quả hơn, với NP0 cho hiệu suất tối ưu tại naug = 16 và α = 0.1 Đối với tập dữ liệu ViHSD, NClean = 19886 là quá lớn so với đề xuất, do đó không cần tăng cường Các nhãn còn lại Noffensive = 1606 và Nhate%56 đạt hiệu suất tốt nhất với α = 0.05 và naug = 8 Việc lựa chọn tham số rất quan trọng, vì nếu chọn tham số quá lớn, dữ liệu tăng cường có thể mất cấu trúc và ý nghĩa, trong khi tham số quá nhỏ lại dẫn đến việc mô hình học quá khớp, giảm hiệu quả dữ liệu tăng cường.

Kết quả sau khi tăng cường dữ liệu với phương pháp EDA như sau:

Hình 3.5 : Kết quả tăng cường dữ liệu với EDA

Sau khi áp dụng phương pháp EDA trên tập dữ liệu gốc, số lượng câu ở nhãn Offensive và Hate đã tăng gần gấp 8 lần (naug=8) nhờ vào việc loại bỏ nhiều câu trùng lặp Dữ liệu sau khi tăng cường được phân bố đều hơn so với tập dữ liệu gốc, giúp giảm thiểu hiện tượng mất cân bằng dữ liệu.

3.3.2 Tăng cường dữ liệu với PhoBERT:

Sau đây là thuật toán của phương pháp tăng cường dữ liệu với PhoBERT:

Algorithm 2: Data augmendation with pre-trained model

Input: Training Dataset Dtrain, Pretrained model PhoBERT, probability p

Output: Data augmendation with phoBERT

1 Initalize Daug as an empty dataset

2 Select pipeline “Masked” from pretrained model PhoBERT

3 Fine-tuning PhoBERT with Dtrain

4 For each s in Dtrain do: a Calculate the masked word by multiplying p by the number of words in the sentence, the result is n b Masked n words in the sentence then fed into the PhoBERT model c PhoBERT performs masked word prediction based on the context of the sentence d Add the result to Daug

5 Return the augmented dataset by adding Dtrain and Daug.

Để tăng cường dữ liệu bằng phương pháp PhoBERT, tôi đã sử dụng mô hình từ Hugging Face và thiết lập pipeline “fill-mask” nhằm thực hiện tác vụ dự đoán từ bị ẩn.

Tôi đã thực hiện fine-tuning PhoBERT với tập dữ liệu ViHSD Tiếp theo, tôi xây dựng một hàm để che ngẫu nhiên từ 20%-40% trong câu và đưa vào PhoBERT để dự đoán Sau đó, tôi so sánh các tỉ lệ che từ để tìm ra tỉ lệ mang lại kết quả tốt nhất Cuối cùng, sau khi mô hình dự đoán các từ bị che, tôi thu được tập dữ liệu tăng cường với PhoBERT.

Hình sau mô tả cách PhoBERT tăng cường dữ liệu:

Hình 3.6: Mô tả cách PhoBERT tăng cường dữ liệu

PhoBERT cải tiến dữ liệu cho tập ViHSD bằng cách masked một từ không phải Stop-word trong mỗi câu Sau đó, mô hình PhoBERT sẽ xác định từ phù hợp nhất trong ngữ cảnh, như “Món quà”, “Anh chàng” hay “Bộ phim” Từ masked sẽ được thay thế bằng các từ đã tìm được, tạo ra những câu mới từ câu gốc Tôi cũng thiết lập tỉ lệ từ bị masked từ 10-40% để tạo ra nhiều câu mới đa dạng hơn, với tỉ lệ càng cao thì số lượng từ trong câu được masked càng nhiều.

Trong ví dụ trên, có thể thêm từ “thú vị” và đồng thời thay thế hai từ masked, nhằm tránh lặp lại ngữ cảnh quá nhiều với câu gốc.

Tôi thực hiện 2 cách để tăng cường ra 2 bộ dữ liệu như sau:

1 Tăng cường gấp đôi dữ liệu ( PhoBERT-aug): tôi thực hiện tăng cường dữ liệu mới với tỉ lệ 1 câu gốc sẽ tạo ra 1 câu mới, bằng cách này tập dữ liệu tăng cường có kích thước gấp đôi dữ liệu gốc Tỉ lệ từ thay đổi là 10% số từ của câu Tôi cũng thực hiện thay đổi 10-40% để so sánh và thấy rằng với 10% thì mô hình đạt điểm F1-Score và Accuracy cao nhất Việc này giữ cho dữ liệu được mở rộng nhưng vẫn giữ được sự tương đồng với câu gốc, tuy nhiên, dữ liệu tăng cường này không đa dạng và không giải quyết được vấn đề mất cân bằng của tập dữ liệu

2 Tăng cường các nhãn bị mất cân bằng dữ liệu(PhoBERT-FI):tôi thực hiện tăng cường dữ liệu ở các nhãn bị mất cân bằng là offensive và hate Từ 1 câu gốc sẽ tạo ra nhiều câu tăng cường mới Tỉ lệ từ thay đổi là 10-40% số từ của câu và các từ được Masked sẽ không được Masked lại, các câu dài sẽ được tạo nhiều câu hơn và các câu ngắn sẽ tạo ít hơn Việc này giúp những câu mới đa dạng hơn, tránh việc Masked một từ nhiều lần sẽ dẫn đến câu mới giống với câu cũ

Kết quả tăng cường dữ liệu bằng PhoBERT cho thấy rằng phương pháp PhoBERT Aug đã làm tăng gần gấp đôi dữ liệu sau khi loại bỏ các câu trùng lặp Mặc dù kích thước dữ liệu tăng đều ở cả ba nhãn, nhưng phương pháp này lại dẫn đến việc mất cân bằng nghiêm trọng trong dữ liệu.

Việc tăng cường dữ liệu cho các nhãn bị mất cân bằng là rất quan trọng Trong phương pháp thứ hai, số lượng các nhãn này được tăng lên gần gấp ba lần so với dữ liệu gốc Điều này giúp cải thiện đáng kể sự chênh lệch giữa các nhãn, mang lại hiệu quả tốt hơn cho quá trình phân tích dữ liệu.

T HIẾT LẬP SIÊU THAM SỐ (H YPER P ARAMETER )

3.4.1 Kỹ thuật xác định siêu tham số tối ưu:

Grid Search là một phương pháp hiệu quả để tối ưu hóa siêu tham số cho mô hình học máy Kỹ thuật này bao gồm việc xác định một tập hợp các giá trị cho từng siêu tham số và kiểm tra tất cả các tổ hợp của chúng Mục tiêu chính là tìm ra tổ hợp siêu tham số tối ưu, giúp cải thiện hiệu suất mô hình trên tập dữ liệu.

Mô hình CNN và PhoBERT-CNN được thiết lập với kích thước filter [1,2,3,5] và num_filter = 32, batch_size = 256, learning rate = 3e-5

PhoBERT và BERT được thiết lập với learning rate = 3e-5 và batch_size = 64.

S Ơ ĐỒ KHỐI

Dữ liệu được chia thành ba tập: Train để huấn luyện và tăng cường dữ liệu, Valid để kiểm tra trong quá trình huấn luyện, và Test để đánh giá hiệu suất Tất cả các tập dữ liệu đều trải qua bước tiền xử lý trước khi đưa vào huấn luyện Trong quá trình huấn luyện, tập Valid được sử dụng để theo dõi hiệu suất qua từng epoch nhằm tinh chỉnh mô hình Cuối cùng, hiệu suất được đánh giá trên tập Test data sau khi hoàn tất quá trình huấn luyện.

Ngày đăng: 19/12/2024, 12:05

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Arlin Cuncic, MA, “Mental Health Effects of Reading Negative Comments Online”. https://www.verywellmind.com/mental-health-effects-of-reading-negative-comments-online-5090287, 2022 Sách, tạp chí
Tiêu đề: Mental Health Effects of Reading Negative Comments Online
[2] Việt Báo, “Việt Nam vào top 5 nước kém văn minh Internet nhất thế giới”, https://vietbao.vn/viet-nam-vao-top-5-nuoc-kem-van-minh-internet-nhat-the-gioi-383829.html, 2022 Sách, tạp chí
Tiêu đề: Việt Nam vào top 5 nước kém văn minh Internet nhất thế giới
[3] Son T. Luu, Hung P. Nguyen, Kiet Van Nguyen, Ngan Luu – Thuy Nguyen. “Comparison Between Traditional Machine Learning Models And Neural Network Models For Vietnamese hate Speech Detection”, arXiv preprint arXiv:2002.00759, 2020 Sách, tạp chí
Tiêu đề: Comparison Between Traditional Machine Learning Models And Neural Network Models For Vietnamese hate Speech Detection
[4] Santiago González-Carvajal, Eduardo C. Garrido-Merchán, “Comparing BERT against traditional machine learning text clssification” arXiv preprint arXiv:2002.00759, 2021 Sách, tạp chí
Tiêu đề: Comparing BERT against traditional machine learning text clssification
[5] Yoon Kim, “Convolutional Neural Networks for Sentence Classification”, arXiv preprint arXiv:1408.5882, 2014 Sách, tạp chí
Tiêu đề: Convolutional Neural Networks for Sentence Classification
[6] Ashish Vaswani và cộng sự, “Attention Is All You Need”, arXiv preprint arXiv:1706.03762, 2017 Sách, tạp chí
Tiêu đề: Attention Is All You Need
[7] Dat Quoc Nguyen and Anh Tuan Nguyen, “PhoBERT: Pre-trained language models for Vietnamese”, arXiv preprintarXiv:2003.00744, 2020 Sách, tạp chí
Tiêu đề: PhoBERT: Pre-trained language models for Vietnamese
[8] Ali Safaya, Moutasem Abdullatif, Deniz Yuret, “KUISAIL at SemEval-2020 Task 12: BERT-CNN for Offensive Speech Identification in Social Media”, arXiv preprint arXiv:2007.13184, 2020 Sách, tạp chí
Tiêu đề: KUISAIL at SemEval-2020 Task 12: BERT-CNN for Offensive Speech Identification in Social Media
[9] Khanh Q. Tran và cộng sự, “Vietnamese Hate and Offensive Detection using PhoBERT-CNN and Social Media Streaming Data”, arXiv preprint arXiv:2206.00524, 2022 Sách, tạp chí
Tiêu đề: Vietnamese Hate and Offensive Detection using PhoBERT-CNN and Social Media Streaming Data
[10] Son T. Luu, Kiet Van Nguyen, Ngan Luu – Thuy Nguyen, “A Large-scale Dataset for Hate Speech Detection on Vietnamese Social Media Texts”, arXiv preprint arXiv:2103.11528, 2021 Sách, tạp chí
Tiêu đề: A Large-scale Dataset for Hate Speech Detection on Vietnamese Social Media Texts
[11] Jason Wei, Kai Zou, “EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks”, arXiv preprint arXiv:1901.11196, 2019 Sách, tạp chí
Tiêu đề: EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
[12] Varun Kumar, Ashutosh Choudhary, Eunah Cho, “Data Augmentation using Pre-trained Transformer Models”, arXiv preprint arXiv:2003.02245, 2021 Sách, tạp chí
Tiêu đề: Data Augmentation using Pre-trained Transformer Models
[13] Wenfu Liu và cộng sự, “Research on Multi-label Text Classification Method Based on tALBERT-CNN”, Volume 14, article 201, 2021 Sách, tạp chí
Tiêu đề: Research on Multi-label Text Classification Method Based on tALBERT-CNN
[14] Jay Alammar, “The lllustrated Transformer”, https://jalammar.github.io/illustrated-transformer/, 2018 Sách, tạp chí
Tiêu đề: The lllustrated Transformer
[15] Thanh Vu và cộng sự, “VNCoreNLP: A Vietnamese Natural Language Processing Toolkit”, arXiv preprint arXiv:1801.01331, 2018 Sách, tạp chí
Tiêu đề: VNCoreNLP: A Vietnamese Natural Language Processing Toolkit
[16] Bui Quang Manh, “Nhận dạng tiếng Việt cùng với Transformer OCR”, https://viblo.asia/p/nhan-dang-tieng-viet-cung-voi-transformer-ocr-Qpmlejjm5rd#_32-positional-encoding-ma-hoa-vi-tri--4, 2020 Sách, tạp chí
Tiêu đề: Nhận dạng tiếng Việt cùng với Transformer OCR
[17] Trần Văn Tri, “Dịch tự động WordNet từ tiếng Anh sang tiếng Việt dựa vào từ điển Oxford Anh-Việt”, Luận văn thạc sĩ, Đại học Khoa học Tự nhiên - Đại học Quốc gia TP. HCM, 2017 Sách, tạp chí
Tiêu đề: Dịch tự động WordNet từ tiếng Anh sang tiếng Việt dựa vào từ điển Oxford Anh-Việt
[18] Shiksha Online, “Crosss Entropy Loss Function in Machine Learning”, https://www.shiksha.com/online-courses/articles/cross-entropy-loss-function/,2023 Sách, tạp chí
Tiêu đề: Crosss Entropy Loss Function in Machine Learning

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN