You are on page 1of 69

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.

HCM
KHOA CÔNG NGHỆ THÔNG TIN

NGÔ HOÀNG KHÁNH DUY - 20133030


HUỲNH NHẬT MINH - 20133066

Đề Tài:
TÓM TẮT VĂN BẢN TIẾNG ANH
THÔNG QUA RNN

TIỂU LUẬN CHUYÊN NGÀNH NGÀNH KTDL

GIÁO VIÊN HƯỚNG DẪN

ThS. TRẦN TRỌNG BÌNH

Tp. Hồ Chí Minh, tháng 12 năm 2023


ĐH SƯ PHẠM KỸ THUẬT TP.HCM CỘNG HÒA XHCN VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN Độc lập – Tự do – Hạnh phúc
****** ******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN


Họ và tên Sinh viên 1: Ngô Hoàng Khánh Duy MSSV 1: 20133030
Họ và tên Sinh viên 2: Huỳnh Nhật Minh MSSV 2: 20133066
Chuyên ngành: Kỹ thuật dữ liệu
Tên đề tài: Tóm tắt văn bản tiếng anh thông qua RNN
Họ và tên giáo viên hướng dẫn: ThS. Trần Trọng Bình
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:

2. Ưu điểm:

3. Khuyết điểm:

4. Đề nghị cho bảo vệ hay không?


5. Đánh giá loại:
6. Điểm:
LỜI CẢM ƠN
Để hoàn thành được bài tiểu luận này, chúng tôi xin chân thành cảm ơn Ban
Giám hiệu, các khoa, phòng và quý thầy, cô của trường Đại học Sư phạm Kỹ thuật,
những người đã tận tình giúp đỡ và tạo điều kiện cho em trong quá trình học tập. Đặc
biệt, chúng tôi xin gửi lời cảm ơn sâu sắc đến thầy Trần Trọng Bình - người đã trực tiếp
giảng dạy và hướng dẫn chúng tôi thực hiện bài tiểu luận này bằng tất cả lòng nhiệt tình
và sự quan tâm sâu sắc.

Trong quá trình thực hiện bài tiểu luận này, do hiểu biết còn nhiều hạn chế nên
bài làm khó tránh khỏi những thiếu sót. Chúng tôi rất mong nhận được những lời góp ý
của quý thầy cô để bài tiểu luận ngày càng hoàn thiện hơn.

Chúng tôi xin chân thành cảm ơn!


Trường ĐH Sư Phạm Kỹ Thuật TP.HCM
Khoa: Công nghệ thông tin

ĐỀ CƯƠNG TIỂU LUẬN CHUYÊN NGÀNH


Họ và tên SV thực hiện 1: Ngô Hoàng Khánh Duy MSSV: 20133063
Họ và tên SV thực hiện 2: Huỳnh Nhật Minh MSSV: 20133031
Thời gian làm tiểu luận: Từ ngày 18/09/2023 Đến: 24/12/2023
Chuyên ngành: Kỹ Thuật Dữ Liệu
Tên tiểu luận: Tóm tắt văn bản tiếng anh thông qua RNN
Giáo viên hướng dẫn: ThS. Trần Trọng Bình
Nhiệm vụ của tiểu luận chuyên ngành:
1. Lý thuyết:
2. Thực hành:

KẾ HOẠCH THỰC HIỆN


STT Thời gian Công việc Ghi chú
Xây dựng bố cục tiểu luận và tìm hiểu cách ứng
1 18/09 đến 24/09 dụng LSTM. Xây dựng mã nguồn của các bước
tiền xử lý dữ liệu.
Hoàn thiện lý thuyết phần mở đầu và tìm kiếm các
2 25/09 đến 1/10 tài liệu liên quan đến việc triển khai mô hình. Tìm
hiểu ma trận embedding GloVe và cơ chế attention
Bắt đầu viết chương 1 và xây dựng sơ đồ mô hình
tóm tắt văn bản tiếng Anh. Huấn luyện mô hình
3 2/10 đến 8/10 với các tổ hợp thông số đơn giản, tinh chỉnh các
tầng của mô hình để cho ra được mô hình cuối
cùng.
Hoàn thiện chương 1. Thử nghiệm với các cơ chế
4 9/10 đến 15/10
attention khác nhau.
Bắt đầu viết lý thuyết chương 2. Thử nghiệm với
5 16/10 đến 22/10 dữ liệu lớn hơn và với các loại embedding khác
nhau.
Tiếp tục viết lý thuyết chương 2. Huấn luyện mô
6 23/10 đến 29/10
hình với thông số của thử nghiệm 1
Hoàn thiện lý thuyết chương 2. Huấn luyện mô
7 30/10 đến 5/11
hình với thông số của thử nghiệm 2
Bắt đầu viết chương 3. Huấn luyện mô hình với
8 6/11 đến 12/11
thông số của thử nghiệm 3
Huấn luyện mô hình với thông số của thử nghiệm
9 13/11 đến 19/11
4.
Tạo ra các tệp val.csv để phục vụ cho việc đánh
10 20/11 đến 26/11
giá, phân mã nguồn thành 4 file.
Tiếp tục viết chương 3. Thu gọn các mã nguồn
11 27/11 đến 3/12 theo một dạng cấu trúc chung, Đánh giá các thử
nghiệm bằng chỉ số ROUGE.
12 4/12 đến 10/12 Hoàn thiện chương 3
13 11/12 đến 17/12 Hoàn thiện chương 4
14 18/12 đến 24/12 Hoàn thành báo cáo

Ngày 24 tháng 12 năm 2023


Ý kiến của giáo viên hướng dẫn Người viết đề cương

Trần Trọng Bình Ngô Hoàng Khánh Duy


Huỳnh Nhật Minh
Mục Lục
MỞ ĐẦU ........................................................................................................................ 1
1. Tính cấp thiết của đề tài .......................................................................................... 1
2. Mục tiêu nghiên cứu................................................................................................ 1
3. Cách tiếp cận và phương pháp nghiên cứu ............................................................. 1
3.1. Đối tượng nghiên cứu ....................................................................................... 1
3.2. Phạm vi nghiên cứu .......................................................................................... 2
4. Phân tích những công trình có liên quan ................................................................. 2
5. Kết quả dự kiến đạt được ........................................................................................ 3
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN TÓM TẮT VĂN BẢN ........................ 5
1.1. Xử lý ngôn ngữ tự nhiên ...................................................................................... 5
1.1.1. Giới thiệu ....................................................................................................... 5
1.1.2. Các bước xử lý ............................................................................................... 5
1.1.3. Ứng dụng ....................................................................................................... 5
1.2. Các kỹ thuật trong xử lý ngôn ngữ tự nhiên ........................................................ 6
1.2.1. Word embedding............................................................................................ 6
1.2.1.1. Word2Vec ............................................................................................... 7
1.2.1.2. GloVe (Global Vectors for Word Representation) ................................. 8
1.2.1.3. FastText ................................................................................................... 9
1.2.2. Tokenization .................................................................................................. 9
1.2.2.1. Word-based Tokenization ..................................................................... 10
1.2.2.2. Character-based Tokenization ............................................................... 10
1.2.2.3. Subword-based Tokenization ................................................................ 11
1.3. Bài toán tóm tắt văn bản..................................................................................... 11
1.3.1. Khái niệm của bài toán tóm tắt văn bản ...................................................... 11
1.3.2. Thách thức trong bài toán ............................................................................ 11
1.4. Phân loại các phương pháp tóm tắt văn bản ...................................................... 12
1.4.1. Extractive text summarization ..................................................................... 12
1.4.1.1. TF-IDF................................................................................................... 13
1.4.1.2. Sentence weight algorithm .................................................................... 14
1.4.1.3. Word Frequency Algorithm .................................................................. 15
1.4.1.4. TextRank algorithm ............................................................................... 16
1.4.2. Abstractive text summarization ................................................................... 16
1.5. Phương pháp đánh giá ROUGE ......................................................................... 17
1.5.1. ROUGE-N ................................................................................................... 17
1.5.2. ROUGE-L .................................................................................................... 18
1.5.3. ROUGE-W................................................................................................... 18
1.5.4. ROUGE-S .................................................................................................... 19
1.5.5. ROUGE-SU ................................................................................................. 19
CHƯƠNG 2: TỔNG QUAN VỀ THUẬT TOÁN ...................................................... 20
2.1. Mạng Nơ-ron nhân tạo (ARTIFICIAL NEURAL NETWORKS)..................... 20
2.1.1. Mạng nơ-ron nhân tạo.................................................................................. 20
2.1.2. Thành phần của mạng nơ-ron nhân tạo ....................................................... 20
2.2. Mạng Học Sâu (Deep Learning) ........................................................................ 21
2.2.1. Khái niệm ..................................................................................................... 21
2.2.2. Các hàm kích hoạt........................................................................................ 21
2.2.3. Lan truyền trong mạng nơ-ron ..................................................................... 25
2.2.3.1. Biểu diễn mạng nơ-ron bằng ma trận .................................................... 25
2.2.3.2. Lan truyền xuôi (Forward Propagation) ................................................ 26
2.2.3.3. Lan truyền ngược (Backpropagation) ................................................... 28
2.3. Mạng nơ-ron truy hồi (RNN) ............................................................................. 30
2.3.1. Giới thiệu về RNN ....................................................................................... 30
2.3.2. Phân loại RNN ............................................................................................. 31
2.3.3. Các biến thể của RNN ................................................................................. 33
2.3.4. Ưu và nhược điểm ....................................................................................... 33
2.4. Mạng nơ-ron Dài/Ngắn hạn (Long Short-Term Neural Networks) ................... 34
2.4.1. Giới thiệu về LSTM ..................................................................................... 34
2.4.2. Cấu trúc của LSTM ..................................................................................... 34
2.4.2.1. Cổng quên (Forget gate) ........................................................................ 35
2.4.2.2. Cổng vào (Input gate) ............................................................................ 36
2.4.2.3. Cổng ra (Output gate) ............................................................................ 37
2.4.3. Ưu, nhược điểm của LSTM ......................................................................... 38
CHƯƠNG 3: XÂY DỰNG MÔ HÌNH ỨNG DỤNG RNN TRONG BÀI TOÁN
TÓM TẮT VĂN BẢN TIẾNG ANH ........................................................................... 39
3.1. Cấu trúc mô hình tóm tắt văn bản ...................................................................... 39
3.1.1. Cấu trúc Encoder-Decoder .......................................................................... 39
3.1.2. Mô hình tổng quát của tóm tắt văn bản ....................................................... 40
3.2. Xây dựng mô hình .............................................................................................. 40
3.2.1. Tiền xử lý dữ liệu......................................................................................... 44
3.2.1.1. Làm sạch dữ liệu ................................................................................... 44
3.2.1.2. Tạo ma trận embedding ......................................................................... 45
3.2.1.3. Tokenization .......................................................................................... 45
3.2.2. Cơ chế Attention .......................................................................................... 46
3.3. Thực nghiệm mô hình ........................................................................................ 49
3.3.1. Tập dữ liệu được sử dụng ............................................................................ 49
3.3.2. Thực nghiệm ................................................................................................ 51
3.4. Kết quả thực nghiệm .......................................................................................... 53
3.4.1. Phân tích kết quả .......................................................................................... 53
3.4.2. Đánh giá ....................................................................................................... 54
CHƯƠNG 4: KẾT LUẬN........................................................................................... 56
4.1. Kết quả đạt được của đề tài ................................................................................ 56
4.2. Hạn chế............................................................................................................... 56
4.3. Hướng phát triển ................................................................................................ 57
TÀI LIỆU THAM KHẢO ............................................................................................ 58
DANH SÁCH HÌNH ẢNH
Hình 1.1. Phương pháp CBOW ...................................................................................... 7
Hình 1.2. Phương pháp Skip-gram ................................................................................. 8
Hình 1.3. Phân loại các phương pháp tóm tắt văn bản ................................................. 12
Hình 2.1. Mô hình một mạng nơ-ron nhân tạo với hai lớp ẩn ...................................... 21
Hình 2.2. Đồ thị của hàm Sigmoid ............................................................................... 22
Hình 2.3. Đồ thị của hàm Tanh .................................................................................... 23
Hình 2.4. Đồ thị của hàm ReLU ................................................................................... 24
Hình 2.5. Đồ thị của hàm Leaky ReLU ........................................................................ 24
Hình 2.6. Mạng nơ-ron đơn giản với hai lớp ẩn ........................................................... 25
Hình 2.7. Tổng quát hóa hai lớp của mạng với nhiều nút ............................................ 26
Hình 2.8. Quá trình lan truyền xuôi của mạng nơ-ron ................................................. 27
Hình 2.9. Quá trình lan truyền ngược giữa hai lớp ...................................................... 28
Hình 2.10. Mạng nơ-ron truy hồi ................................................................................. 30
Hình 2.11. Mạng RNN loại One to One ....................................................................... 31
Hình 2.12. Mạng RNN loại One to Many .................................................................... 32
Hình 2.13. Mạng RNN loại Many to One .................................................................... 32
Hình 2.14. Mạng RNN loại Many to Many.................................................................. 33
Hình 2.15. Cấu trúc của LSTM .................................................................................... 35
Hình 2.16. Cổng quên của LSTM ................................................................................ 35
Hình 2.17. Cổng vào của LSTM .................................................................................. 36
Hình 2.18. Cổng ra của LSTM ..................................................................................... 37
Hình 3.1. Cấu trúc Encoder-Decoder ........................................................................... 39
Hình 3.2. Mô hình tóm tắt văn bản tổng quát ............................................................... 40
Hình 3.3. Mô hình được đề xuất ................................................................................... 41
Hình 3.4. Cấu trúc của mô hình Encoder-Decoder LSTM được đề xuất ..................... 41
Hình 3.5. Kiến trúc mô hình dự đoán chuỗi tiếp theo .................................................. 43
Hình 3.6. Biểu đồ phân bố độ dài câu của thuộc tính Summary .................................. 50
Hình 3.7. Biểu đồ phân bố độ dài câu của thuộc tính Text .......................................... 51
Hình 3.8. Thực nghiệm tóm tắt của mô hình được đề xuất .......................................... 55
DANH MỤC BẢNG
Bảng 3.1. Bảng mô tả độ dài của các câu trong tệp dữ liệu ......................................... 50
Bảng 3.2. Các thử nghiệm được đề xuất ...................................................................... 52
Bảng 3.3. Phân tích kết quả của các thử nghiệm được đề xuất .................................... 53
Bảng 3.4. So sánh giữa tóm tắt gốc và tóm tắt của mô hình được đề xuất .................. 55
MỞ ĐẦU

1. Tính cấp thiết của đề tài

Trong guồng quay của đời sống văn minh hiện tại, đôi khi chúng ta dành quá
nhiều thời gian cho công việc dẫn đến khoản thời gian rảnh rỗi bị giảm bớt đáng
kể. Chúng ta sẽ không còn nhiều thời gian để đọc những bài báo, những đoạn tài
liệu dài. Tuy vậy, nhu cầu nắm bắt thông tin để bắt kịp với xu thế vẫn hiện hữu.
Vẫn rất nhiều người trong chúng ta muốn nắm bắt được những thông tin chính
của một tập tài liệu mà không cần tốn quá nhiều thời gian.
Để giải quyết được vấn đề này, ta cần sử dụng một công cụ để tóm tắt đoạn
văn bản, thông qua đó ta có thể hiểu được nội dung chính của bài viết đó. Một số
công cụ tóm tắt văn bản cũng đã xuất hiện cả dưới dạng trực tuyến lẫn ngoại tuyến
với nhiều phương pháp khác nhau.
Tiểu luận này sẽ tập trung vào việc nghiên cứu cách để có thể sử dụng mô
hình mạng thần kinh hồi quy (Recurrent Neural Network) để có thể xây dựng một
mô hình tóm tắt văn bản bằng tiếng Anh.
Hy vọng thông qua tiểu luận này, chúng tôi có thể cung cấp được một cái
nhìn sâu sắc hơn về khả năng của mạng thần kinh hồi quy trong việc tóm tắt văn
bản.
2. Mục tiêu nghiên cứu

Nghiên cứu sẽ tập trung vào bài toán tóm tắt một văn bản bằng tiếng Anh
nhằm mang đến có người dùng cái nhìn tổng quan nhất về đoạn văn bản đó. Thông
qua mạng thần kinh hồi quy (RNN), nghiên cứu mong muốn có thể xây dựng
được một mô hình nhằm thực hiện công việc đã nêu.
3. Cách tiếp cận và phương pháp nghiên cứu

3.1. Đối tượng nghiên cứu

