CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 13.2023
160
KHOA H
ỌC
NGHIÊN CỨU LSTM VÀ ỨNG DỤNG TRONG PHÂN LOẠI VĂN BẢN TIẾNG VIỆT
RESEARCH AND USE LSTM IN VIETNAMESE TEXT CLASSIFICATION Phan Minh Giang1,*, Nguyễn Thị Huyền1, Trần Việt Hà2 TÓM TẮT Trong xã hội ngày này, việc đọc sách, báo đã trở nên vô cùng ph
ổ biến đi theo
đó là vô vàn những bài viết, thông tin đa dạng, phong phú về thể loại và n
ội dung.
Việc nời đọc bị lạc trong khu vườn kiến thức khổng lồ đi
ều không thể tránh khỏi
nếu chúng ta không cách thức phân chia sắp xếp kiến thức một cách hợp lý. Y
êu
cầu đặt ra chính là cần phải phân loại, tổng hợp sắp xếp kiến thức theo các ti
êu chí
như nội dung, hình thức hay cách trình bày, diễn đạt. Phân loại văn bản là gi
cho việc tổng hợp, sắp xếp tin tức, kiến thức. Hiện nay, dựa vào s
ự phát triển của học
y ML nói chung và xử lý ngôn ngữ tự nhiên NLP nói riêng, ta có th
ể hiện thực hóa
ý tưởng này trở thành một sản phẩm hữu ích cho quá trình tìm kiếm cũng nh
ư tích
lũy kiến thức. Thay vì phải tiêu tốn thời gian, công sức để đọc, phân tích và đưa ra d
đoán về thể loại hay phân loại của văn bản đó. Từ khóa: Xử lý ngôn ngữ tự nhiên, LSTM, phân loại văn bản ABSTRACT In today's society, reading books and newspapers has become
extremely
popular, followed by countless articles and information, rich in genres and
content. It is inevitable that readers get lost in the giant garden of knowledge if
we do not have a way to divide and arrange knowledge in a reasonable way. The
main req
uirement is to classify, synthesize and arrange knowledge according to
criteria such as content, form or presentation and expression. Text classification is
a solution for synthesizing and organizing information and knowledge. Currently,
based on the devel
opment of ML machine learning in general and NLP natural
language processing in particular, we can realize this idea to become a useful
product for the process of searching as well as accumulating data. knowledge.
Instead of having to spend time and effort
to read, analyze and make predictions
about the genre or classification of that text. Keywords: Natural language processing, LSTM, text classification. 1Lớp CNTT 02- K14, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội 2Khoa CNTT, Trường Đại học Công nghiệp Hà Nội *Email: ganalanphan@gmail.com 1. GIỚI THIỆU Kiến thức được lưu trữ dưới dạng văn bản đã có từ rất lâu. Song song cùng sự phát triển của nhân loại thì các kiến thức được thu thập và lưu trữ cũng ngày một phát triển và trở n đa dạng. Tương ứng với sự đa dạng phát triển của kiến thức thì các thể loại văn bản mới cũng ra đời nhằm đáp ứng nhu cầu tích lũy thông tin của con người. Để phục vụ cho quá trình tìm kiếm và tiếp thu kiến thức trở nên dễ đàng hơn, việc phân loại các văn bản tiếng Việt là cần thiết. Hiện nay, cùng với sự phát triển của AI, các hình ML được tạo ra nhằm giải quyết các bài toán cụ thể. Trong đó để xử lý những bài toán liên quan để văn bản, ngôn ngữ, chúng ta NLP đặc thù cho các bài toán về xử ngôn ngữ con người, từ văn bản chữ viết đến giọng nói. Chúng ta thể ứng dụng những thành qunghiên cứu về NLP trước đó để phục vụ cho việc giải quyết bài toán được đặt ra ở hiện tại. Kiến trúc mạng RNN rất tưởng để đưa ra các dự đoán sử dụng các thông tin đã được huấn luyện trước đó. RNN có thể được huấn luyện qua tập dữ liệu được gán nhãn đưa ra các dự đoán tương đối chính xác. Một kiến trúc mạng biến thể của RNN thể khác phục được một số nhược điểm của LSTM được ứng dụng rất phổ biến trong các bài toán dự đoán tương tự như bài toán phân loại văn bản chúng ta cần xử lý. 2. MẠNG HỒI QUY RNN VÀ LSTM 2.1. Mạng RNN Hình 1. Mô hình Artificial Neural Network Mạng neural một hình tính toán được lấy cảm hứng từ cách hoạt động của hệ thống thần kinh trong não người. một hình toán học sử dụng để xử thông tin và học từ dữ liệu. Một mạng neural bao gồm một tập hợp các đơn vị tính toán gọi là neuron. Các neuron được tổ chức thành các lớp, trong đó mỗi lớp thể một số lượng neuron khác nhau. Các neuron trong một lớp liên kết với các neuron trong lớp trước sau đó thông qua các liên kết trọng số. Trọng số này biểu thị sức mạnh của kết nối giữa các neuron thể được điều chỉnh trong quá trình huấn luyện mạng. Hình 1 là cấu trúc cơ bản của mô hình ANN.
SCIENCE - TECHNOLOGY Số 13.2023 Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 161
Sau khi đã tìm hiểu bản về ANN, chúng ta sẽ tiếp tục với nhân vật chính RNN. RNN (Recurrent Neural Network) một loại mạng neural được thiết kế đặc biệt để xử dữ liệu tuần tự như chuỗi thời gian, văn bản hoặc giọng nói. Mạng RNN có khả năng lưu trữ thông tin trạng thái trước đó và sử dụng nó để xử lý thông tin hiện tại. Điểm cải thiện của RNN so với mạng ANN thể xử các thông tin với trình tự xác định, giải quyết được các i toán dữ liệu không chỉ xuất hiện còn mối liên hệ hoặc biểu diễn, thể hiện các ý nghĩa khác nhau phụ thuộc vào trình tự xuất hiện của chúng. Kiến trúc của mạng RNN bao gồm các đơn vị tính toán gọi là cell, và mỗi cell có thể nhận đầu vào từ cell trước đó và tạo ra đầu ra cùng với trạng thái ẩn (hidden state). Trạng thái ẩn của cell được truyền qua các cell tiếp theo để duy trì thông tin từ quá khứ. Mạng RNN (Recurrent Neural Network) có một kiến trúc đặc biệt để xử dữ liệu tuần tự như chuỗi thời gian, văn bản hoặc giọng nói. Kiến trúc của mạng RNN bao gồm một chuỗi các cell được kết nối với nhau để duy trì thông tin từ quá khứ và áp dụng nó vào thông tin hiện tại. Mỗi cell trong mạng RNN thực hiện các phép tính trên đầu vào trạng thái ẩn (hidden state) của cell trước đó để tạo ra đầu ra và trạng thái ẩn của chính nó. Trạng thái ẩn của cell được truyền qua cho cell tiếp theo trong chuỗi. Công thức chính cho một cell trong mạng RNN được biểu diễn như sau: h(t) = activation(Wx * x(t) + Wh * h(t-1) + b) Trong đó: x(t) là đầu vào tại thời điểm t. h(t) là trạng thái ẩn (hidden state) tại thời điểm t. Wx là ma trận trọng số ứng với đầu vào x(t). Wh là ma trận trọng số ứng với trạng thái ẩn h(t-1). b là vector độ lệch (bias). activation hàm kích hoạt, thường hàm phi tuyến (nonlinear activation function) như tanh hoặc ReLU. Mạng RNN có thể có nhiều cell liên tiếp nhau để xử lý dữ liệu tuần tự. Khi áp dụng mạng RNN cho dữ liệu có độ dài cố định, ta chỉ cần một số lượng cell tương ứng với độ dài của dữ liệu. Cụ th hơn, kiến trúc của mạng RNN (Recurrent Neural Network) được thể hiện thông qua các bước và các phép tính chính sau: - Đầu vào (Input): Mỗi đầu vào của mạng RNN một chuỗi dữ liệu tuần tự gồm nhiều phần tử. dụ: chuỗi thời gian, văn bản hoặc giọng nói. - Cell RNN: Cell RNN (hay còn gọi RNN unit) một thành phần quan trọng của mạng RNN. thực hiện phép tính trên một phần tử của chuỗi dữ liệu và trạng thái ẩn của cell trước đó để tạo ra đầu ra và trạng thái ẩn của chính nó. - Trạng thái ẩn (Hidden State): Mỗi cell RNN có một trạng thái ẩn, thể hiện thông tin được lưu trữ từ quá khứ. Trạng thái ẩn được chuyển tiếp từ cell hiện tại sang cell tiếp theo để duy trì thông tin liên quan đến chuỗi dữ liệu. - Trọng số (Weights): Trong quá trình huấn luyện, mạng RNN sẽ tìm cách điều chỉnh các trọng số để tối ưu hóa kết quả dự đoán. Các trọng số này được áp dụng cho đầu vào và trạng thái ẩn của mỗi cell. - Hàm kích hoạt (Activation Function): Hàm kích hoạt được áp dụng lên đầu ra của cell RNN để tạo ra đầu ra cuối cùng của mạng. Hàm kích hoạt này thường một hàm phi tuyến như tanh, sigmoid, hoặc ReLU để giúp mạng học các mối quan hệ phi tuyến trong dữ liệu. - Các kết nối (Connections): Trong mạng RNN, các cell được kết nối với nhau theo thứ tự tuần tự, trong đó trạng thái ẩn của cell trước đó được chuyển tiếp cho cell tiếp theo. Điều này cho phép mạng RNN duy trì thông tin từ quá khứ và áp dụng nó vào các phần tử tiếp theo trong chuỗi dữ liệu. - Đầu ra (Output): Kết quả cuối cùng của mạng RNN đầu ra tương ứng với mỗi phần tử trong chuỗi dữ liệu. Đầu ra này có thể được sử dụng để dự đoán, phân loại, hoặc thực hiện các tác vụ khác trên dữ liệu tuần tự. RNN rất nhiều dạng hình như one to one, one to many, many to one, many to many. Hình 2 trình bày cấu tạo của dạng many to many của RNN Hình 2. Một dạng mô hình many to many mạng RNN 2.2. Mạng LSTM Mạng LSTM (Long Short-Term Memory) là một dạng đặc biệt của mạng RNN (Recurrent Neural Network) được thiết kế để giải quyết vấn đề biến mất gradient trong việc xử lý dữ liệu tính tuần tự. LSTM được giới thiệu bởi Hochreiter Schmidhuber vào m 1997 đã trở thành một công cquan trọng trong xử lý ngôn ngữ tự nhiên, dự báo chuỗi thời gian và nhiều ứng dụng khác. Mạng LSTM bao gồm các đơn vị nhớ (memory units) đặc biệt, được gọi là cell state, để lưu trữ và truyền thông tin qua các bước thời gian. Mỗi đơn vị nhớ có khả năng kiểm soát cả việc lưu trữ thông tin mới quên thông tin thông qua các cổng (gates) điều chỉnh. Các cổng này bao gồm: - Cổng quên (Forget gate): Điều chỉnh xem liệu thông tin từ bước thời gian trước có nên được giữ lại hay bị bỏ qua. - Cổng đầu vào (Input gate): Quyết định xem liệu thông tin mới từ bước thời gian hiện tạinên được lưu trữ vào cell state. - Cổng đầu ra (Output gate): Điều chỉnh xem liệu thông tin trong cell state nên được sử dụng để tính toán đầu ra của mạng LSTM. Các cổng này cho phép mạng LSTM điều chỉnh quá trình lưu trữ và truyền thông tin, giúp giải quyết vấn đề biến mất
CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 13.2023
162
KHOA H
ỌC
gradient và cải thiện khả năng mô hình hóa sự phụ thuộc dài hạn trong dữ liệu tuần tự. Nó cũng có thể có nhiều lớp LSTM chồng n nhau để tăng cường khả năng học biểu diễn của hình. Ngoài ra, mạng LSTM ng thể kết hợp với các lớp khác như lớp kết hợp (embedding layer) lớp kết nối đầy đủ (fully connected layer) để tạo ra một kiến trúc mạng phức tạp và mạnh mẽ. Mạng LSTM đã chứng tỏ hiệu suất tốt trong nhiều ứng dụng, bao gồm xử lý ngôn ngữ tự nhiên, dự đoán chuỗi thời gian, dịch máy, nhận dạng giọng nói, và nhiều lĩnh vực khác. Kiến trúc của mạng LSTM bao gồm nhiều thành phần nhưng có thể được mô tả cơ bản như sau: - Cell State (Trạng thái cell): Đây thành phần quan trọng nhất trong mạng LSTM. Cell state hoạt động như một bộ nhớ dài hạn, lưu trữ thông tin từ các bước thời gian trước đó và truyền nó qua các bước tiếp theo. Cell state giúp mạng LSTM ghi nhớ và truyền thông tin dài hạn. - Cổng quên (Forget Gate): Cổng quên quyết định xem liệu thông tin từ bước thời gian trước đó có nên được giữ lại hay bị bỏ qua. sử dụng hàm sigmoid để tạo một vector trong khoảng từ 0 đến 1, trong đó giá trị 0 tương ứng với quên hoàn toàn thông tin giá trị 1 tương ứng với giữ lại toàn bộ thông tin. - Cổng đầu vào (Input Gate): Cổng đầu vào quyết định thông tin mới từ bước thời gian hiện tại nào nên được lưu trữ vào cell state. sử dụng hàm sigmoid để tạo một vector "candidate" trong khoảng từ 0 đến 1, hàm tanh để tạo một vector chứa thông tin mới. - Cổng lượng giá (Output Gate): Cổng lượng giá quyết định xem thông tin từ cell state nên được sử dụng để tính toán đầu ra của mạng LSTM. Nó sử dụng hàm sigmoid để tạo một vector trong khoảng từ 0 đến 1, đồng thời sử dụng hàm tanh để biến đổi thông tin từ cell state. Kết hợp cả hai, cổng lượng giá tạo ra đầu ra cuối cùng của mạng LSTM. - Hidden State (Trạng thái ẩn): Hidden state là một vector chứa thông tin tóm tắt từ cell state được truyền từ bước thời gian này sang bước thời gian tiếp theo. Hidden state có thể được sử dụng để tính toán đầu ra tại mỗi bước thời gian. Hình 3. Kiến trúc của mạng LSTM Các thành phần này cùng tạo nên kiến trúc của mạng LSTM thể thấy trong hình 3. Khi mạng LSTM được áp dụng cho các tác vụ như dự đoán chuỗi thời gian, xử lý ngôn ngữ tự nhiên, hay nhận dạng giọng nói, kiến trúc này giúp mạng LSTM có khả năng học và mô hình hóa các phụ thuộc dài hạn trong dữ liệu tuần tự. Cách hoạt động của từng bước xử lý: - Bước đầu tiên trong LSTM sẽ quyết định xem thông tin o chúng ta sẽ cho phép đi qua ô trạng thái (cell state). được kim soát bởi hàm sigmoid trong một tầng gọi là tầng quên (forget gate layer). Đầu tiên nó nhận đầu vào là 2 giá trị t-1 và xt trả về mt giá trị nằm trong khoảng 0 1 cho mỗi gtrị của ô trạng thái Ct-1. Nếu giá trị bằng 1 thể hiệngiữ toàn bộ thông tin’ và bằng 0 thể hiện ‘bỏ qua toàn bộ chúng’. Hình 4. Tầng cổng quên (Forget gate layer) - Bước tiếp theo chúng ta sẽ quyết định loại thông tin nào sẽ được lưu trữ trong ô trạng thái. ớc y bao gồm hai phần. Phần đầu tiên một tầng ẩn của m sigmoid được gọi là tầng cổng vào (input gate layer) quyết định giá trị bao nhiêu sẽ được cập nhật. Tiếp theo, tầng ẩn hàm tanh sẽ tạo ra một véc của một giá trị trạng thái mới thể được thêm vào trạng thái. Tiếp theo kết hợp kết quả của 2 tầng này để tạo thành một cập nhật cho trạng thái. Hình 5. Cập nhật giá trị cho ô trạng thái - Đây thời điểm để cập nhật một ô trạng thái cũ, Ct-1 sang một trạng thái mới Ct. Những bước trước đó đã quyết định làm cái gì tại bước này chỉ cần thực hiện nó. Chúng ta nhân trạng thái với ft tương ứng với việc quên những thứ quyết định được phép quên sớm. Phần tử đề cử it* là mt giá trị mới được tính toán tương ứng với bao nhiêu được cập nhật vào mỗi giá trị trạng thái. Hình 6. Ô trạng thái mới
SCIENCE - TECHNOLOGY Số 13.2023 Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 163
- Cui ng cn quyết định xem đầu ra strả vbao nhu. Kết quả đầu ra sẽ da tn ô trạng thái, nhưng sẽ một phn bản được lc. Đầu tn, cng ta chạy qua một tầng sigmoid i quyết định phn o của ô trạng thái s đầu ra. Sau đó, ô trạng thái được đưa qua hàm tanh (đchuyển gtrvkhoảng -1 và 1) nhân nó vi đầu ra của mt cổng sigmoid, do đó chỉ trả ra phần mà chúng ta quyết định. Hình 7. Điều chỉnh thông tin ở đầu ra qua hàm tanh 3. XÂY DỰNG MÔ HÌNH PHÂN LOẠI VĂN BẢN 3.1. Tổng quan bài toán tả bài toán: Trên con đường học tập, việc đọc các tài liệu, sách, báo hay đơn giản chỉ là đọc các bài văn, bài thơ để tích lũy kiến thức, tăng thêm sự hiểu biết của bản thân. Từng câu nói “Để thành công thì hai điều quan trọng nhất chọn hướng đi cố gắng hết mình với hướng đi đó”. Vậy trước khi giành thời gian để đọc một cuốn sách, ta cần biết cuốn sách này thuộc thể loại này, sẽ cung cấp cho chúng ta những kiến thức gì. Đối với các tài liệu hầu hết đều đã được phân loại nhưng các tài liệu từ nguồn internet cần được phân loại để quyết định tài liệu nào sẽ giúp ích cho quá trình tích lũy kiến thức. Việc phân loại văn bản thể giải quyết vấn đề trên. Nếu thể y dựng một ứng dụng giúp phân loại được văn bản thể dựa trên tên bài viết hoặc một đoạn văn trong i viết thì sẽ tiết kiệm rất nhiều thời gian cho người đọc, không cần phải đọc, phân tích để đưa ra dự đoán về thể loại đó khi lựa chọn. Hướng giải quyết: Để phân loại văn bản, trước tiên máy tính cần hiểu được từ ngữ. Trên thực tế, máy không thể hiểu được từ ngữ con người mà chỉ hiểu được các thông tin dưới dạng số nên với bài toán này, chúng ta sđưa các từ vựng về dạng vector số đbiểu diễn. Sau khi chuyển từ ngữ về dạng vector chúng ta sẽ huấn luyện để máy tính biết những văn bản nào thuộc về nhưng phân loại đặc thù nào. Sau đó hình học máy sẽ dự đoán phân loại của một đoạn văn bất kì dựa trên những gì đã học. 3.2. Giải quyết bài toán - Chuẩn bị dữ liệu: Thu thập chuẩn bị dữ liệu văn bản tiếng Việt cho c vụ phân loại. Bạn cần một tập dữ liệu đã được gán nhãn với các nhãn phân loại tương ứng. - Tiền xử dữ liệu: Tiền xử dữ liệu văn bản tiếng Việt bao gồm việc tách từ, loại bỏ dấu câu, chuyển đổi văn bản thành các chuỗi số nguyên để đưa vào hình LSTM. Bạn thể sử dụng c công cụ như nltk hoặc gensim để thực hiện các bước tiền xử lý này - Xây dựng hình LSTM: Sử dụng thư viện Deep Learning như Keras hoặc PyTorch để xây dựng một mô hình LSTM. Bạn thể sử dụng lớp nhúng (Embedding) đbiểu diễn từ trong văn bản thành các vectơ mật độ (dense vectors), sau đó sử dụng một hoặc nhiều lớp LSTM để xử thông tin chuỗi trong văn bản. Cuối cùng, thêm các lớp Dense để phân loại văn bản thành các nhãn tương ứng. - Huấn luyện hình: Chia tập dữ liệu thành tập huấn luyện tập kiểm tra. Huấn luyện hình LSTM trên tập huấn luyện và đánh giá hiệu suất trên tập kiểm tra. Sử dụng các phương pháp tối ưu hàm mất mát phù hợp để điều chỉnh các trọng số của mô hình. - Đánh giá hình: Đánh giá hiệu suất của hình LSTM trên tập kiểm tra bằng các độ đo như độ chính xác, độ phủ, F1-score ma trận nhầm lẫn. Điều chỉnh cải thiện mô hình nếu cần thiết. - Sử dụng hình đã huấn luyện: Áp dụng hình đã huấn luyện để phân loại các văn bản tiếng Việt mới bạn muốn. Tiền xử các văn bản mới theo cùng quy trình tiền xử đã được áp dụng cho dữ liệu huấn luyện trước đó, sau đó sử dụng mô hình LSTM để dự đoán nhãn phân loại 4. KẾT LUẬN Việc xây dựnghình học máy dựa trên cấu trúc mạng đi m với rất nhiều yếu tố. Tuy nhiên nếu được hoàn thiện ứng dụng thực tế, ứng dụng y sẽ giúp người dùng tóm tắt và có cái nhìn tổng quan một ch nhanh chóng, giúp tránh tình trạng mất thời gian công sức, giúp họ nhiều thời gian hơn cho các công việc hoặc tìm hiểu các kiến thức khác. Mô hình tóm tắt văn bản cần có lượng lớn dữ liệu có định dạng sạch, được gán nhãn chính xác để cung cấp những điều kiện tưởng nhất cho quá trình huấn luyện của hình. Một vấn đề cần giải quyết cấu trúc mạng LSTM dựa vào F1 score để đánh giá hiệu suất của hình, vậy vẫn cần có nhiều cải tiến hơn để tối ưu cho mô hình. TÀI LIỆU THAM KHẢO [1]. Trần Hùng Cường, Nguyễn Phương Nga, 2014, Giáo trình trí tuệ nhân tạo. Nhà xuất bản Thống kê. [2]. https://stanford.edu/~shervine/l/vi/teaching/cs-230/cheatsheet-recurrent-neural-networks [3]. https://phamdinhkhanh.github.io/2019/04/22/Ly_thuyet_ve_mang_ LSTM.html [4]. https://viblo.asia/p/recurrent-neural-network-tu-rnn-den-lstm-gGJ597z1ZX2 [5]. https://nttuan8.com/bai-14-long-short-term-memory-lstm [6]. https://nttuan8.com/bai-13-recurrent-neural-network [8]. https://viblo.asia/p/phan-loai-van-ban-tu-dong-bang-machine-learning-nhu-the-nao-4P856Pa1ZY3 [9]. https://machinelearningcoban.com [10]. https://viblo.asia/p/nn-mang-no-ron-nhan-tao-neural-networks-bWrZn6dwZxw [11]. https://aws.amazon.com/vi/what-is/nlp