Chuyển đến nội dung chính

So sánh các mạng neuron trong phân tích cảm xúc văn bản

Hãy thử tưởng tượng bạn đang xây dựng một hệ thống tự động lọc bình luận của khách hàng trên một trang thương mại điện tử. Bạn gặp phải câu sau: "Sản phẩm này dùng cũng được, nhưng dịch vụ chăm sóc khách hàng quá tệ."

Đối với một người bình thường, chúng ta dễ dàng nhận ra đây là một đánh giá mang thiên hướng tiêu cực về mặt dịch vụ, dù có một chút khen ngợi nhẹ nhàng ở đầu câu. Nhưng làm thế nào một mô hình học máy có thể hiểu được sự chuyển biến tâm lý phức tạp này?

Trong bài toán phân tích cảm xúc văn bản (Sentiment Analysis), việc chọn lựa kiến trúc mạng neuron đóng vai trò quyết định đến độ chính xác và hiệu năng của hệ thống. Chúng ta sẽ cùng đi qua hành trình từ những mạng neuron đơn giản nhất cho đến các kiến trúc Transformer hiện đại, phân tích toán học đằng sau chúng và so sánh ưu nhược điểm của từng phương pháp.

Lịch sử tiến hóa của các kiến trúc xử lý ngôn ngữ

Để hiểu tại sao các mô hình hiện đại lại hoạt động theo cách của chúng, chúng ta cần nhìn lại cách mà các kiến trúc mạng neuron giải quyết các bài toán xử lý ngôn ngữ tự nhiên (NLP) theo thời gian. Sự thay đổi từ các mô hình tĩnh không có tính tuần tự đến các hệ thống tự chú ý (self-attention) đã định hình lại toàn bộ ngành AI.

Tiến trình tiến hóa của các kiến trúc mạng neuron trong NLPMạng truyền thẳng (FFNN) xử lý từ độclậpMạng tuần hoàn (RNN/LSTM) lưu vết ngữcảnh tuần tựMạng tích chập (CNN) trích xuất đặctrưng cụm từ cục bộCơ chế Attention loại bỏ tuần tự, tínhtoán song songTransformer (BERT/GPT) biểu diễn ngữcảnh hai chiều toàn cục
Tiến trình tiến hóa của các kiến trúc mạng neuron trong NLP

Mạng neuron truyền thẳng (FFNN) và giới hạn của Bag-of-Words

Trước khi có các kiến trúc phức tạp, mạng neuron truyền thẳng (Feedforward Neural Network - FFNN) kết hợp với biểu diễn văn bản dạng Bag-of-Words (BoW) hoặc TF-IDF là lựa chọn phổ biến.

Nguyên lý hoạt động

Văn bản đầu vào được chuyển đổi thành một vector tần suất từ có kích thước cố định V (với V là kích thước từ điển). Vector này được đưa trực tiếp qua các tầng ẩn (hidden layers) để dự báo phân loại cảm xúc:

y^=softmax(W2·ReLU(W1x+b1)+b2)

Trong đó: - x∈ℝV là vector biểu diễn văn bản. - W1,W2 và b1,b2 lần lượt là trọng số (weights) và độ lệch (biases) của các tầng mạng.

Điểm nghẽn về mặt ngữ cảnh

Phương pháp này hoàn toàn bỏ qua thứ tự của các từ. Hai câu văn dưới đây sẽ có biểu diễn vector x gần như giống hệt nhau trong mô hình BoW, mặc dù mang sắc thái cảm xúc hoàn toàn trái ngược: 1. "Món ăn này không ngon, nhưng phục vụ tốt." 2. "Món ăn này ngon, nhưng phục vụ không tốt."

Do không giữ được cấu trúc tuần tự và mối quan hệ ngữ cảnh giữa các từ kề nhau, FFNN tỏ ra rất yếu kém khi đối phó với các câu có cấu trúc phủ định hoặc đảo ngữ.

Mạng tuần hoàn (RNN) và kiến trúc LSTM/GRU: Nỗ lực lưu vết thời gian

Để khắc phục nhược điểm mất thông tin tuần tự, mạng neuron tuần hoàn (Recurrent Neural Network - RNN) ra đời với ý tưởng xử lý văn bản như một chuỗi thời gian (sequence).

Mạng tuần hoàn chuẩn (Vanilla RNN)

Mạng RNN xử lý từng từ xt tại bước thời gian t bằng cách duy trì một trạng thái ẩn (hidden state) ht đại diện cho toàn bộ ngữ cảnh đã đọc từ quá khứ:

ht=tanh(Whhht−1+Wxhxt+bh)