Đối tượng nghiên cứu trong tiểu luận này chính là mô hình mạng thần kinh hồi

1
quy (RNN), trong trường hợp này là bộ nhớ dài-ngắn hạn (LSTM). Cụ thể hơn, chúng
tôi sẽ nghiên cứu về kiến trúc Encoder-Decoder của mô hình seq2seq để có thể huấn
luyện được một mô hình tóm tắt văn bản bằng tiếng Anh. Ngoài ra, tiểu luận này cũng
sẽ nghiên cứu về phương pháp ROUGE nhằm đánh giá văn bản tóm tắt từ mô hình,
đồng thời cũng nghiên cứu những cách thức nhằm cải thiện chất lượng của mô hình.

3.2. Phạm vi nghiên cứu

Tiểu luận này sẽ sử dụng tệp dữ liệu của Amazon về các bài đánh giá thực
phẩm với 568,454 dòng dữ liệu, trong đó tập trung vào thuộc tính Text và
Summary để có thể xây dựng mô hình seq2seq nhằm tóm tắt văn bản bằng tiếng
Anh.
4. Phân tích những công trình có liên quan

Bài toán tóm tắt văn bản trong xử lý ngôn ngữ tự nhiên không phải là một vấn
đề quá mới mẻ, thực tế nó đã bắt đầu xuất hiện từ khoảng thập niên 80 đến 90 của thế
kỷ 20. Mặc dù đã xuất hiện được vài thập kỷ, nó vẫn chưa cho thấy dấu hiệu hạ nhiệt.
Cho đến thời điểm hiện tại, đã có rất nhiều công trình nghiên cứu về chủ đề này cùng
với nhiều phương pháp khác nhau.

Trong nghiên cứu “Urdu Text Summarizer using Sentence Weight Algorithm for
Word Processors” [16] của A.Burney, B.Sami, và N.Mahmood, họ đã đề xuất ra một
mô hình tóm tắt văn bản sử dụng thuật toán trọng số câu. Mô hình này đã cho ra được
kết quả khá khả quan khi văn bản được tóm tắt ra khá sát nghĩa với đoạn văn gốc. Họ
cũng đã cho kiểm tra chéo bởi người. Có tổng cộng năm người đã thực hiện việc kiểm
tra chéo này, kết quả cho thấy rằng đoạn văn bản được chọn thông qua thuật toán trọng
số cũng sẽ được ít nhất một người thực hiện lựa chọn cho văn bản tóm tắt.

Trong một nghiên cứu khác mang tên “Attention Is All You Need” [19] của
A.Vaswani cùng các cộng sự, họ đã đề xuất về một mô hình mới dựa hoàn toàn trên cơ
chế chú ý, được gọi là Transformer. Mô hình này đã thay thế được việc sử dụng mạng
tích chập thường được sử dụng trong các mô hình mã hóa-giải mã. Thực nghiệm đã cho
thấy rằng mô hình này có thời gian huấn huyện ít hơn đáng kể so với những mô hình sử

2
dụng mạng nơ-ron tích chập. Z. Li và các đồng nghiệp của mình trong một nghiên cứu
khác mang tên “Text Compression-aided Transformer Encoding” [20] còn đề xuất thêm
phương pháp nén từ cho bộ mã hóa của Transformer để nhằm giúp cho bộ mã hóa có
thể học được sự biểu diễn của ngôn ngữ tốt hơn.

Molham Al‐Maleh và Said Desouki đã đề cập đến việc sử dụng khung sequence-
to-sequence của mô hình encoder-decoder trên ngôn ngữ Ả Rập trong nghiên cứu về
“Arabic text summarization using deep learning approach” [1]. Họ đã xây dựng hai mô
hình, một mô hình bộ nhớ dài-ngắn hạn (LSTM) hai chiều với khung sequence-to-
sequence gồm một bộ mã hóa và một bộ giải mã cùng với cơ chế tập trung và cơ chế
bao phủ, còn mô hình thứ hai sẽ tương tự mô hình đầu nhưng được thêm vào cơ chế sao
chép.

Trong nghiên cứu “A Semantic Relevance Based Neural Network for Text
Summarization and Text Simplification” [2] của Shuming Ma và Xu Sun, họ đã sử dụng
một mô hình thần kinh dựa trên mức độ liên quan về ngữ nghĩa để có thể đạt được độ
tương đồng về ngữ nghĩa cao của văn bản được tóm tắt và văn bản gốc. Trong mô hình
này, văn bản nguồn sẽ được xử lý bởi một bộ mã hóa có kiểm soát nhằm đánh giá mức
độ quan trọng của từng từ và quyết định lượng thông tin cần thiết để biểu đạt nội dung
của văn bản.

Những nghiên cứu trên đều cho ra những kết quả khả quan. Tuy vậy, nó vẫn có
một số hạn chế, thứ nhất đó là vấn đề về về những từ không có trong từ vựng được đề
cập trong nghiên cứu [2]. Nói một cách cụ thể hơn đó là vấn đề về việc từ vựng đó
không xuất hiện trong tập huấn luyện nhưng xuất hiện ở tập thử nghiệm, việc này có
thể làm giảm hiệu suất của mô hình. Hoặc nếu sử dụng hướng tiếp cận như trong nghiên
cứu [16] thì có thể sẽ gặp vấn đề trùng lặp ý, hoặc bỏ lỡ thông tin quan trọng. Một vấn
đề khác đó việc hiệu chỉnh các siêu tham số của mô hình, quá trình này có thể sẽ tốn
nhiều thời gian để đạt được kết quả mong muốn.

5. Kết quả dự kiến đạt được

Chúng tôi mong muốn qua tiểu luận này có thể hiểu hơn về mạng nơ-ron nhân

3
tạo cũng như mạng thần kinh hồi quy và vấn đề xử lý ngôn ngữ tự nhiên. Và thông qua
đó xây dựng một mô hình sử dụng mạng thần kinh hồi quy để có thể tóm tắt văn bản
bằng tiếng Anh.

4
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN TÓM TẮT VĂN BẢN

1.1. Xử lý ngôn ngữ tự nhiên

1.1.1. Giới thiệu

Xử lý ngôn ngữ tự nhiên (Natural language processing - NLP) là một lĩnh vực
trong trí tuệ nhân tạo (Artificial Intelligence - AI). NLP kết hợp ngôn ngữ học tính toán,
thống kê với các mô hình học máy, học sâu. Thông qua các kỹ thuật, công nghệ này,
máy tính sẽ có thể xử lý và hiểu được ngôn ngữ tự nhiên bao gồm cả hàm ý và cảm xúc
như con người.

1.1.2. Các bước xử lý

Phân tích cấu trúc: Xác định các hình vị trong văn bản và phân tách các từ vựng
thành những thành phần nhỏ hơn dựa trên yêu cầu được đặt ra (đoạn văn, câu, từ, kí tự).
Phân tích cú pháp: Kiểm tra chính tả, thứ tự các từ, quan hệ giữa các từ.
Phân tích ngữ nghĩa: Kiểm tra các định nghĩa của từ, cụm từ và câu, và xác định
xem cách từ được sắp xếp trong một câu có ý nghĩa về mặt ngữ nghĩa hay không.
Tích hợp thông tin: Là bước ngữ cảnh hóa - việc phân tích và xác định ngữ cảnh
cho bất kỳ phần nhỏ nào trong cấu trúc ngôn ngữ tự nhiên (ví dụ: một cụm từ, từ hoặc
câu).
Phân tích thực nghĩa: Trừu tượng hóa hoặc trích xuất ý nghĩa từ việc sử dụng
ngôn ngữ, và dịch một văn bản, sử dụng kiến thức được thu thập từ tất cả các bước NLP
khác đã thực hiện trước đó.

1.1.3. Ứng dụng

Xử lý ngôn ngữ tự nhiên là một kỹ thuật cốt lõi đứng sau các ứng dụng thực tiễn
của Machine Intelligence.
Nhận diện thư rác: Các công nghệ phát hiện thư rác tốt nhất quét email bằng khả
năng phân loại văn bản của NLP để tìm ngôn ngữ thường xuyên cho thấy đây là thư rác
hoặc lừa đảo. Những dấu hiệu này có thể bao gồm việc sử dụng lặp lại quá nhiều các

5
thuật ngữ tài chính, sai ngữ pháp, ngôn từ đe dọa, sự khẩn cấp không thích hợp, tên
công ty bị viết sai chính tả và nhiều yếu tố khác.
Dịch máy: Google Translate là một ví dụ về công nghệ dịch máy sử dụng NLP
rộng rãi và sẵn có. Việc dịch hiệu quả phải ý nghĩa và ngữ nghĩa của ngôn ngữ đầu vào
và dịch nó thành văn bản với ý nghĩa, ngữ nghĩa không bị thay đổi ở ngôn ngữ đầu ra.
Các công cụ dịch máy đang dần cải thiện về độ chính xác.
Trợ lý ảo và chatbot: Các trợ lý ảo như Siri của Apple và Alexa của Amazon sử
dụng công nghệ nhận diện giọng nói để nhận biết các mẫu lệnh giọng nói và công nghệ
sinh ngôn ngữ tự nhiên (Natural Language Generation - NLG) để phản hồi với hành
động phù hợp hoặc nhận xét hữu ích.
Phân tích tâm trạng trên các mạng xã hội: NLP đã trở thành một trong những
công cụ kinh doanh cần thiết để khám phá những thông tin ẩn sau các kênh truyền thông
xã hội. Phân tích tâm trạng có thể phân tích ngôn ngữ được sử dụng trong các bài đăng
trên mạng xã hội, các phản hồi, đánh giá, và nhiều nội dung khác để trích xuất thái độ,
cảm xúc và phản ứng đối với sản phẩm, khuyến mãi và sự kiện - thông tin mà các công
ty có thể sử dụng trong thiết kế sản phẩm, chiến dịch quảng cáo và nhiều ứng dụng
khác.
Tóm tắt văn bản: Tóm tắt văn bản sử dụng các kỹ thuật NLP để xử lý một lượng
lớn văn bản và tạo ra bản tóm tắt, bản tóm lược cho độc giả bận rộn không có thời gian
đọc toàn bộ văn bản. Các ứng dụng tóm tắt văn bản tốt nhất sử dụng lập luận ngữ nghĩa
và công nghệ sinh ngôn ngữ tự nhiên (Natural Language Generation - NLG) để thêm
ngữ cảnh và kết luận vào các bản tóm tắt.
1.2. Các kỹ thuật trong xử lý ngôn ngữ tự nhiên

1.2.1. Word embedding

Word Embedding - nhúng từ là một kĩ thuật để biểu diễn từ dưới dạng các
vector số học, nhưng điểm khác biệt đó là đây là các continuous vector và các vector
này có thể học được. Sự tương quan giữa các từ được làm rõ bằng cách sử dụng
continuous vector. Mục tiêu của nhúng từ là biến đổi các từ thành các vector có chiều
thấp, sao cho các từ có ý nghĩa tương tự gần nhau trong không gian vector. Kỹ thuật
này đã đóng một vai trò quan trọng trong nhiều ứng dụng NLP, bao gồm tóm tắt văn

6
bản, dịch máy, phân loại văn bản và nhiều ứng dụng khác. Ví dụ trong câu “I hate bugs
and snakes”, khi đổi chỗ hai từ “bugs” và “snakes” thì câu không thay đổi về mặt ngữ
nghĩa nên hai danh từ này có sự tương quan về mặt ngữ nghĩa và ngữ pháp.

1.2.1.1. Word2Vec

Word2Vec là mô hình thực hiện việc nhúng từ đầu tiên và phổ biến nhất. Nó sử
dụng mạng nơ-ron để học các biểu diễn từ thông qua việc dự đoán từ cụ thể dựa trên
ngữ cảnh xung quanh nó. Word2Vec được giới thiệu bởi Mikolov vào năm 2013 với 2
kiến trúc mạng để học ma trận nhúng từ đó là:
Continuous Bag-Of-Words (CBOW): Bằng cách sử dụng n từ trước và n từ sau
của từ mục tiêu wt cho việc dự đoán. Đó là lý do phương pháp này được gọi là
continuous bag-of-words vì nó sử dụng các từ liên tục mà không quan tâm đến thứ tự
của các từ đó.

Hình 1.1. Phương pháp CBOW

Skip-gram: Ngược lại với CBOW thì SkipGram sẽ đưa vào một từ và dự đoán
các từ xung quanh từ đó. Ví dụ câu "I hate bugs and snakes", từ bối cảnh sẽ là "bugs"
còn các từ mục tiêu là "I", "hate", "and", "snakes" (2 từ trước và 2 từ sau)

7
Hình 1.2. Phương pháp Skip-gram

1.2.1.2. GloVe (Global Vectors for Word Representation)

GloVe (Global Vector) là một trong những phương pháp mới để xây dựng vector
từ (được giới thiệu vào năm 2014), được xây dựng dựa trên Co-occurrence Matrix.
GloVe có bản chất là xác suất, ý tưởng xây dựng phương pháp này đến từ tỉ số sau:
𝑃𝑃(𝑘𝑘|𝑖𝑖)
(1)
𝑃𝑃(𝑘𝑘|𝑗𝑗)

Trong đó, P(k|i) là xác suất xuất hiện của từ k trong ngữ cảnh của từ i , tương tự
với P(k|j). Công thức của P(k|i):
𝑿𝑿𝒊𝒊𝒊𝒊 𝑿𝑿𝒊𝒊𝒊𝒊
𝑃𝑃(𝑘𝑘|𝑖𝑖) = = (2)
𝑿𝑿𝒊𝒊 𝜮𝜮𝒎𝒎 𝑿𝑿𝒊𝒊𝒊𝒊

Trong đó:
𝑿𝑿𝒊𝒊𝒊𝒊 : số lần xuất hiện của từ k trong ngữ cảnh của từ i (hoặc ngược lại).
𝑿𝑿𝒊𝒊 : số lần xuất hiện của từ i trong ngữ cảnh của toàn bộ các từ còn lại ngoại trừ
i.
Ý tưởng chính của GloVe dựa vào độ tương tự ngữ nghĩa giữa hai từ i, j có thể
được xác định thông qua độ tương tự ngữ nghĩa giữa từ k với mỗi từ i, j. Những từ k có
tính xác định ngữ nghĩa tốt chính là những từ khi tính theo công thức (1) ra được kết
quả là 1 hoặc xấp xỉ bằng 1. Ví dụ, nếu i là “ice”, j là “steam” và k là “solid” thì (1) sẽ
khá lớn do “solid” có nghĩa gần hơn với “ice” hơn là “steam”, ở trường hợp khác, nếu

8
ta thay k là “water” thì (1) sẽ xấp xỉ bằng 1 do “water” có liên quan đến cả 2 từ “ice” và
“steam”.

1.2.1.3. FastText

Trong word2vec, ta không trực tiếp sử dụng thông tin hình thái học
(morphology). Trong cả mô hình skip-gram và CBOW, ta sử dụng các vector khác nhau
để biểu diễn một từ ở các trạng thái khác nhau. Chẳng hạn, hai từ “cat” và “cats” được
biểu diễn bởi hai vector khác nhau, mặc dù mối quan hệ giữa chúng không được biểu
thị trực tiếp trong mô hình. Chính vì thế, FastText được ra đời như một phương thức
embedding từ con (subword embedding), thông qua việc thực hiện đưa thông tin hình
thái học vào trong mô hình skip-gram trong word2vec.
Dưới đây ta sử dụng từ “home” làm ví dụ để hiểu cách các từ tố được tạo thành.
Trước hết, ta sử dụng các ký tự đặc biệt “<” và “>” vào phần bắt đầu và kết thúc của từ
để phân biệt các từ con được dùng làm tiền tố và hậu tố. Rồi ta sẽ xem từ này như một
chuỗi các ký tự để trích xuất n-grams. Chẳng hạn, khi n = 3, ta có thể nhận tất cả từ tố
với chiều dài là 3:
“<ho” , ”hom” , ”ome” , “me>” và từ con đặc biệt "<home>"
Trong FastText, với một từ 𝒘𝒘, ta ghi tập hợp của tất cả các từ con của nó với
chiều dài từ 3 đến 6 và các từ con đặc biệt là 𝑮𝑮𝒘𝒘 . Do đó, từ điển này là tập hợp các
từ con của tất cả các từ. Giả sử vector của từ 𝒈𝒈 trong từ điển này là 𝒛𝒛𝒈𝒈 . Thì vector từ
trung tâm 𝒖𝒖𝒘𝒘 cho từ 𝑤𝑤 trong mô hình skip-gram có thể biểu diễn là:

𝑢𝑢𝑤𝑤 = ∑𝑔𝑔∈𝐺𝐺𝑤𝑤 𝑧𝑧𝑔𝑔

1.2.2. Tokenization

Tokenization (tách từ) là một trong những bước quan trọng nhất trong quá trình
tiền xử lý văn bản. Quá trình này bao gồm việc phân tách một cụm từ, câu, đoạn văn,
một hoặc nhiều tài liệu văn bản thành các đơn vị nhỏ hơn gọi là Tokens.
Tokens là các khối xây dựng cơ bản của NLP và tất cả các mô hình NLP đều xử
lý văn bản thô ở cấp độ các Tokens . Chúng được sử dụng để tạo từ vựng trong một kho

9
ngữ liệu (một tập dữ liệu trong NLP). Tokens có thể là bất cứ thứ gì – một từ (word),
một từ phụ (sub-word) hoặc thậm chí là một ký tự (character).

1.2.2.1. Word-based Tokenization

Đây là phương pháp tách từ phổ biến nhất được sử dụng trong xử lý ngôn ngữ tự
nhiên. Phương pháp này chia một đoạn văn bản thành các từ dựa trên một ký tự phân
cách. Ký tự phân cách phổ biến nhất là dấu cách. Ta cũng có thể tách văn bản của mình
bằng nhiều hơn một ký tự phân cách, chẳng hạn như dấu cách và dấu câu. Tùy thuộc
vào ký tự phân cách bạn sử dụng, bạn sẽ nhận được Token ở mức độ từ khác nhau.

Hạn chế của kỹ thuật này là nó dẫn đến một kho dữ liệu ngôn ngữ khổng lồ và
một lượng từ vựng lớn, khiến mô hình chậm chạp hơn và đòi hỏi nhiều tài nguyên tính
toán hơn. Bên cạnh đó, một hạn chế nữa là liên quan đến các từ sai chính tả. Nếu kho
ngữ liệu có từ “knowledge” viết sai chính tả thành “knowldge”, mô hình sẽ gán token
cho từ đã sai chính tả. Do đó, để giải quyết những vấn đề này, các nhà nghiên cứu đã
đưa ra kỹ thuật mã hóa dựa trên ký tự.

1.2.2.2. Character-based Tokenization

Kỹ thuật này dựa trên việc chia văn bản gốc thành các ký tự riêng lẻ. Ngôn ngữ
có nhiều từ khác nhau nhưng chỉ có một số lượng ký tự cố định. Dẫn đến một từ vựng
rất nhỏ. Do đó, mã hóa dựa trên ký tự sẽ sử dụng ít Token hơn so với mã hóa dựa trên
từ.
Một trong những lợi thế chính của mã hóa dựa trên ký tự là sẽ không có hoặc rất
ít từ không xác định. Do đó, nó có thể biểu diễn các từ chưa biết (những từ không được
nhìn thấy trong quá trình huấn luyện) bằng cách biểu diễn cho mỗi ký tự. Một ưu điểm
khác là các từ sai chính tả có thể được viết đúng chính tả lại. Mặc dù kỹ thuật này khá
đơn giản và có thể làm giảm độ phức tạp của bộ nhớ và thời gian nhưng nó không phải
là thuật toán tối ưu nhất trong việc tách từ. Bởi vì với mỗi từ được chia thành từng ký
tự thì chuỗi mã hóa có thể trở nên dài hơn nhiều so với văn bản thô ban đầu.

10
1.2.2.3. Subword-based Tokenization

Một kỹ thuật phổ biến khác là mã hóa dựa trên từ khóa phụ. Đây là một giải pháp
kết hợp giữa Word-based và Character-based. Kỹ thuật này được dựa trên 2 nguyên tắc:
“Không chia các từ thường dùng thành các từ phụ nhỏ hơn” và “Chia các từ hiếm thành
các từ phụ có ý nghĩa”.
Hầu hết các mô hình tiếng Anh đều sử dụng các dạng thuật toán của mã hóa từ
phụ, trong đó, phổ biến là WordPeces được sử dụng bởi BERT và DistilBERT, Unigram
của XLNet và ALBERT, và Bye-Pair Encoding của GPT-2 và RoBERTa.
Mã hóa dựa trên từ khóa phụ cho phép mô hình có kích thước từ vựng phù hợp và
cũng có thể học các biểu diễn độc lập theo ngữ cảnh có ý nghĩa. Mô hình thậm chí có
thể xử lý một từ mà nó chưa từng thấy trước đây vì sự phân tách có thể dẫn đến các từ
phụ đã biết.
1.3. Bài toán tóm tắt văn bản

1.3.1. Khái niệm của bài toán tóm tắt văn bản

Tóm tắt văn bản là việc tạo ra một bản tóm tắt ngắn bao gồm một số câu có thể
nắm bắt được ý tưởng của toàn đoạn văn bản. Vượt qua được bài toán này có thể giúp
ta hiểu hơn về ngôn ngữ tự nhiên. Không những thế, một văn bản tóm tắt được làm tốt
có thể giúp ta nắm bắt được nội dung chính của văn bản chỉ trong thời gian ngắn.

1.3.2. Thách thức trong bài toán

Một trong những thách thức lớn nhất của việc tóm tắt văn bản đó là tối ưu hóa
việc rút gọn các câu từ sao cho các ý tưởng chính của văn bản gốc vẫn được giữ nguyên.
Điều khiến cho việc này trở nên khó khăn và việc xác định đâu mới là thông tin quan
trọng cần được giữ lại và đâu là thông tin không quan trọng có thể được lược bỏ. Những
lĩnh vực khác nhau có cách xác định thông tin nào là quan trọng khác nhau, và đối tượng
của văn bản tóm tắt cũng tương tự như thế. Do đó nó sẽ phải phụ thuộc rất nhiều vào
lĩnh vực của văn bản gốc, đối tượng của văn bản tóm tắt cũng như mục tiêu của việc
tóm tắt.

11
1.4. Phân loại các phương pháp tóm tắt văn bản

Dựa trên một số yêu cầu về đầu vào, đầu ra cũng như mục đích mà bài toán tóm
tắt văn bản có thể được chia làm nhiều loại:

Hình 1.3. Phân loại các phương pháp tóm tắt văn bản

Dựa trên dữ liệu đầu vào, ta có Single-Document (đầu vào có độ dài ngắn) và
Multi-Document (đầu vào có độ dài tùy ý).

Dựa trên mục đích tóm tắt, ta có Generic (mô hình không đưa ra một giả định
nào về lĩnh vực cũng như nội dung của văn bản được tóm tắt, nó sẽ xem tất cả đầu vào
là thống nhất), Domain-specific (mô hình sử dụng kiến thức riêng của từng lĩnh vực để
có thể cho ra được một bản tóm tắt chính xác hơn) và Query-based (văn bản tóm tắt chỉ
chứa thông tin trả lời bằng ngôn ngữ tự nhiên cho văn bản đầu vào).

Dựa trên dữ liệu đầu ra ta có 2 loại, đó là Extractive và Abstractive.

Đối với tiểu luận này, phương pháp chúng tôi sử dụng cho mô hình của mình nếu
dựa theo dữ liệu đầu vào sẽ là Multi-Document, và nếu theo dữ liệu đầu ra thì nó sẽ là
Abstractive.

Việc tóm tắt văn bản theo phân loại dựa trên dữ liệu đầu ra sẽ được đề cập chi
tiết hơn ở các phần tiếp theo.

1.4.1. Extractive text summarization

Việc tóm tắt văn bản sẽ chủ yếu được chia ra làm hai loại chính dựa trên dữ liệu

12
đầu ra như đã đề cập ở phần trên. Trong đó cách tiếp cận đầu tiên đầu tiên là Extractive
text summarization (ETS), cách tiếp cận này sẽ chọn các câu và cụm từ từ đoạn văn bản
gốc sau đó kết hợp chúng lại và tạo ra một văn bản tóm tắt hoàn chỉnh, mạch lạc.

Quy trình của Extractive text summarization có thể tóm tắt như sau:

Văn bản đầu vào → độ tương tự của các câu → đánh giá mức độ quan trọng của
các câu → lựa chọn các câu với level đánh giá cao.

Tuy nhiên làm thế nào để xác định được câu, cụm từ nào trong văn bản gốc sẽ
được giữ lại để tạo văn bản tóm tắt? Để giải quyết được vấn đề này, ta cần dùng một
một số thuật toán để có thể gán điểm số cho câu. Điểm số này sẽ biểu thị độ quan trọng
của một đoạn văn bản so với ý nghĩa toàn cục của cả bài. Cuối cùng, những câu được
đánh giá điểm cao nhất sẽ được chọn để tạo văn bản tóm tắt.

ETS dễ thực hiện hơn và nó bám sát với văn bản gốc hơn, tuy nhiên nó thể tạo
ra đoạn văn bản tóm tắt bị lặp, không được mạch lạc, hoặc cũng có thể bỏ qua một số
thông tin quan trọng.

Một số thuật toán đánh giá độ quan trọng có thể kể đến như:

1.4.1.1. TF-IDF

TF-IDF là viết tắt của Term frequency-Inverse document frequency (tần số thuật
ngữ - tuần số tài liệu nghịch đảo), nó là thước đo được sử dụng trong lĩnh vực truy xuất
thông tin và học máy. Nó có thể định lượng được mức độ quan trọng của một từ, một
cụm từ, một câu,… trong một bộ tài liệu giữa một tập hợp các bộ tài liệu. TF-IDF có
thể được chia làm hai phần là TF và IDF.

Đầu tiên là TF, đây là tần suất tương đối của thuật ngữ t trong tài liệu d được tính
theo công thức:

𝑓𝑓𝑡𝑡,𝑑𝑑
𝑇𝑇𝑇𝑇(𝑡𝑡, 𝑑𝑑) =
𝛴𝛴𝑡𝑡′ 𝜖𝜖 𝑑𝑑 𝑓𝑓𝑡𝑡′,𝑑𝑑

13
Trong đó 𝑓𝑓𝑡𝑡,𝑑𝑑 là số lần xuất hiện của thuật ngữ đó xuất hiện trong tài liệu. Còn
mẫu số có thể hiểu đơn giản là tổng số lượng thuật ngữ xuất hiện trong tài liệu.

Ngoài cách tính trên, vẫn còn một số cách tính khác để xác định TF như:

Đếm số lần xuất hiện của thuật ngữ trong tài liệu: 𝑇𝑇𝑇𝑇(𝑡𝑡, 𝑑𝑑) = 𝑓𝑓𝑡𝑡,𝑑𝑑

Tần số boolean: trả về 1 nếu thuật ngữ có trong tài liệu, ngược lại trả về 0

Tần số theo logarit: 𝑇𝑇𝑇𝑇(𝑡𝑡, 𝑑𝑑) = 𝑙𝑙𝑙𝑙𝑙𝑙(1 + 𝑓𝑓𝑡𝑡,𝑑𝑑 )

Tiếp đến là IDF, nó sẽ xem xét mức độ phổ biến của một từ trong kho văn bản.
IDF được tính theo công thức:

𝑁𝑁
𝐼𝐼𝐼𝐼𝐼𝐼(𝑡𝑡, 𝐷𝐷) = 𝑙𝑙𝑙𝑙𝑙𝑙( )
|{𝑑𝑑 𝜖𝜖 𝐷𝐷: 𝑡𝑡 𝜖𝜖 𝑑𝑑}|

Trong đó t là thuật ngữ mà ta cần đánh giá và N là số lượng tài liệu trong kho tài
liệu. Mẫu số có thể hiểu đơn giản là số lượng tài liệu có xuất hiện t.

Kết hợp cả hai lại với nhau ta sẽ được TF-IDF với công thức:

𝑇𝑇𝑇𝑇 𝐼𝐼𝐼𝐼𝐼𝐼(𝑡𝑡, 𝑑𝑑, 𝐷𝐷) = 𝑇𝑇𝑇𝑇(𝑡𝑡, 𝑑𝑑) × 𝐼𝐼𝐼𝐼𝐼𝐼(𝑡𝑡, 𝐷𝐷)

Kết quả của TF-IDF sẽ cao nếu TF đạt giá trị cao và IDF đạt giá trị thấp, cũng
tức là độ quan trọng của thuật ngữ sẽ cao nếu tần suất của thuật ngữ trong tài liệu cao
và tần suất của tài liệu chứa thuật ngữ đó thấp trong toàn bộ tập hợp các tài liệu.

1.4.1.2. Sentence weight algorithm

Thuật toán trọng số câu là một phương pháp thống kê, trong đó mỗi câu sẽ được
gán một trọng số hoặc một thứ hạng cụ thể để quyết định việc liệu có nên đưa nó vào
văn bản tóm tắt hay không.

Để có thể bắt đầu vào các bước của thuật toán, ta cần làm rõ hai khái niệm sau.
Đầu tiên là stop words, đây là những từ nhỏ, đơn giản, không có ý nghĩa cụ thể nào

14
trong câu. Nếu bỏ đi các stop words thì vẫn có thể hiểu được nội dung của câu. Tiếp
đến đó là content words, đây là những từ có nghĩa trong câu thay vì chỉ là những từ
được dùng làm cú pháp, bổ trợ nghĩa. Content words thường là các danh từ, động từ
chính, tính từ và trạng từ.

Các bước của thuật toán trọng số câu:

Bước 1: Tính tổng số từ trong câu.

Bước 2: Tìm số lượng stop words.


Bước 3: Tìm số lượng content words: 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤 =
𝑇𝑇ổ𝑛𝑛𝑛𝑛 𝑠𝑠ố 𝑡𝑡ừ − 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤
Bước 4: Tính trọng số của câu: 𝑆𝑆𝑆𝑆 = × 100
𝑇𝑇ổ𝑛𝑛𝑛𝑛 𝑠𝑠ố 𝑡𝑡ừ

Bước 5: Sắp xếp lại câu theo thứ tự trọng số giảm dần.
Bước 6: Lấy k câu đầu từ những câu vừa sắp xếp.

1.4.1.3. Word Frequency Algorithm

Thuật toán tần số từ là một thuật toán đơn giản nhằm xác định và chọn ra các câu
quan trọng trong văn bản gốc dựa vào tần suất xuất hiện của các từ.

Các bước của thuật toán tần số từ:

Bước 1: Tiền xử lý văn bản, ở bước này văn bản gốc sẽ được lược bỏ các stop
words, các dấu câu, các ký tự đặc biệt cũng như chuẩn hóa lại văn bản.
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤
Bước 2: Tính tần suất từ theo công thức: 𝑊𝑊𝑊𝑊 =
𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜 𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤

Trong đó:

𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤 là tần suất của từ hiện tại đang được tính.


𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜 𝑤𝑤𝑤𝑤𝑤𝑤𝑤𝑤 là tần suất của từ xuất hiện nhiều nhất trong văn bản.
Bước 3: Chấm điểm cho câu theo công thức: 𝑆𝑆𝑆𝑆 = ∑𝑛𝑛1 𝑊𝑊𝑊𝑊 , với n là số từ
trong câu.

15
Bước 4: Sắp xếp lại trọng số theo thứ tự giảm dần.
Bước 5: Lấy k câu đầu từ những câu vừa sắp xếp.

1.4.1.4. TextRank algorithm

TextRank là thuật toán xếp hạng dựa trên đồ thị tương tự như thuật toán
PageRank của Google. TextRank thường được dùng để trích xuất các từ khóa, xếp hạng
cụm từ cũng như tóm tắt văn bản.

Các bước hoạt động chính của TextRank bao gồm:

Bước 1: Trích xuất tất cả các câu từ văn bản bằng cách tách chúng ra theo dấu
chấm hoặc dấu phẩy.
Bước 2: Tạo biểu đồ dựa trên các câu từ bước 1. Trong đó các nút đại diện cho
các câu và liên kết giữa các nút dựa trên sự tương tác của các câu trong văn bản.
Bước 3: Sử dụng thuật toán tương tự như PageRank để xác định tầm quan trọng
của các nút.
Bước 4: Sắp xếp lại các câu theo thứ tự giảm dần của điểm số có được từ bước
3 và lấy ra k câu đầu tiên.

1.4.2. Abstractive text summarization

Cách tiếp cận tiếp theo chính là Abstractive text summarization (ATS), nó sẽ cho
ra được một đoạn tóm tắt giống người viết hơn, không bị bó buộc quá nhiều vào các
cụm từ trong văn bản gốc như cách tiếp cận ETS.

Quy trình của Abstractive text summarization có thể tóm tắt như sau:

Văn bản đầu vào → hiểu nội dung → phân tích về mặt ngữ nghĩa → tạo văn
bản tóm tắt.