Tuy nhiên, khi chuỗi văn bản quá dài, việc nhân liên tiếp các ma trận trọng số trong quá trình lan truyền ngược (backpropagation) dẫn đến hiện tượng tiêu biến đạo hàm (vanishing gradient) hoặc bùng nổ đạo hàm (exploding gradient). Hệ quả là RNN không thể nhớ được thông tin ở xa đầu câu.

Kiến trúc LSTM (Long Short-Term Memory)

LSTM giải quyết triệt để vấn đề tiêu biến đạo hàm bằng cách giới thiệu cấu trúc ô (cell state) Ct được điều khiển bởi ba cổng (gates) logic:

  • Cổng quên (Forget gate) quyết định thông tin nào từ quá khứ cần loại bỏ:
ft=σ(Wf[ht−1,xt]+bf)
  • Cổng vào (Input gate) kiểm soát thông tin mới nào được nạp vào trạng thái ô:
it=σ(Wi[ht−1,xt]+bi)
C~t=tanh(Wc[ht−1,xt]+bc)
  • Cập nhật trạng thái ô:
Ct=ft⊙Ct−1+it⊙C~t
  • Cổng ra (Output gate) xác định giá trị trạng thái ẩn kế tiếp:
ot=σ(Wo[ht−1,xt]+bo)
ht=ot⊙tanh(Ct)

Trong đó σ là hàm kích hoạt sigmoid và ⊙ biểu diễn phép nhân Hadamard (nhân từng phần tử).

Nhờ cơ chế cộng tuyến tính trong quá trình cập nhật Ct, luồng đạo hàm có thể truyền ngược về quá khứ xa hơn mà không bị triệt tiêu hoàn toàn. Nhờ đó, LSTM nắm bắt cực tốt các phụ thuộc xa (long-range dependencies) trong câu văn dài.

Mạng neuron tích chập (CNN): Tiếp cận theo vùng không gian

Mặc dù thường được biết đến nhiều trong xử lý ảnh, mạng tích chập 1 chiều (1D-CNN) lại cực kỳ hiệu quả trong bài toán phân tích cảm xúc nhờ khả năng phát hiện các mẫu từ khóa cục bộ (n-grams).

Cách thức hoạt động trong NLP

Giả sử câu văn được biểu diễn bằng một ma trận từ điển liên kết các vector embedding của từ. Một cửa sổ lọc (filter) có kích thước k (tương đương với k-gram) sẽ trượt dọc theo chiều dài của câu để trích xuất các đặc trưng cục bộ:

ci=f(w·xi:i+k−1+b)

Sau đó, phép toán Max-over-time Pooling được áp dụng để lấy ra đặc trưng mạnh nhất trong toàn bộ câu:

c^=max{c1,c2,...,cn−k+1}

Cách tiếp cận này giúp CNN phát hiện cực nhanh các cụm từ mang tính định hướng cảm xúc cao như "rất tệ", "tuyệt vời", "không đáng tiền" bất kể chúng xuất hiện ở vị trí nào trong văn bản.

Kỷ nguyên Transformer: Sức mạnh của cơ chế Self-Attention

Mặc dù LSTM hoạt động tốt, nó lại vướng phải một giới hạn vật lý nghiêm trọng: Tính tuần tự. Bạn không thể tính toán trạng thái ẩn ht nếu chưa tính xong ht−1. Điều này khiến việc huấn luyện LSTM trên các tập dữ liệu khổng lồ trở nên rất chậm vì không tận dụng được tối đa sức mạnh tính toán song song của GPU.

Transformer loại bỏ hoàn toàn tính tuần tự này nhờ cơ chế Self-Attention (Tự chú ý). Thay vì duyệt qua từng từ, mô hình cho phép tất cả các từ trong câu tương tác trực tiếp với nhau cùng một lúc.

Công thức toán học của cơ chế Self-Attention

Với các ma trận Queries (Q), Keys (K) và Values (V) được biến đổi tuyến tính từ vector nhúng đầu vào:

Attention(Q,K,V)=softmax(QKTdk)V

Trong đó dk là số chiều của các vector keys, đóng vai trò như một nhân tố chuẩn hóa tránh việc số mũ của hàm softmax quá lớn.

Cơ chế này cho phép từ "tệ" ở cuối câu tự động liên kết mạnh mẽ với từ chỉ chủ thể "dịch vụ" ở đầu câu mà không gặp phải bất kỳ rào cản khoảng cách nào. Các mô hình dựa trên Transformer như BERT hay RoBERTa hiện đang giữ vị trí dẫn đầu về độ chính xác trong hầu hết các bộ dữ liệu phân tích cảm xúc hiện nay.

Minh họa code luồng xử lý dữ liệu qua LSTM trong PyTorch

Dưới đây là đoạn mã nguồn PyTorch minh họa cách một mạng LSTM nhận diện cảm xúc từ một chuỗi các chỉ số từ khóa (word indices):