Khác với ETS, nó không lựa chọn những câu quan trọng, thay vào đó nó sẽ phân
tích văn bản nhận được và tạo ra các câu từ mới có độ dài ngắn hơn để biểu thị ý nghĩa
của đoạn văn bản gốc. Những vấn đề được đặt ra là, làm thế nào để nó có thể tạo một
đoạn văn bản mới từ đoạn văn bản gốc? Vấn đề này có thể được giải quyết nhờ vào

16
mạng thần kinh nhân tạo. Chúng ta có thể dùng mạng thần kinh nhân tạo huấn luyện
một mô hình trên một tập dữ liệu đủ lớn để có thể hiểu được mối quan hệ giữa các từ
và các câu, từ đó có thể tạo ra một đoạn văn bản mới ngắn hơn nhưng vẫn bao hàm nội
dung chính của đoạn văn bản gốc.

Cách tiếp cận này khó hơn nhiều so với ETS, tuy nó linh hoạt hơn so với ETS
nhưng nó vẫn có thể gặp trình trạng sai ngữ pháp hoặc đoạn văn bản tóm tắt không liên
quan đến văn bản gốc.

1.5. Phương pháp đánh giá ROUGE

ROUGE (Recall-Oriented Understudy for Gisting Evaluation) là một tập hợp các
số liệu được dùng để đánh giá mô hình khởi tạo ngôn ngữ (tóm tắt văn bản hoặc dịch
văn bản). ROUGE được dựa trên việc đo lường những điểm giống nhau giữa văn bản
được tạo ra bởi model và văn được được tạo ra từ con người.

1.5.1. ROUGE-N

ROUGE-N đo lường sự trùng lặp giữa n-grams trong văn bản cần đánh giá và
văn bản được tham chiếu để đánh giá. Trong đó n-grams là một tập hợp n từ, số, ký hiệu
hoặc dấu câu liên tiếp trong tài liệu văn bản.

ROUGE-N có công thức tính như sau:

𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 − 𝑁𝑁
∑𝑟𝑟𝑖𝑖 𝜖𝜖 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 ∑𝑛𝑛−𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔 𝜖𝜖 𝑟𝑟𝑖𝑖 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑛𝑛 − 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔, 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐)
=
∑𝑟𝑟𝑖𝑖 𝜖𝜖 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛(𝑟𝑟𝑖𝑖 )

Trong đó:

𝑟𝑟𝑖𝑖 là một câu trong đoạn văn bản.


𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶(𝑛𝑛 − 𝑔𝑔𝑔𝑔𝑔𝑔𝑔𝑔, 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐) là số lần nhân tố n-gram xuất hiện trong văn
bản tóm tắt của máy.
numNgram(ri) là số lần nhân tố n-gram xuất hiện trong câu ri.

17
1.5.2. ROUGE-L

ROUGE-L đo lường độ trùng lặp dựa trên độ dài chuỗi chung dài nhất của văn
bản cần được đánh giá và văn bản được tham chiếu.

Để có thể tính được ROUGE-L, ta cần tính recall và precision trước:

𝐿𝐿𝐿𝐿𝐿𝐿(𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟)
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 =
𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛(𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟)

𝐿𝐿𝐿𝐿𝐿𝐿(𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟)
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 =
𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛(𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐)

Trong đó:

LCS là độ dài của chuỗi con chung dài nhất giữa văn bản cần đánh giá và văn
bản được tham chiếu.
𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛(𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟) là số lượng từ trong văn bản được tham chiếu,
𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛(𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐) là số lượng từ trong văn bản cần được đánh giá.

Công thức tính của ROUGE-L như sau:

(1 + 𝛽𝛽 2 ) × 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 × 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 − 𝐿𝐿 =
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 + 𝛽𝛽 2 × 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃

Với 𝛽𝛽 = 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃
𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅

1.5.3. ROUGE-W

ROUGE-W đo lường độ tương tự của văn bản cần đánh giá và văn bản được
tham chiếu thông qua chuỗi con chung dài nhất liên tiếp.

Giả sử ta có ba chuỗi sau:

S1: “A B C D E F G”

S2: “A B C D H I K”
18
S3: “A T B V C O D”

Trong đó S1 là chuỗi được tham chiếu, S2 và S3 là hai chuỗi cần được đánh giá.
Các chữ cái “A”, “B,”, “C”,… được xem là một từ. Có thể thấy rằng, S2 và S3 có chung
điểm ROUGE-L. Nhưng trong trường hợp này S2 lại là một sự lựa chọn tốt hơn nếu so
với S3. Đó là lý do phương pháp đánh giá ROUGE-W ra đời, đối với ROUGE-W, điểm
của chuỗi S2 sẽ cao hơn so với S3 vì chuỗi S2 có các từ trùng nhau liên tiếp còn S3 bị
đứt đoạn nếu so với S1.

1.5.4. ROUGE-S

ROUGE-S dựa trên thống kê sự xuất hiện của skip-bigram, trong đó bigram là
n-grams với n bằng 2. Nó đo lường độ trùng lặp của các từ không liên tiếp trong văn
bản cần được đánh giá, được phân tách bởi một hoặc nhiều từ, so với văn bản được
tham chiếu.

Giả sử ta có hai chuỗi tóm tắt: S1: “The cat is on the mat.” và S2: “The gray cat
and the dog.”

Trong đó S1 là chuỗi cần đánh giá và S2 là chuỗi được tham chiếu. Lúc này nếu
chúng ta xem bigram là “the cat”, thì đối với ROUGE-2 nó sẽ tìm kiếm chính xác “the
cat” trong S2. Tuy nhiên đối với ROUGE-S thì “the gray cat” vẫn sẽ được chấp nhận là
giống với “the cat”.

1.5.5. ROUGE-SU

ROUGE-SU là một bản mở rộng của ROUGE-S. Nó tương tự như ROUGE-S


nhưng nó sẽ đếm thêm cả các unigram, trong đó unigram là n-grams với n bằng 1.

19
CHƯƠNG 2: TỔNG QUAN VỀ THUẬT TOÁN

2.1. Mạng Nơ-ron nhân tạo (ARTIFICIAL NEURAL NETWORKS)

2.1.1. Mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo (ANNs) là một nhánh của machine learning và là phần cốt
lõi của các thuật toán về deep learning.

Ý tưởng về mạng nơ-ron nhân tạo được lấy từ cách thức hoạt động của bộ não
con người, cụ thể hơn là cách mà các tế bào thần kinh của não truyền tính hiệu cho nhau.

2.1.2. Thành phần của mạng nơ-ron nhân tạo

Mạng nơ-ron nhân tạo bao gồm nhiều lớp, một lớp đầu vào, một hoặc nhiều lớp
ẩn và một lớp đầu ra. Mỗi lớp có thể chỉ có vài nút, hoặc cũng có thể có cả triệu nút, tùy
thuộc vào yêu cầu của mạng cho việc tìm hiểu tập dữ liệu.

Mỗi nút trong các lớp, hay còn có thể xem là một nơ-ron nhân tạo, được kết nối
với nhau và mang những trọng số và ngưỡng có liên quan. Nếu như kết quả đầu ra của
nút cao hơn ngưỡng được chỉ định thì nút đó sẽ được được kích hoạt và truyền dữ liệu
đến cho lớp tiếp theo. Ngược lại, nếu dữ liệu đầu ra của nút không đạt được ngưỡng
định thì sẽ không có dữ liệu nào được truyền đi.

20
Hình 2.1. Mô hình một mạng nơ-ron nhân tạo với hai lớp ẩn

Cách thức hoạt động của mạng nơ-ron nhân tạo có thể hiểu đơn giản như sau.
Đầu tiên lớp đầu vào sẽ nhận dữ liệu, sau đó chuyển qua cho những lớp ẩn. Lớp ẩn nhận
dữ liệu từ lớp đầu vào, mỗi nơ-ron sẽ thực hiện các phép tính toán cần thiết và gửi dữ
liệu đến các nơ-ron ở lớp tiếp theo để cuối cùng có thể ra được kết quả ở lớp đầu ra.

2.2. Mạng Học Sâu (Deep Learning)

2.2.1. Khái niệm

Deep learning là một nhánh của machine learning, về cơ bản nó là mạng nơ-ron
nhân tạo có nhiều lớp. Đây là công nghệ then chốt phía sau xe tự lái, các trợ lý ảo, phát
hiện gian lận thẻ tín dụng,…

2.2.2. Các hàm kích hoạt

Các hàm kích hoạt sẽ nắm quyền quyết định liệu nút đó có hoạt động hay không.
Điều này cũng đồng nghĩa với việc nó nắm quyền quyết định liệu rằng thông tin của nút
đó có quan trọng đối với quá trình xử lý của mạng thần kinh hay không, nhờ thế mà
mạng có thể học được những mẫu phức tạp trong dữ liệu đầu vào.

21
Để có thể làm được điều đó, các hàm kích hoạt sẽ thêm vào một bước bổ sung ở
mỗi lớp trong quá trình lan truyền thông tin. Điều này mang ý nghĩa hết sức quan trọng.
Giả sử mạng của ta không có các hàm kích hoạt, lúc này mọi nơ-ron trong mạng của ta
sẽ chỉ thực hiện các phép biến đổi tuyến tính trên dữ liệu vào sử dụng các trọng số và
độ lệch. Điều này vô hình chung đã khiến cho mạng của chúng ta trở thành một mô hình
hồi quy tuyến tính. Vì độ sâu của mạng không còn quan trọng nữa, các lớp đều hoạt
động như nhau, mà tổ hợp của hai mô hình hồi quy tuyến tính thì cũng chỉ cho ra được
một mô hình hồi quy tuyến tính.

Tuy việc bỏ các hàm kích hoạt hoặc sử dụng các hàm kích hoạt tuyến tính sẽ
khiến cho mô hình của chúng ta trở thành một mô hình tuyến tính, một số trường hợp
ta vẫn sẽ cần tới các hàm kích hoạt tuyến tính. Tuy nhiên các hàm kích hoạt ở các lớp
ẩn vẫn bắt buộc là các hàm phi tuyến tính.

Đầu tiên, đó là hàm sigmoid, hàm kích hoạt này sẽ nhận giá trị đầu vào là một
số thực và trả về giá trị nằm trong khoảng [0, 1]. Chính vì phạm vi đầu ra như thế nên
nó rất thích hợp cho việc sử dụng để dự đoán xác suất do xác suất của một việc cũng ở
phạm vi từ 0 tới 1. Tuy nhiên, nó có thể gây ra hiện tượng vanishing gradient. Công
thức của hàm sigmoid như sau:

1
𝑓𝑓(𝑥𝑥) =
1 + 𝑒𝑒 −𝑥𝑥

Hình 2.2. Đồ thị của hàm Sigmoid

22
Hàm kích hoạt tiếp theo là hàm tanh, hàm này khá tương đồng với hàm sigmoid,
đều có dạng đồ thị hình chữ S và nhận giá trị đầu vào là một số thực. Tuy nhiên hàm
tanh lại có giá trị đầu ra trong phạm vi từ [-1, 1]. Hàm tanh giúp việc tập trung dữ liệu
tốt hơn và khiến cho việc học ở lớp tiếp theo dễ dàng hơn. Tuy vậy hàm tanh vẫn có thể
gặp vấn đề vanishing gradient tương tự như hàm sigmoid. Tuy cả hai hàm kích hoạt đều
gặp vấn đề vanishing gradient, nhưng hàm tanh lại được ưu tiên hơn hàm sigmoid do
tanh có thể lấy được nhiều giá trị hơn hàm sigmoid, ngoài ra nó cũng giải quyết được
vấn đề bất đối xứng qua 0 của sigmoid. Công thức của hàm tanh như sau:

𝑒𝑒 𝑥𝑥 − 𝑒𝑒 −𝑥𝑥
𝑓𝑓(𝑥𝑥) = 𝑥𝑥
𝑒𝑒 + 𝑒𝑒 −𝑥𝑥

Hình 2.3. Đồ thị của hàm Tanh

Một hàm kích hoạt khác đó là hàm ReLU, hàm kích hoạt này giá trị đầu ra trong
khoảng [0, +inf], cũng có thể hiểu đơn giản là hàm ReLU sẽ lọc các giá trị đầu vào bé
hơn 0. Mặc dù tên của hàm khiến ta có cảm giác đây là một hàm tuyến tính, tuy nhiên
thực tế lại không phải như vậy. Vì hàm tính toán của ReLU khá đơn giản nên tốc độ
tính toán của nó sẽ nhanh hơn nhiều so với các hàm như sigmoid hoặc tanh. Ngoài ra
hàm ReLU cũng sẽ tránh được hiện tượng vanishing gradient của hàm sigmoid và hàm
tanh. Tuy nhiên nó lại gặp một hiện tượng khác là Dying ReLU. Công thức của hàm
ReLU như sau:

23
𝑓𝑓(𝑥𝑥) = 𝑚𝑚𝑚𝑚𝑚𝑚(0, 𝑥𝑥)

Hình 2.4. Đồ thị của hàm ReLU

Nhằm giải quyết vấn đề Dying ReLU, ta có thể sử dụng hàm kích hoạt Leaky
ReLU. Hàm kích hoạt này là một sự nâng cấp của hàm ReLU, bằng cách thêm vào một
hệ số nhỏ khi x bé hơn 0, nó có thể giải quyết được vấn đề Dying ReLU. Hàm Leaky
ReLU có các lợi ích tương tự với làm ReLU thông thường, ngoài ra nó còn cho phép
lan truyền ngược. Công thức của hàm Leaky ReLU như sau:

𝑓𝑓(𝑥𝑥) = 𝑚𝑚𝑚𝑚𝑚𝑚(0.01𝑥𝑥, 𝑥𝑥)

Hình 2.5. Đồ thị của hàm Leaky ReLU

24
2.2.3. Lan truyền trong mạng nơ-ron

2.2.3.1. Biểu diễn mạng nơ-ron bằng ma trận

Để có thể dễ dàng hơn trong việc tìm hiểu về cách lan truyền của mạng nơ-ron,
trước tiên ta cần tìm hiểu về cách biểu diễn mạng nơ-ron bằng ma trận. Giả sử ta có
mạng sau:

Hình 2.6. Mạng nơ-ron đơn giản với hai lớp ẩn

Trong đó lớp đầu vào sẽ có 3 nút, lớp ẩn gồm 2 lớp, mỗi lớp bao gồm 2 nút, các
giá trị w chính là trọng số tương ứng của các nút, và b chính là độ lệch tương ứng.

Xét hai lớp là lớp đầu vào và lớp ẩn thứ nhất. Gọi f là hàm kích hoạt lớp ẩn đầu
tiên, khi này ta có kết quả của các nút ở lớp đầu tiên là:

𝑎𝑎2 [1] = 𝑓𝑓(𝑤𝑤11 × 𝑎𝑎1 [1] + 𝑤𝑤21 × 𝑎𝑎1 [2] + 𝑤𝑤31 × 𝑎𝑎1 [3] + 𝑏𝑏1 )

𝑎𝑎2 [2] = 𝑓𝑓(𝑤𝑤12 × 𝑎𝑎1 [1] + 𝑤𝑤22 × 𝑎𝑎1 [2] + 𝑤𝑤32 × 𝑎𝑎1 [3] + 𝑏𝑏1 )

Có thể thấy cách tính trên, không kể đến hàm kích hoạt và độ lệch, khá tương tự
với việc nhân hai ma trận. Trong đó kết quả là một ma trận 2x1 được tạo từ việc nhân
một ma trận 1x3 tương ứng với các nút ở lớp đầu vào, với một ma trận 3x2 tương ứng
với các trọng số. Ta có thể biểu diễn lại như sau:

25
Từ kết quả trên, gọi ma trận của trọng số tương ứng là W, ma trận của các nút
lớp đầu vào là 𝐴𝐴1 , ta có thể biểu diễn lại cho kết quả của lớp ẩn thứ nhất như sau:

𝐴𝐴2 = 𝑓𝑓(𝑊𝑊 × 𝐴𝐴1 + 𝑏𝑏1 )

Trong đó A2 là ma trận kết quả của lớp ẩn thứ nhất. Với trường hợp tổng quát
hơn, nếu lớp đầu vào của ta có n nút và lớp ẩn đầu tiên có m nút như hình bên dưới:

Hình 2.7. Tổng quát hóa hai lớp của mạng với nhiều nút

Khi này ta vẫn có thể dùng công thức như trên, tuy nhiên lúc này, W sẽ là một
ma trận mxn còn 𝐴𝐴1 là một ma trận 1xn.

2.2.3.2. Lan truyền xuôi (Forward Propagation)

Lan truyền xuôi, đúng như tên gọi, là quá trình dữ liệu được truyền qua mạng
theo chiều xuôi để tạo ra đầu ra. Trong quá trình đó, dữ liệu sẽ được các lớp ẩn tiếp
nhận, xử lý theo các hàm kích hoạt và chuyển sang lớp kế tiếp. Giả sử ta có mạng sau:

26
Hình 2.8. Quá trình lan truyền xuôi của mạng nơ-ron

Dựa trên cách biểu diễn mạng bằng ma trận đã trình bày ở mục trên, ta có thể
biểu diễn lại kết quả của từng tầng như sau:

𝐴𝐴2 = 𝑓𝑓2 (𝑊𝑊1 × 𝐴𝐴1 + 𝑏𝑏1 )

𝐴𝐴3 = 𝑓𝑓3 (𝑊𝑊2 × 𝐴𝐴2 + 𝑏𝑏2 )

𝐴𝐴4 = 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 = 𝑓𝑓4 (𝑊𝑊3 × 𝐴𝐴3 + 𝑏𝑏3 )

Trong đó 𝑊𝑊1 , 𝑊𝑊2 , 𝑊𝑊3 là ma trận trọng số của lớp thứ i tương ứng với lớp kế tiếp.

Và tương tự như trên, với trường hợp tổng quát là mạng có n lớp ẩn, 1 lớp đầu
vào và 1 lớp đầu ra thì ta có giá trị của các lớp tương ứng như sau:

𝐴𝐴2 = 𝑓𝑓2 (𝑊𝑊1 × 𝐴𝐴1 + 𝑏𝑏1 )

𝐴𝐴𝑖𝑖 = 𝑓𝑓𝑖𝑖 (𝑊𝑊𝑖𝑖−1 × 𝐴𝐴𝑖𝑖−1 + 𝑏𝑏𝑖𝑖−1 ) 𝑣𝑣ớ𝑖𝑖 𝑖𝑖 𝜖𝜖 [2, 𝑛𝑛]

𝐴𝐴𝑛𝑛+1 = 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂 = 𝑓𝑓𝑛𝑛+1 (𝑊𝑊𝑛𝑛 × 𝐴𝐴𝑛𝑛 + 𝑏𝑏𝑛𝑛 )

Đến đây, vấn đề được đặt ra là làm sao có thể chọn được trọng số phù hợp. Lan
truyền ngược có thể giải quyết được vấn đề này. Nội dung cụ thể về lan truyền ngược

27
sẽ được đề cập chi tiết hơn ở phần tiếp theo.

2.2.3.3. Lan truyền ngược (Backpropagation)

Lan truyền ngược là một phương pháp được dùng trong các mạng nơ-ron nhằm
cải thiện đầu ra. Nếu như lan truyền xuôi là quá trình được truyền xuôi trong mạng để
tạo ra kết quả, thì lan truyền ngược là quá trình tinh chỉnh lại các thông số ở các lớp
nhằm tạo ra được một mô hình phù hợp cho bài toán đang cần giải quyết. Nó sẽ dùng
hàm mất mát (loss function) để tính toán độ sai lệch giữa giá trị dự đoán và giá trị mong
muốn, từ đó đưa ra sự điều chỉnh tương ứng với trọng số tương ứng. Nút có giá trị loss
cao sẽ được giảm trọng số, ngược lại nút có giá trị loss thấp sẽ được tăng trọng số lên.

Xét hai lớp liền kề trong cùng một mạng nơ-ron như hình bên dưới:

Hình 2.9. Quá trình lan truyền ngược giữa hai lớp

Lấy lại công thức tính Ai ở phần lan truyền xuôi, 𝐴𝐴𝑖𝑖 = 𝑓𝑓𝑖𝑖 (𝑊𝑊𝑖𝑖−1 × 𝐴𝐴𝑖𝑖−1 +
𝑏𝑏𝑖𝑖−1 )với 𝑖𝑖 𝜖𝜖 [2, 𝑛𝑛]. Ta gọi phần phía trong hàm kích hoạt, 𝑊𝑊𝑖𝑖−1 × 𝐴𝐴𝑖𝑖−1 + 𝑏𝑏𝑖𝑖−1 , là 𝑢𝑢𝑖𝑖 và
J là hàm mất mát.

Ta sẽ có công gradient của các trọng số ở từng layer l như sau [3, tr.58]:

28
𝐽𝐽
𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝑢𝑢𝑗𝑗 (𝑙𝑙)
= × = 𝑒𝑒𝑖𝑖 (𝑙𝑙) × 𝐴𝐴𝑖𝑖 (𝑙𝑙−1)
𝜕𝜕𝑤𝑤𝑖𝑖𝑖𝑖 (𝑙𝑙) 𝜕𝜕𝑢𝑢𝑗𝑗 (𝑙𝑙)
𝜕𝜕𝑤𝑤𝑖𝑖𝑖𝑖 (𝑙𝑙)

với

𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕 𝜕𝜕𝐴𝐴𝑗𝑗 (𝑙𝑙)


𝑒𝑒𝑖𝑖 (𝑙𝑙) = (𝑙𝑙)
= (𝑙𝑙)
×
𝜕𝜕𝑢𝑢𝑗𝑗 𝜕𝜕𝐴𝐴𝑗𝑗 𝜕𝜕𝑢𝑢𝑗𝑗 (𝑙𝑙)

𝑑𝑑 (𝑙𝑙+1)
𝜕𝜕𝜕𝜕 𝜕𝜕𝑢𝑢𝑘𝑘 (𝑙𝑙+1)
=�� (𝑙𝑙+1)
× � 𝑓𝑓′(𝑢𝑢𝑗𝑗 (𝑙𝑙) )
𝑘𝑘=1
𝜕𝜕𝑢𝑢𝑘𝑘 𝜕𝜕𝐴𝐴𝑗𝑗 (𝑙𝑙)

= �𝑤𝑤𝑗𝑗 (𝑙𝑙+1) × 𝑒𝑒 (𝑙𝑙+1) �𝑓𝑓′(𝑢𝑢𝑗𝑗 (𝑙𝑙) )

𝑇𝑇
Trong đó 𝑒𝑒 (𝑙𝑙+1) = �𝑒𝑒1 (𝑙𝑙+1) , 𝑒𝑒2 (𝑙𝑙+1) , . . . , 𝑒𝑒𝑑𝑑(𝑙𝑙+1) (𝑙𝑙+1) � và 𝑤𝑤𝑗𝑗 (𝑙𝑙+1) là toàn bộ

phần tử hàng thứ j của ma trận 𝑊𝑊 (𝑙𝑙+1)

Với cách làm tương tự ta có:

𝜕𝜕 𝐽𝐽
(𝑙𝑙)
= 𝑒𝑒𝑖𝑖 (𝑙𝑙)
𝜕𝜕𝑏𝑏𝑗𝑗

Từ đây ta có thể mở rộng ra cho cách biểu diễn bằng ma trận như các công thức
sau:

𝐽𝐽
𝜕𝜕
(𝑙𝑙−1) (𝑙𝑙)𝑇𝑇
= 𝐴𝐴 × 𝑒𝑒𝑖𝑖
𝜕𝜕𝜕𝜕 (𝑙𝑙)

𝑒𝑒 (𝑙𝑙−1) = 𝑊𝑊 (𝑙𝑙) × 𝑒𝑒 (𝑙𝑙)𝑇𝑇 × 𝑓𝑓′(𝑢𝑢𝑗𝑗 (𝑙𝑙) )

29
𝜕𝜕𝐽𝐽
(𝑙𝑙)
= 𝑒𝑒𝑖𝑖 (𝑙𝑙)
𝜕𝜕𝜕𝜕
2.3. Mạng nơ-ron truy hồi (RNN)

2.3.1. Giới thiệu về RNN

Mạng nơ-ron truy hồi là một loại mạng nơ-ron nhân tạo sử dụng dữ liệu dạng
chuỗi. RNN là một mạng nơ-ron nhân tạo hai chiều, có nghĩa là đầu ra của một số nút
trong mạng có thể ảnh hưởng đến đầu vào tiếp theo của chính nút đó.

Trong mạng nơ-ron truyền thống, đầu vào và đầu ra là độc lập với nhau, tuy
nhiên giả sử trường hợp ta cần dự đoán một từ tiếp theo của một câu, lúc này thì việc
biết được từ phía trước nó là gì rất quan trọng. Vì lý do đó mà mạng nơ-ron truy hồi đã
ra đời. Để có thể thực hiện được việc này thì RNN có một đặc điểm rất quan trọng, đó
là trạng thái ẩn (hidden state). Trạng thái ẩn này cũng có thể xem là trạng thái ghi nhớ
(memory state) vì nó ghi nhớ thông tin về lần truyền trước. RNN sẽ dùng cùng thông
số cho mỗi đầu vào vì nó thực hiện cùng một tác vụ trên tất cả các lớp đầu vào hoặc lớp
ẩn để có thể tạo ra đầu ra.

Hình 2.10. Mạng nơ-ron truy hồi

Nhờ vào tính chất đặc biệt của nó mà mạng nơ-ron truy hồi có một số ứng dụng
như: mô hình hóa ngôn ngữ và khởi tạo văn bản, nhận dạng giọng nói, dịch máy, tóm
tắt văn bản, nhận dạng hình ảnh, nhận dạng khuôn mặt,…

30
2.3.2. Phân loại RNN

Dựa vào số lượng của đầu vào và đầu ra của mạng mà RNN được chia ra làm 4
loại:

Đầu tiên đó là One to One, loại RNN này còn được biết đến là mạng thần kinh
vanilla, nó hoạt động như nhiều mạng thần kinh đơn giản khác. Loại RNN này chỉ có
một đầu vào và một đầu ra.

Hình 2.11. Mạng RNN loại One to One

Tiếp đến là One to Many, loại RNN này sẽ có 1 đầu vào và nhiều đầu ra

31
Hình 2.12. Mạng RNN loại One to Many

Đối lập với One to Many là Many to One, loại RNN này bao gồm nhiều đầu vào
để tạo ra một đầu ra duy nhất. Loại RNN này thường được dùng trong phân tích cảm
xúc.

Hình 2.13. Mạng RNN loại Many to One

Và cuối cùng là Many to Many, loại RNN này có nhiều đầu vào và nhiều đầu
ra. Một ví dụ cho loại RNN này có thể kể đến việc dịch ngôn ngữ, trong đó nhiều từ
làm đầu vào và đầu ra là nhiều từ khác.

32
Hình 2.14. Mạng RNN loại Many to Many

2.3.3. Các biến thể của RNN

Mạng nơ-ron hồi tiếp hai chiều (Bidirectional Recurrent Neural Network): trong
khi RNN bình thường chỉ lấy dữ liệu từ đầu vào trước đó để đưa ra kết quả thì BRNN
kết nối hai lớp ẩn ở ngược hướng nhau với cùng một đầu ra. Bằng cách này BRNN có
thể lấy kết quả của cả quá khứ lẫn tương lai nhằm cải thiện độ chính xác của dữ liệu đó.

Bộ nhớ dài-ngắn hạn (Long Short-Term Memory): Đây là một biến thể khá phổ
biến của RNN, nó được giới thiệu bởi Sepp Hochreiter và Juergen Schmidhuber như là
một giải pháp cho vấn đề vanishing gradient. Đầu vào của LSTM sẽ đọc và ghi nhớ
những thông tin hữu ích, còn những thông tin không quan trọng sẽ bị lược bỏ.

2.3.4. Ưu và nhược điểm

RNN có một số ưu điểm đáng được cân nhắc. Đầu tiên, RNN có khả năng xử lý
các chuỗi có độ dài không cố định. Ngoài ra nó còn có bộ nhớ lưu trữ các đầu vào trước
đó.

Tuy vậy, RNN vẫn còn một số nhược điểm. Đáng chú ý nhất là việc RNN có thể
gặp vấn đề vanishing gradient và exploding gradient. Nó còn có thể gây tốn kém khi
huấn luyện mô hình, đặc biệt là khi huấn luyện với các chuỗi dài. Và nó cũng không thể
xử lý chuỗi quá dài nếu dùng hàm kích hoạt tanh hoặc ReLU.

33
2.4. Mạng nơ-ron Dài/Ngắn hạn (Long Short-Term Neural Networks)

2.4.1. Giới thiệu về LSTM

Mạng nơ-ron dài-ngắn hạn (LSTM), được thiết kế bởi Hochreiter và


Schmidhuber, là một dạng đặc biệt của RNN giúp giải quyết vấn đề vanishing gradient.
Ở mạng RNN bình thường, những phần phụ thuộc dài hạn sẽ bị mất đi do vấn đề
vanishing gradient nên có thể gọi nó là bộ nhớ ngắn hạn (short-term memory). Nhưng
đối với mạng LSTM, nó có thể học được những phụ thuộc dài hạn trong dữ liệu chuỗi,
điều này khiến nó thích hợp với các tác vụ như dịch ngôn ngữ, nhận diện giọng nói, dự
đoán chuỗi thời gian, tóm tắt ngôn ngữ,…

Lấy ví dụ với việc dự đoán từ tiếp theo trong câu. Ví dụ với câu “Mặt trời mọc
ở hướng…”, ta hoàn toàn có thể dựa vào những từ trước đó để có thể dự đoán được từ
tiếp theo là “Đông”. Tuy nhiên, đối với đoạn “Tôi là người Việt Nam. Tôi đã sống và
làm việc tại Singapore được hơn 3 năm. Tiếng mẹ đẻ của tôi là tiếng…” thì không thể
dùng từ ngay trong chính câu “Tiếng mẹ đẻ của tôi là tiếng…” để dự đoán nó được, khi
này bộ nhớ ngắn hạn đã để lộ điểm yếu của mình. Để có thể dự đoán được từ “Việt”
còn thiếu, ta sẽ cần những thông tin trước đó xa hơn, và đó là lúc mà ta cần một bộ nhớ
dài hạn (long-term memory), và mô hình LSTM có thể giải quyết được việc này.

RNN truyền thống có một trạng thái ẩn (hidden state) duy nhất được truyền theo
thời gian, điều này có thể gây khó khăn trong việc học các phần phụ thuộc dài hạn.
LSTM đã giải quyết vấn đề này bằng cách giới thiệu một ô nhớ (memory cell) có thể
chứa thông tin trong một khoảng thời gian dài. Ô nhớ được điều khiển bởi ba cổng:
cổng vào (input gate), cổng quên (forget gate) và cổng ra (output gate). Các cổng này
quyết định thông tin nào cần thêm vào, loại bỏ và xuất ra khỏi ô nhớ.

2.4.2. Cấu trúc của LSTM

LSTM có cấu trúc như hình:

34
Hình 2.15. Cấu trúc của LSTM

2.4.2.1. Cổng quên (Forget gate)

Thông tin không còn hữu ích ở cell state sẽ bị loại bỏ bởi cổng này. Hai đầu vào
là xt (đầu vào thời điểm hiện tại) và ht-1 (đầu vào trước đó) sẽ được nhân với ma trận
trọng số và cộng với độ lệch. Sau đó kết quả sẽ được chuyển qua hàm kích hoạt sigmoid
để cung cấp đầu ra nhị phân. Nếu kết quả là 0 thì phần thông tin đó sẽ bị lược bỏ, ngược
lại phần thông tin đó sẽ được giữ lại.

Hình 2.16. Cổng quên của LSTM

Phương trình của cổng quên có dạng như sau:


𝑓𝑓𝑡𝑡 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠(𝑊𝑊𝑓𝑓 ⋅ [ℎ𝑡𝑡−1 , 𝑥𝑥𝑡𝑡 ] + 𝑏𝑏𝑓𝑓 )
Trong đó:
𝑓𝑓𝑡𝑡 là cổng quên tại thời điểm t.
35
𝑥𝑥𝑡𝑡 là đầu vào hiện tại.
ℎ𝑡𝑡−1 là trạng thái ẩn trước đó.
𝑊𝑊𝑓𝑓 là ma trận trọng số của cổng quên.
𝑏𝑏𝑓𝑓 là vector độ lệch của cổng quên.

2.4.2.2. Cổng vào (Input gate)

Thông tin thêm hữu ích với cell state sẽ được thêm vào bởi cổng này. Đầu tiên
thông tin sẽ được điều chỉnh thông qua hàm sigmoid và lọc các giá trị quan trọng cần
ghi nhớ. Tiếp đến hàm tanh sẽ tạo ra một vector có giá trị từ -1 đến 1 chứa tất cả các giá
trị có thể có từ xt (đầu vào thời điểm hiện tại) và ht-1 (đầu vào trước đó). Nếu giá trị đó
là số âm thì thông tin sẽ bị loại bỏ khỏi trạng thái của cell, ngược lại thì thông tin sẽ
được thêm vào trạng thái của cell ở thời điểm hiện tại. Sau đó các giá trị của vector
trạng thái của cell trước đó sẽ được nhân với vector từ cổng quên để cập nhật lại trạng
thái của cell.