import torch
import torch.nn as nn
class SentimentLSTM(nn.Module):
def __init__(self, vocab_size, embed_dim, hidden_dim, output_dim):
super().__init__()
# Tầng nhúng từ (Word Embedding)
self.embedding = nn.Embedding(vocab_size, embed_dim)
# Tầng LSTM
self.lstm = nn.LSTM(embed_dim, hidden_dim, batch_first=True)
# Tầng tuyến tính phân loại đầu ra
self.fc = nn.Linear(hidden_dim, output_dim)
def forward(self, text):
# text shape: [batch_size, seq_len]
        embedded = self.embedding(text)
# embedded shape: [batch_size, seq_len, embed_dim]
# Chỉ lấy hidden state của bước thời gian cuối cùng
        _, (hidden, _) = self.lstm(embedded)
# hidden shape: [1, batch_size, hidden_dim]

        output = self.fc(hidden.squeeze(0))
# output shape: [batch_size, output_dim]
return output

# Khởi tạo mô hình thử nghiệm
model = SentimentLSTM(vocab_size=1000, embed_dim=128, hidden_dim=64, output_dim=2)
print(model)

Bảng so sánh tổng quan các kiến trúc

Để có cái nhìn tổng thể khi đưa vào ứng dụng thực tế, dưới đây là bảng so sánh chi tiết các đặc tính cốt lõi của bốn nhóm kiến trúc chính:

Đặc tính so sánh FFNN (Bag-of-Words) RNN / LSTM / GRU CNN 1D Transformer (BERT/RoBERTa)
Khả năng nắm bắt ngữ cảnh tuần tự Rất kém (Bỏ qua hoàn toàn thứ tự từ) Tốt (Phụ thuộc vào khả năng nhớ của cổng) Trung bình (Chỉ nắm bắt trong phạm vi cửa sổ k-gram) Rất tốt (Toàn cục, không giới hạn khoảng cách)
Tốc độ huấn luyện Rất nhanh Chậm (Do cơ chế tuần tự từng bước) Nhanh (Tính toán song song trên cửa sổ trượt) Rất chậm khi train từ đầu, nhưng tối ưu tốt trên GPU nhờ song song hóa
Khả năng song song hóa Hoàn hảo Không thể song song hóa theo chiều thời gian Hoàn hảo Hoàn hảo
Tài nguyên phần cứng yêu cầu Thấp (Có thể chạy mượt trên CPU) Trung bình Thấp đến trung bình Rất cao (Yêu cầu GPU dung lượng VRAM lớn)
Độ phức tạp khi triển khai Rất đơn giản Trung bình Trung bình Cao (Cần quản lý tokenizers và cấu hình transformer phức tạp)
Độ chính xác tổng thể Kém Khá Khá tốt (Đặc biệt hiệu quả với văn bản ngắn) Xuất sắc (Tiêu chuẩn hiện nay trong công nghiệp)

Khuyến nghị thực tế cho từng bài toán cụ thể

Không có một mô hình nào là hoàn hảo cho mọi trường hợp. Việc lựa chọn kiến trúc tối ưu phụ thuộc lớn vào nguồn lực phần cứng, lượng dữ liệu bạn có và yêu cầu về độ trễ (latency) của hệ thống:

  1. Chọn Transformer (BERT, RoBERTa, PhoBERT cho tiếng Việt) khi bạn ưu tiên tối đa độ chính xác, sở hữu hạ tầng phần cứng có hỗ trợ GPU mạnh mẽ và cần xử lý các câu văn mang sắc thái phức tạp, châm biếm hoặc ẩn dụ.
  2. Chọn CNN 1D khi hệ thống của bạn yêu cầu thời gian đáp ứng cực kỳ nhanh (real-time) với tài nguyên máy chủ hạn chế, đồng thời các văn bản cần phân tích thường ngắn gọn như tin nhắn chat hoặc tiêu đề sản phẩm.
  3. Chọn LSTM / GRU khi bạn có dữ liệu dạng chuỗi dài có tính phân cấp rõ rệt nhưng không đủ tài nguyên compute để vận hành một mô hình Transformer cồng kềnh.
  4. Chọn FFNN / Logistic Regression khi bạn chỉ cần dựng nhanh một bộ phân loại nền tảng (baseline model) để kiểm thử dữ liệu trong vòng vài phút.

LSTM là gì? Hiểu rõ kiến trúc và ứng dụng trong NLP

Phân tích cảm xúc tiếng Việt trong NLP: Các case study

Mô hình chủ đề neural trong khai phá văn bản: ETM và CTM

© The CS Note · THE CS NOTE

Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.

Nguồn gốc: So sánh các mạng neuron trong phân tích cảm xúc văn bản

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...