Hình 2.17. Cổng vào của LSTM

Phương trình của cổng vào có dạng như sau:


𝑖𝑖𝑡𝑡 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠(𝑊𝑊𝑖𝑖 ⋅ [ℎ𝑡𝑡−1 , 𝑥𝑥𝑡𝑡 ] + 𝑏𝑏𝑖𝑖 )
Trong đó:
𝑖𝑖𝑡𝑡 là cổng vào tại thời điểm t.
𝑥𝑥𝑡𝑡 là đầu vào hiện tại.
ℎ𝑡𝑡−1 là trạng thái ẩn trước đó.

36
𝑊𝑊𝑖𝑖 là ma trận trọng số của cổng vào.
𝑏𝑏𝑖𝑖 là vector độ lệch của cổng vào.
𝐶𝐶~𝑡𝑡 = 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑊𝑊𝑐𝑐 ⋅ [ℎ𝑡𝑡−1 , 𝑥𝑥𝑡𝑡 ] + 𝑏𝑏𝑐𝑐 )
Trong đó:
𝐶𝐶~𝑡𝑡 là kết quả của hàm tanh, cũng chính là những thông tin mới cần được
cập nhật.
𝑊𝑊𝑐𝑐 là ma trận trọng số của hàm tanh.
𝑏𝑏𝑐𝑐 là vector độ lệch của hàm tanh.
𝐶𝐶𝑡𝑡 = 𝑓𝑓𝑡𝑡 ⋅ 𝐶𝐶𝑡𝑡−1 + 𝑖𝑖𝑡𝑡 ⋅ 𝐶𝐶~𝑡𝑡
Trong đó 𝐶𝐶𝑡𝑡 là trạng thái của cell tại thời điểm t.

2.4.2.3. Cổng ra (Output gate)

Việc trích xuất thông tin hữu ích từ cell state hiện tại dưới dạng đầu ra sẽ được
thực hiện bởi cổng này. Đầu tiên xt (đầu vào thời điểm hiện tại) và ht-1 (đầu vào trước
đó) sẽ được chuyển vào một hàm sigmoid. Tiếp đến, trạng thái ô mới sau khi đã được
cập nhật ở cổng vào sẽ được chuyển vào hàm tanh. Kết quả của hai hàm này sẽ được
nhân lại với nhau để cho ra một kết quả mới quyết định thông tin của trạng thái ẩn. Cuối
cùng thì trạng thái của cell và trạng thái ẩn sẽ được chuyển đến cho cell tiếp theo.

Hình 2.18. Cổng ra của LSTM

Phương trình của cổng ra có dạng như sau:


𝑜𝑜𝑡𝑡 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠(𝑊𝑊𝑜𝑜 ⋅ [ℎ𝑡𝑡−1 , 𝑥𝑥𝑡𝑡 ] + 𝑏𝑏𝑜𝑜 )

37
Trong đó:
𝑜𝑜𝑡𝑡 là cổng ra tại thời điểm t.
𝑥𝑥𝑡𝑡 là đầu vào hiện tại.
ℎ𝑡𝑡−1 là trạng thái ẩn trước đó.
𝑊𝑊𝑜𝑜 là ma trận trọng số của cổng ra.
𝑏𝑏𝑜𝑜 là vector độ lệch của cổng ra.
ℎ𝑡𝑡 = 𝑜𝑜𝑡𝑡 ⋅ 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝐶𝐶𝑡𝑡 )
Trong đó ℎ𝑡𝑡 là trạng thái ẩn tại thời điểm t.

2.4.3. Ưu, nhược điểm của LSTM

LSTM có một số ưu điểm như nó có các cell có khả năng lưu trữ thông tin dài
hạn. Chính vì thế mà nó giải quyết được vấn đề vanishing gradient ở mạng RNN truyền
thống. LSTM cho phép mô hình ghi nhớ các chi tiết quan trọng ngay cả khi có một
khoảng cách đáng kể giữa hai sự kiện liên quan trong chuỗi.

Ngoài những ưu điểm trên, LSTM vẫn còn một số hạn chế nhất định. Nếu so với
các cấu trúc đơn giản, ví dụ như mạng nơ-ron truyền thẳng (feed-forward neural
networks) thì LSTM tốn kém hơn về mặt tính toán. Do đó khả năng mở rộng có thể bị
hạn chế nếu gặp các bộ dữ liệu có quy mô lớn hoặc môi trường bị hạn chế. Không những
thế, việc huấn luyện LSTM đòi hỏi nhiều dữ liệu hơn và thời lâu hơn để có thể đạt được
hiệu suất cao. Ngoài ra, vì LSTM xử lý từng chữ một cách tuần tự nên sẽ khó để thực
hiện song song với việc xử lý câu.

38
CHƯƠNG 3: XÂY DỰNG MÔ HÌNH ỨNG DỤNG RNN TRONG BÀI
TOÁN TÓM TẮT VĂN BẢN TIẾNG ANH

3.1. Cấu trúc mô hình tóm tắt văn bản

3.1.1. Cấu trúc Encoder-Decoder

Hình 3.1. Cấu trúc Encoder-Decoder

Cấu trúc này là một cách để sắp xếp mạng RNN để giải quyết một bài toán theo
một cách tuần tự (bài toán có thể có nhiều đầu vào, đầu ra). Ngoài ra, cấu trúc này tập
trung chủ yếu vào 2 thành phần chính là Encoder và Decoder. Với Encoder, nó sẽ nhận
toàn bộ đầu vào và mã hóa các thông tin này dưới dạng một vector context. Decoder
nhận các đầu ra từ Encoder và tạo ra các chuỗi đầu ra khác. Cả 2 mô hình này được
huấn luyện một cách song song và đồng thời.
Cấu trúc Encoder-Decoder LSTM được thiết kế đặc thù cho các bài toán
sequence to sequence. Điển hình là các bài toán xử lý ngôn ngữ tự nhiên, cụ thể hơn là
tóm tắt văn bản hay dịch máy. Các mô hình được sử dụng hiện nay tích hợp thêm việc
sử dụng phương pháp Nhúng từ (Word Embedding) cho các đầu vào và truyền chúng
vào mô hình mạng nơ-ron hồi tiếp hai chiều (Bidirectional RNN) để tạo ra các initial
hidden state.
Trong mô hình tóm tắt văn bản, Encoder như một bộ não vì nó có chức năng
quan trọng là nắm bắt bản chất của tài liệu gốc và tạo ra đầu ra trung gian để có thể đưa
vào Decoder để tạo ra đầu ra cuối cùng.
Decoder chịu trách nhiệm cho việc tạo ra các từ trong chuỗi đầu ra, khi có hai
nguồn thông tin có sẵn. Đầu tiên là Context Vector, đây là một biểu diễn đã được mã
hóa của tài liệu nguồn dưới dạng vector, được tạo ra như một đầu ra của bộ mã hóa.
Nguồn thông tin thứ hai là Generated Sequence, đây là một từ hoặc chuỗi từ đã được
trừu tượng hóa trước đó.
Đối với một kiến trúc Encoder-Decoder đơn giản, Context Vector có thể là một
cấu trúc mã hóa có độ dài cố định hoặc một dạng dễ hiểu hơn có thể được lọc bằng cách
sử dụng cơ chế Attention. Biểu diễn phân tán của mỗi từ được tạo ra thông qua việc
39
nhúng từ được cung cấp cho Generated Sequence. Quá trình này thường bao gồm việc
cung cấp cho mô hình một ký tự bắt đầu chuỗi, để tạo ra từ đầu tiên; và cũng một ký tự
kết thúc chuỗi để dừng quá trình.

3.1.2. Mô hình tổng quát của tóm tắt văn bản

Mô hình tổng quát là một phiên bản đơn giản của mô hình tóm tắt văn bản. Nó
bao gồm một Encoder với một đầu vào đã trải qua giai đoạn Nhúng từ. Tiếp theo là một
hidden layer LSTM. Tầng này tạo ra một biểu diễn có độ dài cố định của các tài liệu
nguồn. Decoder đọc biểu diễn này cùng với việc Nhúng từ của từ cuối cùng đã được tạo
ra và sử dụng các đầu vào này để tạo ra từng từ trong đầu ra. Hình sau mô tả kiến trúc
của quá trình tóm tắt văn bản tổng quát.

Hình 3.2. Mô hình tóm tắt văn bản tổng quát

3.2. Xây dựng mô hình

Mục tiêu của chúng tôi là xây dựng một bộ tóm tắt văn bản, trong đó đầu vào là
một chuỗi dài gồm các từ (trong một đoạn văn bản), và đầu ra là một tóm tắt ngắn. Đầu
tiên, dữ liệu đầu vào sẽ đi qua quá trình tiền xử lý dữ liệu và được biến đổi thành các
chuỗi số nguyên tượng trưng cho vector từ. Các chuỗi này sẽ là đầu vào của mô hình và
mô hình sẽ tạo ra các bản tóm tắt.

40
Hình 3.3. Mô hình được đề xuất

Mô hình được cấu tạo gồm 4 yếu tố chính: Encoder, Decoder, tầng Attention và
tầng Dense. Hình sau đây là cấu trúc sơ bộ của mô hình này:

Hình 3.4. Cấu trúc của mô hình Encoder-Decoder LSTM được đề xuất

Đầu tiên mô hình sẽ khởi tạo một tầng Input với độ kích thước là giá trị độ dài
tối đa được thiết lập. Tầng embedding được khởi tạo với ma trận trọng số là ma trận

41
embedding mà ta có được ở bước tiền xử lý dữ liệu và ma trận trọng số này sẽ được cập
nhật trong quá trình huấn luyện. Tiếp đến là bộ 3 tầng LSTM được chạy một cách tuần
tự và trả về chuỗi cùng với hidden state và cell state. Mỗi tầng LSTM sẽ bao gồm 300
đơn vị LSTM đi kèm với việc sử dụng kĩ thuật chính quy hóa Recurrent Dropout nhằm
ngăn ngừa mô hình overfit thông qua việc tạo nhiễu. Mô hình sẽ bỏ qua 40% input
connection và 40% recurrent connection giữa các hidden state của các đơn vị LSTM
vào mỗi chu kì cập nhật trong quá trình huấn luyện. Thông số này được tinh chỉnh thông
qua nhiều lần thử nghiệm, giá trị thường gặp là khoảng 20% đến 50%. Nếu nó quá cao
thì sẽ làm giảm khả năng học hỏi của mô hình. Ngược lại, nếu thông số dropout quá
thấp có thể không giúp ích được mục tiêu ngăn chặn mô hình overfit. Sau khi qua 3 tầng
LSTM ta sẽ có được chuỗi đầu ra, hidden state và cell state cuối cùng. Và đó là kết thúc
của cấu trúc của Encoder
Cấu trúc của Decoder bắt đầu với tầng Input thứ 2 của mô hình. Decoder sẽ tự
động khởi tạo kích thước của tầng Input thứ 2 này tùy thuộc vào độ dài đầu vào của
tầng. Đi kèm với tầng Input này sẽ là một tầng embedding được khởi tạo lại hoàn toàn
và sẽ tạo mới và cập nhật ma trận trọng số trong quá trình huấn luyện. Việc sử dụng ma
trận embedding riêng cho encoder và decoder trong mô hình tóm tắt văn bản giúp cải
thiện tính hiệu quả, sáng tạo và tính độc lập của mô hình trong quá trình tạo ra tóm tắt
từ văn bản nguồn. Tiếp đến là tầng LSTM cuối cùng của mô hình với thông số dropout
là 40% và recurrent dropout là 20%. Trong quá trình huấn luyện đây sẽ là tầng LSTM
tạo ra chuỗi đầu ra cuối cùng dựa trên chuỗi đầu ra của 3 bộ LSTM trên nên giá trị
recurrent dropout phải thấp nhất có thể để phục vụ cho mục đích đảm bảo ngữ nghĩa
nguyên vẹn nhưng vẫn ngăn chặn mô hình overfit. Đầu ra ở tầng LSTM này là forward
state và backward state cùng với chuối đầu ra. Forward state sẽ bao gồm ngữ nghĩa và
các thông tin học được từ phần đầu chuỗi. Ngược lại, Backward state sẽ bao gồm những
thông tin ấy nhưng lại từ phần cuối chuỗi. Những trạng thái này giúp cho Decoder nắm
bắt được pattern của chuỗi.
Attention là một tầng quan trọng trong việc tóm tắt văn bản. Với đầu vào là đầu
ra của Encoder và Decoder, nó cung cấp thông tin từ mọi hidden state của Encoder cho
Decoder và giúp cho mô hình tập trung vào phần liên quan của chuỗi đầu vào khi tạo ra

42
mỗi phần tử của chuỗi đầu ra. Thông qua tầng Concatenate, đầu ra của tầng LSTM của
Decoder và tầng Attention được kết nối với nhau để làm input cho tầng tiếp theo.
Tầng Time-distributed Dense được khởi tạo với softmax là hàm kích hoạt. Tầng
này sẽ xuất ra đầu ra cuối cùng của mô hình là xác suất của từ trong bộ từ điển của dữ
liệu tóm tắt.
Cuối cùng mô hình được compile theo bộ tối ưu RMSprop, hàm mất mát sparse
categorical cross-entropy và metric để đánh giá khi huấn luyện là accuracy. Chúng tôi
chọn sparse categorical cross-entropy làm hàm mất mát vì nó chuyển đổi chuỗi số
nguyên thành một vector one-hot ngay khi thực hiện giúp cho mô hình vượt qua đa số
các vấn đề về bộ nhớ. Giai đoạn huấn luyện bắt đầu khi Encoder đọc toàn bộ chuỗi đầu
vào, trong đó ở mỗi bước thời gian, một từ sẽ được đưa vào bộ mã hóa. Sau đó, nó sẽ
xử lý thông tin ở mỗi bước thời gian và thu thập thông tin ngữ cảnh hiện có trong chuỗi
đầu vào. Ngược lại, Decoder đọc toàn bộ chuỗi mục tiêu từng từ và dự đoán cùng một
chuỗi với độ trễ là một bước thời gian. Bộ Decoder được huấn luyện để dự đoán từ tiếp
theo trong chuỗi dựa trên từ trước đó. Và Early Stopping được sử dụng để dừng việc
huấn luyện mạng nơ-ron bằng cách theo dõi mất mát trên tập test. Mô hình của chúng
tôi sẽ dừng việc huấn luyện ngay khi mất mát trên tập test tăng lên.
Sau quá trình huấn luyện, mô hình được thử nghiệm trên các chuỗi mới mà chuỗi
mục tiêu tương ứng là không có sẵn. Vì vậy, dựa vào nghiên cứu [1], kiến trúc dự đoán
của mô hình sẽ được thể hiện như sau:

Hình 3.5. Kiến trúc mô hình dự đoán chuỗi tiếp theo

Sau đây là các bước để giải mã các chuỗi:


Bước 1: Mã hóa toàn bộ chuỗi đầu vào và khởi tạo Decoder với các internal
states của Decoder (h và c).

43
Bước 2: Truyền token bắt đầu (sostok) như một đầu vào cho Decoder.
Bước 3: Chạy Decoder trong một bước thời gian với các internal states.
Bước 4: Đầu ra sẽ là xác suất của từ tiếp theo. Từ với xác suất cao nhất sẽ được
chọn.
Bước 5: Tiếp tục truyền từ được dự đoán vào Decoder ở bước lặp tiếp theo và
cập nhật internal states.
Bước 6: Lặp lại bước 3 - 5 cho đến khi mô hình dự đoán ra token kết thúc (eostok)
hoặc đạt độ dài tối đa của chuỗi.

3.2.1. Tiền xử lý dữ liệu

3.2.1.1. Làm sạch dữ liệu

Việc làm sạch dữ liệu trong mô hình tóm tắt văn bản là một phần quan trọng để
đảm bảo rằng kết quả tóm tắt là chính xác và hiệu quả. Quá trình này bao gồm loại bỏ
thông tin không cần thiết, cải thiện định dạng và xử lý văn bản đầu vào để giúp mô hình
hiểu rõ hơn nội dung. Điều này giúp mô hình biết cách tạo ra tóm tắt có ý nghĩa và tránh
việc tạo ra thông tin sai lệch.
Các bước làm sạch dữ liệu:
Bước 1: Loại bỏ HTML tags. Nếu dữ liệu có nguồn gốc từ các website thì có
thể trong quá trình trích xuất dữ liệu sẽ để lại các tags như: <br>, <a>,....
Bước 2: Phân tách contract words. Trong ngôn ngữ Anh thường xuất hiện các
cụm từ như: “he’ll”, “she’s”,... Những cụm từ này cần phải được đưa về nguyên
bản như: “he will”, “she will”,...
Bước 3: Loại bỏ các ký tự đặc biệt. Các ký tự đặc biệt như dấu chấm, dấu phẩy,
dấu ngoặc đơn, dấu chấm phẩy,... thường không chứa thông tin ngữ nghĩa quan
trọng về nội dung.
Bước 4: Loại bỏ các stopwords. Stopwords là những từ phổ biến như "a", "the",...
chúng thường không mang thông tin quan trọng về nội dung thực sự của văn bản
và có thể làm cho thời gian huấn luyện mô hình tăng đáng kể.
Tóm lại, việc làm sạch dữ liệu trong mô hình tóm tắt văn bản là một bước quan
trọng để đảm bảo rằng mô hình có khả năng tạo ra tóm tắt chất lượng và phản ánh đúng
ý nghĩa của văn bản gốc.

44
3.2.1.2. Tạo ma trận embedding

Ma trận embedding (ma trận nhúng) là một ma trận số học được sử dụng trong
xử lý ngôn ngữ tự nhiên (NLP) và học máy để biểu diễn từ vựng. Ma trận embedding
biểu thị các từ và cụm từ dưới dạng các vector số học trong không gian nhiều chiều sao
cho các từ tương tự về ngữ nghĩa thường có các vector tương tự hoặc gần nhau trong
không gian này. Ma trận embedding có thể được sử dụng để biểu diễn từng từ riêng lẻ
trong văn bản.
Bằng cách sử dụng GloVe, các nhà nghiên cứu tại Stanford University đã phát
triển ma trận embedding GloVe [4]. Nó đã được học từ dữ liệu lớn và có sẵn để tải và
sử dụng. Các phần tử của ma trận embedding này có thể được truy xuất để biểu diễn
các từ vựng trong các ứng dụng NLP mà không cần học lại toàn bộ mô hình từ đầu.
Để sử dụng ma trận embedding GloVe cho mô hình của chúng ta, ma trận này
cần phải được thu giảm số chiều cùng như lược bớt các từ không xuất hiện trong dữ liệu
đầu vào. Ta có thể đạt được điều đó thông qua các bước sau:
Bước 1: Đầu tiên ta khởi tạo một ma trận có kích thước 𝑚𝑚 × 𝑛𝑛 với m là kích
thước của bộ từ vựng và n là kích thước của ma trận embedding ta cần.
Bước 2: Tiếp theo kiểm tra từng từ trong bộ từ vựng có xuất hiện trong ma trận
embedding có sẵn hay không. Nếu có thì sẽ gán giá trị của vector từ ma trận
embedding có sẵn vào ma trận vừa tạo. Ngược lại, tạo một vector mới với các
giá trị ngẫu nhiên từ -1 đến 1.

3.2.1.3. Tokenization

Thư viện Keras cung cấp Tokenizer class để thực hiện quá trình Tokenization.
Đầu tiên, khởi tạo và cấu hình Tokenizer bằng cách xác định rõ số từ tối đa. Sau đó, gọi
phương thức fit_on_text để học từ điển từ vựng từ dữ liệu nguồn. Khi đã học được từ
điển, tiếp tục sử dụng phương thức texts_to_sequences để biến đoạn văn bản thành các
chuỗi số, tạo bước chuẩn bị cho mô hình tóm tắt.
Để đảm bảo rằng các chuỗi số có cùng độ dài, giúp mô hình xử lý dữ liệu đầu
vào một cách hiệu quả ta sử dụng phương thức pad_sequences. Phương thức này là
quá trình thêm các token đặc biệt (thường là token trống).
Ngoài ra, chúng ta định nghĩa thêm các token như:

45
- <sostok>: token tượng trưng cho bắt đầu của câu.
- <eostok>: token tượng trưng cho kết thúc của câu.
- <UNK>: token tượng trưng cho các từ hoặc ký tự không nằm trong từ
điển hoặc từ vựng đã được học.
- <PAD>: token tượng trưng cho ký tự padding.
Trước khi dữ liệu được đưa vào mô hình để huấn luyện, ta cần phải loại bỏ các
dòng dữ liệu chỉ chứa các token vì đây là các dòng dữ liệu bị trống sau bước làm sạch
dữ liệu và bước Tokenization.

3.2.2. Cơ chế Attention

Attention là một giao diện kết nối giữa Encoder và Decoder, cung cấp thông tin
từ mọi trạng thái ẩn của Encoder cho Decoder. Với cấu trúc này, mô hình có khả năng
tập trung chọn lọc vào các phần quan trọng của chuỗi đầu vào và do đó, học được mối
liên kết giữa chúng. Điều này giúp mô hình xử lý một cách hiệu quả với các câu đầu
vào dài. Attention đã được chứng minh thông qua thực nghiệm là rất hiệu quả trong
việc mô hình hóa các chuỗi, như ngôn ngữ, đến mức chúng trở thành không thể thiếu.
Có hai loại attention đáng chú ý là Bahdanau Attention (Additive Attention) và Luong
Attention (Dot-product Attention).

Đối với Bahdanau Attention (Additive Attention), cơ chế này được giới thiệu lần
đầu trong nghiên cứu [17] của Bahdanau và cộng sự. Bahdanau Attention được giới
thiệu để giải quyết vấn đề phát sinh khi sử dụng một vector mã hóa có độ dài cố định,
khi mà bộ mã hóa bị giới hạn sự truy cập đối với lượng thông tin được cung cấp bởi đầu
vào. Các bước của Bahdanau Attention như sau:

Bước 1: Bộ mã hóa tạo một tập các annotations, hi, từ đầu vào.
Bước 2: Tập các annotations này cùng với trạng thái ẩn của bộ giải mã trước đó
sẽ được đưa vào một mô hình căn chỉnh để tạo ra các điểm số attention, et,i.

𝑒𝑒𝑡𝑡,𝑖𝑖 = 𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 )

𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) có thể sử dụng một trong hai công thức sau:

46
𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) = 𝑣𝑣 𝑇𝑇 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑊𝑊[ℎ𝑖𝑖 ; 𝑠𝑠𝑡𝑡−1 ])

𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) = 𝑣𝑣 𝑇𝑇 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑊𝑊1 ℎ𝑖𝑖 + 𝑊𝑊2 ℎ𝑡𝑡−1 )

Trong đó:

𝑠𝑠𝑡𝑡−1 là trạng thái ẩn của bộ giải mã trước đó.


W là ma trận trọng số.
v là vector trọng số.
Bước 3: Một hàm softmax sẽ được áp dụng lên các điểm số attention để chuẩn
hóa chúng thành các giá trị trọng số, αt,i, có giá trị trong khoản từ 0 đến 1.

𝛼𝛼𝑡𝑡,𝑖𝑖 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠(𝑒𝑒𝑡𝑡,𝑖𝑖 )

Bước 4: Các trọng số ở bước 3 cùng với tập annotations ở bước 1 sẽ được dùng
để tạo nên context vector ct thông qua việc tính tổng trọng số của các annotations.

𝑇𝑇

𝑐𝑐𝑡𝑡 = � 𝛼𝛼𝑡𝑡,𝑖𝑖 ℎ𝑖𝑖


𝑖𝑖=1

Bước 5: Context vector, trạng thái ẩn của bộ bộ giải mã trước đó và đầu ra trước
đó được đưa vào bộ giải mã để tính toàn đầu ra cuối cùng yt.
Bước 6: Các bước từ bước 2 đến bước 5 sẽ được lặp lại cho đến khi kết thúc
chuỗi.

Luong Attention (Dot-product Attention) được giới thiệu trong nghiên cứu
“Effective Approaches to Attention-based Neural Machine Translation” [18] của Minh-
Thang Luong, Hieu Pham và Christopher D. Manning. Điểm khác biệt chính của Luong
Attention và Bahdanau Attention là ở cách tính toán của hàm căng chỉnh. Các bước của
Luong Attention như sau:

Bước 1: Bộ mã hóa tạo một tập các annotations, hi, từ đầu vào.

47
Bước 2: Tập các annotations cùng với trạng thái ẩn của bộ giải mã hiện tại sẽ
được đưa vào một mô hình căn chỉnh để tạo ra các điểm số attention, et,i. Mô
hình căng chỉnh có thể sử dụng một trong các công thức sau:

𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) = 𝑣𝑣𝑎𝑎𝑇𝑇 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑊𝑊𝑎𝑎 [𝑠𝑠𝑡𝑡 ; ℎ𝑖𝑖 ])

𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) = 𝑠𝑠𝑡𝑡𝑇𝑇 ℎ𝑖𝑖

𝑎𝑎(𝑠𝑠𝑡𝑡−1 , ℎ𝑖𝑖 ) = 𝑠𝑠𝑡𝑡𝑇𝑇 𝑊𝑊𝑎𝑎 ℎ𝑖𝑖

Bước 3: Một hàm softmax sẽ được áp dụng lên các điểm attention số để chuẩn
hóa chúng thành các giá trị trọng số, αt,i, có giá trị trong khoản từ 0 đến 1.
Bước 4: Các trọng số ở bước 3 cùng với tập annotations ở bước 1 sẽ được dùng
để tạo nên context vector ct thông qua việc tính tổng trọng số của các annotations.
Bước 5: Một trạng thái ẩn chú ý được tính toán dựa trên một ghép nối có trọng
số giữa context vector và trạng thái ẩn hiện tại của bộ giải mã.

𝑠𝑠~𝑡𝑡 = 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑊𝑊𝑐𝑐 [𝑐𝑐𝑡𝑡 ; 𝑠𝑠𝑖𝑖 ])

Bước 6: Bộ giải mã tính toán đầu ra theo công thức:

𝑦𝑦𝑡𝑡 = 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠(𝑊𝑊𝑦𝑦 𝑠𝑠~𝑡𝑡 )

Bước 7: Lặp lại bước 2 đến bước 6 cho đến khi hết chuỗi.

Khác biệt đáng chú ý nhất giữa hai cơ chế này là ở cách tính et. Luong Attention
sẽ dựa vào trạng thái ẩn hiện tại của bộ mã hóa, trong khi Bahdanau Attention sẽ dựa
vào trạng thái ẩn trước đó của bộ mã hóa. Ngoài ra, Luong Attention sử dụng tích thay
vì phép cộng như Bahdanau Attention trong mô hình căng chỉnh. Vì Luong attention dễ
dàng triển khai hơn, linh hoạt hơn nên loại attention này sẽ được sử dụng.

48
3.3. Thực nghiệm mô hình

3.3.1. Tập dữ liệu được sử dụng

Tập dữ liệu được chúng tôi lựa chọn để huấn luyện mô hình là tập Amazon Fine
Foods Reviews. Đây là tập dữ liệu về đánh giá thực phẩm từ Amazon, được thu thập
trong hơn 10 năm, từ năm 1999 đến năm 2012, và bao gồm khoảng 500000 bản ghi.
Các thuộc tính của dữ liệu bao gồm:
Id: ID của một dòng.
ProductId: ID của sản phẩm.
UserId: ID của người dùng.
ProfileName: Tên hồ sơ người dùng.
HelpfulnessNumerator: Số lượng người dùng cảm thấy đánh giá này là hữu ích.
HelpfulnessDenominator: Số lượng người dùng cho biết rằng đánh giá này hữu
ích hoặc không.
Score: Điểm số đánh giá của sản phẩm trong khoảng từ 1 đến 5.
Time: Thời điểm đánh giá.
Summary: Bản tóm tắt ngắn của đánh giá.
Text: Đánh giá của người dùng.
Trong đó 2 thuộc tính mà ta quan tâm đến nhất đó là Summary và Text vì nó có
liên quan mật thiết đến mục đích chính của mô hình. Điểm đáng chú ý là tỉ lệ từ hiếm
của cột Text chiếm đến khoảng 61%. Điều này cho thấy dữ liệu có một bộ từ vựng đa
dạng và phong phú, có thể giúp mô hình để hiểu và tạo ra tóm tắt cho các văn bản phức
tạp.

49
Bảng 3.1. Bảng mô tả độ dài của các câu trong tệp dữ liệu

Summary Text
Count 568545 568545
Mean 4.11 38.39
Std 2.59 37.73
Min 1 0
25% 2 16
50% 4 27
75% 5 46
Max 42 1921

Hình 3.6. Biểu đồ phân bố độ dài câu của thuộc tính Summary

50
Hình 3.7. Biểu đồ phân bố độ dài câu của thuộc tính Text

Bên trên là biểu đồ thống kê sự phân bố số lượng câu dựa trên độ dài của câu của
hai cột cần quan tâm là cột Text, cột chứa văn bản gốc, và cột Summary, cột chứa văn
bản tóm tắt của người. Dựa vào 2 biểu đồ trên và Bảng 3.1, ta có thể thấy được những
câu tóm tắt thì số lượng từ chủ yếu sẽ là dưới 10. Còn đối với đoạn văn bản gốc thì số
lượng từ của một câu chủ yếu sẽ rơi vào khoảng dưới 100 từ.

3.3.2. Thực nghiệm

Ta sẽ thử nghiệm huấn luyện mô hình sử dụng dữ liệu có số lượng quan sát là
200,000 và 400,000 với mục tiêu là thời gian huấn luyện thấp và so sánh sự khác biệt
giữa chúng. Ngoài ra, chúng tôi chỉ sử dụng 80% dữ liệu đầu vào để huấn luyện, 16%
để đo độ chính xác của mô hình và 4% còn lại được dùng để đánh giá mô hình bằng độ
đo ROUGE.
Đầu tiên, mô hình được huấn luyện với 200,000 quan sát kèm với bộ vector từ
GloVe có 6 tỷ token và 100 chiều. Độ dài tối đa của văn bản gốc và văn bản tóm tắt
được chọn là 80 và 10 vì đó là các độ dài chiếm phần lớn của tệp dữ liệu. Mục đích của
bộ tham số này là đánh giá khả năng tóm tắt văn bản của cấu trúc tổng quát của mô hình
hiện tại với các hyperparameter tương đối nhỏ và vì thế thời gian huấn luyện cũng sẽ

51
thấp. Đây có thể coi là một mô hình tiền đề vì nó giúp cho chúng tôi xác định được đặc
điểm của các tóm tắt đầu ra để tinh chỉnh cho các bộ tham số tiếp theo.
Tiếp theo chúng tôi tăng độ dài tối đa của văn bản gốc và văn bản tóm tắt lên 2
giá trị độ dài tối đa lên 100 và 20. Mục đích của bộ tham số này là để quan sát sự ảnh
hưởng của độ dài tối đa đến không những độ chính xác, mà còn là các tóm tắt đầu ra
của mô hình.
Với mong muốn tạo ra các tóm tắt có chiều sâu, đa dạng hơn về từ vựng, chúng
tôi đã tiếp tục huấn luyện mô hình với số quan sát nhiều hơn (400,000 quan sát) và với
bộ vector từ phức tạp hơn (300 chiều).
Trong một số trường hợp, stopword có thể bao gồm các thông tin quan trọng nên
chúng tôi muốn xem xét liệu rằng việc không loại bỏ stopword có thể giúp cho mô hình
cải tiến. Lần huấn luyện cuối cùng sử dụng lại các tham số của lần thử nghiệm thứ 3
nhưng để lại stopword ở bước tiền xử lý dữ liệu.
Với cấu hình máy gồm:
- CPU: Intel (R) Zeon (R) Silver 4210, 2.2 GHz
- RAM: 2933 MHz, 79.7 GB
Các thử nghiệm được đề xuất là:
Bảng 3.2. Các thử nghiệm được đề xuất

Số quan GloVe-6B Độ dài tối Độ dài tối Loại bỏ


sát đa của văn đa của văn stopword ở
(nghìn) bản gốc bản tóm tắt văn bản gốc

Thử nghiệm 1 200 100d 80 10 Có

Thử nghiệm 2 200 100d 100 20 Có

Thử nghiệm 3 400 300d 100 20 Có

Thử nghiệm 4 400 300d 100 20 Không

52
3.4. Kết quả thực nghiệm

3.4.1. Phân tích kết quả

Bảng 3.3. Phân tích kết quả của các thử nghiệm được đề xuất

Độ chính ROUGE-1 ROUGE-2 ROUGE-L Thời gian


xác (F1) (F1) (F1) huấn luyện

Thử nghiệm 1 65.3% 0.101 0.017 0.100 5 giờ

Thử nghiệm 2 81.95% 0.096 0.021 0.095 15 giờ

Thử nghiệm 3 84.33% 0.141 0.032 0.140 23 giờ

Thử nghiệm 4 85% 0.141 0.033 0.140 34 giờ

Ở thử nghiệm 1, mô hình chỉ đạt được độ chính xác 65.3%. Tóm tắt “great
product” được sử dụng ở đa số các tóm tắt của bài đánh giá tốt và tóm tắt “not as good
as the best” được sử dụng cho các bài đánh giá xấu. Mặc dù nhìn chung thì ý nghĩa
không sai, tuy nhiên nó lại quá bao quát dẫn đến việc tóm tắt không thật sự sát nghĩa
với văn bản gốc. Việc này xảy ra là do dữ liệu được huấn luyện chỉ có 200000 dòng
nhưng các quan sát lấy theo độ dài tối đa của văn bản gốc và văn bản tóm tắt chỉ chiếm
75% dữ liệu gốc.
Với bộ thông số của thử nghiệm 2 thì ta có thể thấy được thông số độ dài tối đa
đã tạo được ảnh hưởng lớn đến độ chính xác và thời gian huấn luyện của mô hình. Độ
chính xác của mô hình đã tăng lên mức 81.95%. Các tóm tắt đầu ra không còn quá bao
quát như ở thử nghiệm 1, chúng đã bắt đầu có tính cụ thể hóa như việc bài đánh giá cho
thức ăn cho thú cưng thì tóm tắt sẽ gồm “great for my” đi kèm với loại thú cưng.
Ở thử nghiệm 3, việc nâng độ phức tạp của embedding vector từ cũng như việc
tăng số quan sát đều có ảnh hưởng khá lớn đến tính linh hoạt, tính cụ thể của tóm tắt
đầu ra của mô hình. Các tóm tắt được tạo ra đã trở nên đa dạng hơn vì chúng sử dụng
nhiều từ ngữ hơn so với các thử nghiệm trước. Một ví dụ để minh họa cho kết luận này
có thể kể đến là về một bình luận về bánh mình không có Gluten của Pamela’s với ý
nghĩa đại khái là sản phẩm bánh mì không Gluten với chất lượng rất tốt. Nguyên văn

53
của văn bản ấy là “Pamela's Wheat-Free Amazing Bread Mix is perhaps the best mix
currently available for people that can not tolerate Gluten. The texture and taste is the
closest I've found to a dense wheat bread. I frequently add nuts and seeds, or cinnamon
to alter the tastes and characteristics. The product also can be used to make a very
good pizza crust. If you still want bread, but can't handle Gluten...this product is for
you.”. Văn bản được tóm tắt bởi người là “best gluten free bread out there”, khá sát
nghĩa với toàn bộ ý của bình luận. Và đối với văn bản được tóm tắt ở trong thử nghiệm
2, kết quả đưa ra là “great product”, tuy nhiên khi được tóm tắt ở thử nghiệm thứ 3, kết
quả đầu ra đã có sự cải thiện đáng kể khi văn bản được tóm tắt đã trở thành “best gluten
free bread out there”. Có thể thấy rằng kết quả đầu ra của mô hình thử nghiệm này đã
có thể sử dụng từ ngữ đa dạng hơn so với mô hình thứ 2. Ngoài ra thì ở thử nghiệm này,
độ chính xác của mô hình cũng đã tăng lên mức 84.33%.
Đến với thử nghiệm 4, mặc dù mô hình đã đạt được độ chính xác cao hơn so với
thử nghiệm trước, đạt mức 85%, tuy nhiên sự tăng lên này là không đáng kể khi độ
chính xác chỉ tăng thêm được 0.67%. Đồng thời để đánh đổi cho 0.67% tăng thêm ấy,
thời gian huấn luyện của mô hình cũng đã tăng lên đáng kể khi giờ đây các câu sẽ có số
lượng từ vựng nhiều hơn lúc trước. Mặc dù vậy, những văn bản tóm tắt đầu ra vẫn tương
tự so với thử nghiệm 3, cho thấy rằng tuy stopwords đã thể hiện được ảnh hưởng đối
với độ chính xác của mô hình, tuy vậy nó lại không tạo ra ảnh hưởng rõ rệt đến kết quả
đầu ra của mô hình. Điều này cho thấy rằng việc loại bỏ stopwords trước khi huấn luyện
mô hình là cần thiết khi nó giúp giảm đáng kể thời gian huấn luyện, đồng thời độ chính
xác cũng sẽ không chênh lệch quá nhiều so với khi giữ nguyên văn bản gốc.

3.4.2. Đánh giá

Tuy rằng huấn luyện mô hình khá tốn thời gian nhưng việc đưa ra tóm tắt lại
tương đối nhanh. Mô hình sẽ trải qua n+2 bước để tạo ra tóm tắt, với n là số lượng từ
trong tóm tắt. Tuy nhiên, chúng tôi không thể đặt cố định số lượng từ tóm tắt được vì
mô hình hoạt động theo phương thức dự đoán từ tiếp theo cho đến khi từ đó là token
kết thúc chuỗi.

54
Hình 3.8. Thực nghiệm tóm tắt của mô hình được đề xuất

Vì đây là mô hình tóm tắt văn bản trừu tượng (Abstractive) nên tóm tắt đầu ra có
điểm ROUGE khá thấp. Tuy nhiên, các tóm tắt của mô hình lại khá tốt và gần nghĩa với
tóm tắt gốc.
Sau đây là 5 tóm tắt được lấy ngẫu nhiên từ trong tệp đánh giá của mô hình.

Bảng 3.4. So sánh giữa tóm tắt gốc và tóm tắt của mô hình được đề xuất

Tóm tắt gốc Tóm tắt của mô hình

best oatmeal best oatmeal ever

just terrible terrible

incorrectly advertised not what expected

superb quality excellent

very yummy delicious

Có thể thấy được rằng các tóm tắt này không hoàn toàn sinh ra từ giống với tóm
tắt gốc của con người nhưng lại có ý nghĩa tương tự. Đối với hướng đi Abstractive của
mô hình chúng tôi thì đây là một dấu hiệu đáng mừng khi nó đã có thể tạo ra được đoạn
văn bản tóm tắt biểu thị được ý nghĩa của đoạn văn bản gốc. Điều này cũng cho thấy
rằng mô hình chúng tôi huấn luyện đã đạt được khả năng tóm tắt văn bản ở mức tương
đối tốt.

55
CHƯƠNG 4: KẾT LUẬN

4.1. Kết quả đạt được của đề tài

Thông qua tiểu luận này, chúng tôi đã hiểu hơn về mạng học sâu nói chung và
mạng thần kinh hồi quy (RNN) cũng như mạng nơ-ron dài-ngắn hạn (LSTM) nói riêng.
Không những thế, chúng tôi còn biết thêm được về một trong những bài toán của xử lý
ngôn ngữ tự nhiên, đó là tóm tắt văn bản, cùng với cách thức để đánh giá kết quả của
bài toán đó. Không chỉ về mặt kiến thức chuyên ngành, việc thực hiện tiểu luận còn
giúp chúng tôi huấn luyện được một mô hình tóm tắt văn bản tiếng Anh với kết quả đầu
ra tương đối tốt.
Kết quả thực nghiệm của chúng tôi đã chứng minh rằng khả năng của LSTM
trong việc duy trì và quản lý thông tin dài hạn đã cho thấy hiệu suất tốt trong tác vụ tóm
tắt văn bản so với các phương pháp truyền thống. Dựa vào điều này, có thể thấy được
nghiên cứu của chúng tôi đã đóng góp một phần nhỏ vào lĩnh vực tóm tắt tự động và
mở ra những hướng phát triển tiềm năng cho các nghiên cứu tương lai trong lĩnh vực
này.
4.2. Hạn chế

Vì chưa phải là những chuyên gia trong lĩnh vực này cũng như thời gian và tài
nguyên có hạn mà mô hình được chúng tôi thực hiện trong tiểu luận này vẫn còn một
số hạn chế.
Thứ nhất đó là về mặt ngữ nghĩa, tóm tắt được tạo ra vẫn chưa thực sự giống với
người. Một số tóm tắt vẫn còn nghĩa khá rộng, chưa thể bám sát hoàn toàn được với nội
dung trong văn bản gốc.
Hạn chế tiếp theo đó là về độ chính xác, vì cấu hình máy vẫn còn hạn chế nên
chúng tôi vẫn chưa thể thử nghiệm được với tập dữ liệu lớn hơn cũng như sử dụng
phương pháp nhúng từ FastText với 14 tỷ tokens để nâng cao độ chính xác của mô hình
được huấn luyện. FastText chứa số lượng từ lớn hơn phương pháp GloVe mà chúng tôi
đang sử dụng hiện tại, bởi vì không như Glove chỉ chứa những từ vựng dựa trên kết quả
tìm kiếm của Google, fastText có các từ vựng từ những nguồn như Wiki hay Common

56
Crawl. Rất có khả năng nhiều từ trong dữ liệu của chúng tôi không nằm trong GloVe
nên có thể gây nên một số hạn chế trong việc tóm tắt.
Ngoài ra thời gian huấn luyện và điều chỉnh các tham số của mô hình chiếm
nhiều thời gian, trung bình trên 10 giờ cho cho một lần huấn luyện..
4.3. Hướng phát triển

Nhằm khắc phục nhược điểm về thời gian huấn luyện của mô hình cũng như tăng
kích thước của văn bản đầu vào, trong tương lai chúng tôi sẽ tìm hiểu về cách thức kết
hợp giữa LSTM với những phương pháp thu giảm số chiều dữ liệu như gom cụm như
trong nghiên cứu “Extractive text summarization on large-scale dataset using K-Means
clustering” [21], CNN như trong nghiên cứu “Abstractive text summarization using
LSTM-CNN based deep learning” [6] hoặc TF-IDF trước khi thực hiện bước tóm tắt
của mô hình Encoder-Decoder LSTM.
BERT (Bidirectional Encoder Representations from Transformers) là một trong
những mô hình ngôn ngữ mạnh mẽ nhất hiện nay được giới thiệu bởi Google Research.
Điểm độc đáo của BERT là khả năng hiểu cả hai chiều của một ngữ cảnh ngôn ngữ, tức
là khả năng xử lý thông tin từ cả phía trước và phía sau mỗi từ trong câu. Nhờ vào khả
năng này, BERT đã đạt được những thành tựu đáng kể trong nhiều ứng dụng liên quan
đến xử lý ngôn ngữ tự nhiên, như tìm kiếm thông tin, dịch máy, và tóm tắt văn bản.
Trong bối cảnh mô hình tóm tắt văn bản, việc tích hợp BERT như một phần của Encoder
có thể mang lại sự cải thiện đáng kể về khả năng hiểu và mã hóa thông tin từ văn bản
nguồn. Kết hợp BERT với mô hình Encoder-Decoder LSTM sẽ cung cấp cơ hội để tận
dụng cả tính toán song phương của BERT và khả năng linh hoạt của mô hình LSTM
trong việc tạo ra tóm tắt.
Sau khi xây dựng mô hình tóm tắt văn bản có hiệu quả cao. Trong tương lai,
chúng tôi mong muốn xây dựng một ứng dụng với giao diện thân thiện có khả năng tự
động thu thập, tóm tắt và phân loại những đánh giá của sản phẩm.

57
TÀI LIỆU THAM KHẢO

[1]. M. Al-Maleh and S. Desouki, “Arabic text summarization using deep learning approach,” J.
Big Data, vol. 7, no. 1, p. 109, Dec. 2020, doi: 10.1186/s40537-020-00386-7
[2]. S. Ma and X. Sun, “A Semantic Relevance Based Neural Network for Text Summarization
and Text Simplification.” arXiv, Oct. 06, 2017. Accessed: Oct. 17, 2023. [Online]. Available:
http://arxiv.org/abs/1710.02318
[3]. Quản Thành Thơ, “Mạng nơ-ron nhân tạo: Từ hồi quy đến học sâu”. Việt Nam: NXB Đại học
Quốc gia Tp.Hồ Chí Minh, 2021
[4]. J. Pennington, R. Socher, and C. Manning, “Glove: Global Vectors for Word
Representation,” in Proceedings of the 2014 Conference on Empirical Methods in Natural
Language Processing (EMNLP), Doha, Qatar: Association for Computational Linguistics,
2014, pp. 1532–1543. doi: 10.3115/v1/D14-1162.
[5]. N. Shafiq, I. Hamid, M. Asif, Q. Nawaz, H. Aljuaid, and H. Ali, “Abstractive text
summarization of low-resourced languages using deep learning,” PeerJ Comput. Sci., vol. 9,
p. e1176, Jan. 2023, doi: 10.7717/peerj-cs.1176.
[6]. S. Song, H. Huang, and T. Ruan, “Abstractive text summarization using LSTM-CNN based
deep learning,” Multimed. Tools Appl., vol. 78, no. 1, pp. 857–875, Jan. 2019, doi:
10.1007/s11042-018-5749-3.
[7]. N. G. Gopikakrishna, P. Sreenivasan, and V. Chandran, “Comparative Study on Text
Summarization using NLP and RNN Methods,” Int. J. Eng. Res., vol. 9, no. 13, 2021.
[8]. T. Mikolov, K. Chen, G. Corrado, and J. Dean, “Efficient Estimation of Word
Representations in Vector Space.” arXiv, Sep. 06, 2013. Accessed: Nov. 11, 2023. [Online].
Available: http://arxiv.org/abs/1301.3781
[9]. P. Bojanowski, E. Grave, A. Joulin, and T. Mikolov, “Enriching Word Vectors with Subword
Information,” Trans. Assoc. Comput. Linguist., vol. 5, pp. 135–146, Dec. 2017, doi:
10.1162/tacl_a_00051.
[10]. M. Patel, A. Chokshi, S. Vyas, and K. Maurya, “Machine Learning Approach for Automatic
Text Summarization Using Neural Networks,” vol. 7, no. 1, 2018.
[11]. M. Lippi, M. A. Montemurro, M. Degli Esposti, and G. Cristadoro, “Natural Language
Statistical Features of LSTM-Generated Texts,” IEEE Trans. Neural Netw. Learn. Syst., vol.
30, no. 11, pp. 3326–3337, Nov. 2019, doi: 10.1109/TNNLS.2019.2890970.
[12]. C.-Y. Lin, “ROUGE: A Package for Automatic Evaluation of Summaries”.
[13]. A. K. Yadav, Ranvijay, R. S. Yadav, and A. K. Maurya, “State-of-the-art approach to
extractive text summarization: a comprehensive review,” Multimed. Tools Appl., vol. 82, no.
19, pp. 29135–29197, Aug. 2023, doi: 10.1007/s11042-023-14613-9.

58
[14]. S. Chaurasia, D. Dasgupta, and R. Regunathan, “T5LSTM-RNN based Text Summarization
Model for Behavioral Biology Literature,” Procedia Comput. Sci., vol. 218, pp. 585–593,
2023, doi: 10.1016/j.procs.2023.01.040.
[15]. A. Kanapala, S. Pal, and R. Pamula, “Text summarization from legal documents: a survey,”
Artif. Intell. Rev., vol. 51, no. 3, pp. 371–402, Mar. 2019, doi: 10.1007/s10462-017-9566-2.
[16]. A. Burney, B. Sami, and N. Mahmood, “Urdu Text Summarizer using Sentence Weight
Algorithm for Word Processors,” Int. J. Comput. Appl., vol. 46.
[17]. D. Bahdanau, K. Cho, and Y. Bengio, “Neural Machine Translation by Jointly Learning to
Align and Translate.” arXiv, May 19, 2016. Accessed: Nov. 15, 2023. [Online]. Available:
http://arxiv.org/abs/1409.0473
[18]. M.-T. Luong, H. Pham, and C. D. Manning, “Effective Approaches to Attention-based
Neural Machine Translation.” arXiv, Sep. 20, 2015. Accessed: Nov. 22, 2023. [Online].
Available: http://arxiv.org/abs/1508.04025
[19]. A. Vaswani et al., “Attention Is All You Need.” arXiv, Aug. 01, 2023. Accessed: Dec. 09,
2023. [Online]. Available: http://arxiv.org/abs/1706.03762.
[20]. Z. Li et al., “Text Compression-aided Transformer Encoding,” IEEE Trans. Pattern Anal.
Mach. Intell., pp. 1–1, 2021, doi: 10.1109/TPAMI.2021.3058341

[21]. T.-H. Nguyen and T.-N. Do, “Extractive text summarization on large-scale dataset using K-
Means clustering,” in Lecture Notes in Computer Science, 2022, pp. 737–746. doi:
10.1007/978-3-031-08530-7_62.

59

You might also like