Về phương pháp tóm tắt, hiện nay trên thế giới đã có nhiều công trình nghiên cứu áp dụng các phương pháp tóm tắt khác nhau : phương pháp TF-IDF , phương pháp phân cụm (Cluster based), phương pháp tiếp cận máy học, phương pháp phân tích ngữ nghĩa tiềm ẩn (LSA), mạng nhân tạo(neural networks), phương pháp Logic mờ (fuzzy logic), phương pháp hồi quy toán học (Mathematical regression), phương pháp dựa trên truy vấn (Query based). Trong nhiều năm qua đã có nhiều công trình nghiên cứu tạo tóm tắt tự động văn bản tiếng Anh, tiếng Việt, ..
Trang 1ĐỒ ÁN TÓM TẮT TÓM L ƯỢ C
Trang 2PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
2 Mục đích của ĐATN
3 Các nhiệm vụ cụ thể của ĐATN
4 Lời cam đoan của sinh viên
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về Deep Learning [17]
2.2 Mạng nơron nhân tạo (Artificial Neural Networks)
2.3 Mô hình seq2seq
2.4 Kỹ thuật Attention
2.5 Nhược điểm của mô hình seq2seq và cách khắc phục
2.6 Thuật toán Beam Search
2.7 Học tăng cường (reinforcement learning)
CHƯƠNG 3: HƯỚNG TIẾP CẬN VÀ MÔ HÌNH ĐỀ XUẤT
7 Seq2Seq Model (Phần decoder )
Trang 31 Kết luận 58
Trang 4DANH MỤC HÌNH VẼ
Hình 2.1 Mối quan hệ giữa AI, ML và DL
Hình 2.2 Cấu trúc của một tế bào thần kinh sinh học
Hình 2.3 Kiến trúc mạng Neural Network
Hình 2.4 Kiến trúc của mô hình encoder-decoder seq2seq
Hình 2.5 Mạng nơ-ron hồi quy
Hình 2.6 Bidirectional LSTM = forward LSTM + backward LSTM
Hình 2.7 Minh họa mô hình seq2seq dùng attention trong bài toán dịch máy
Hình 2.8 Beam search với vi phạm lề
Hình 2.9 Sequence-to-Sequence as Beam Search Optimization
Hình 3.1 Pointer-Gen Nguồn
Hình 3.2 Mô hình seq2seq cơ bản
Hình 3.3 Mô hình tổng quát
Hình 3.4 Mô hình seq2seq cơ bản
Hinh 4.1: Biểu đồ lượt star và repos trên github sử dụng TF
Hinh 4.2: Thống kê nhu cầu tensorflow của các nhà tuyển dụng
Hinh 4.3: Mô phỏng một đồ thị xây dựng bởi TF
hình 4.4 Ví dụ về một graph trong Tensorflow
Hình 4.5 Phân bố độ dài chuỗi tóm tắt (abstract)
Hình 4.6 Phân bố độ dài chuỗi văn bản (article)
Trang 5CHƯƠNG 1: MỞ ĐẦU
1.1 Đặt vấn đề
với một văn bản lớn, chứa nhiều thông tin
(LSA), mạng nhân tạo(neural networks), phương pháp Logic mờ (fuzzy logic), phương
pháp hồi quy toán học (Mathematical regression), phương pháp dựa trên truy vấn (Query
tiếng Anh, tiếng Việt,
1.2 Phân loại bài toán tóm tắt
mục đích tóm tắt
được tóm tắt” Cách chia này sẽ cho ta nhiều cách phân loại con khác nhau Cụ thể như:
- Kiểu văn bản (bài báo, bản tin, thư, báo cáo …) Với cách phân loại này, tóm tắt
bản quy định
- Định dạng văn bản: dựa vào từng định dạng văn bản khác nhau, tóm tắt cũng chia ra
học dựa vào mẫu cấu trúc đã xây dựng từ trước để tiến hành tóm tắt
- Số lượng dữ liệu đầu vào: tùy vào số lượng đầu vào của bài toán tóm tắt, người ta
trang web cùng chủ đề hoặc là cụm dữ liệu được trả về từ quá trình phân cụm
Trang 6tương ứng.
• Tómtắt trên cơsởmục đíchthực chấtlà làm rõcách tóm tắt,mụcđíchtómtắtlàgì,
tóm tắt phục vụ đối tượng nào
cho các đối tượng đọc thông thường
sắp xếp
và tóm tắt thông tin (Informative). Tómtắt chỉthị (indicative) chỉra loạicủathôngtin,ví
dụ như là loại văn bản chỉ thị “tối mật” Còn tóm tắt thông tin chỉ ra nội dung của thông tin
tóm tắt này thường được sử dụng trong quá trình tóm tắt các kết quả trả về từ máy tìm kiếm
ngôn ngữ:
thì văn bản đầu ra cũng là ngôn ngữ tương ứng
đầu ra có ngôn ngữ khác với ngôn ngữ của văn bản đầu vào
tóm lược (Abstract)
• Tóm tắt theo trích xuất: là tómtắtcókếtquảđầuralàmộttómtắtbaogồmtoànbộ các phần quan trọng được trích ra từ văn bản đầu vào
• Tóm tắt theo tóm lược:làtómtắtcókếtquảđầuralàmộttómtắtkhônggiữnguyên
một văn bản tóm tắt mới
Trang 7
theo nén văn bản
khi đã được trích xuất
nghiên cứu về tóm tắt tự động
1.3 Tóm tắt đơn văn bản
văn bản đơn
loại tóm tắt là: tóm tắt theo trích xuất và tóm tắt theo tóm lược
Tóm tắt theo trích xuất
Tóm tắt theo tóm lược
Trang 8pháp dựa vào trích xuất thông tin, phương pháp dạng này sử dụng các mẫu đã được định
phương pháp dạng này thường chỉ áp dụng trong một miền nhất định
1.4 Tóm tắt đa văn bản
đích của tóm tắt đa văn bản:
chương trình cần dùng
những thông tin trùng lặp giữa các văn bản, xác định thông tin quan trọng trong nhiều
văn bản hay việc sắp xếp các thông tin trong văn bản tóm tắt
Kết luận: Đồ án tập trung nghiên cứu tóm tắt đơn văn bản theo kiểu tóm tắt với bộ
dữ liệu là các bài báo tiếng Việt
Trang 9CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về Deep Learning [17]
Trong những năm gần đây mọi người đều nghe rất nhiều về cuộc cách mạng công
nghiệp 4.0 hay một số chủ đề hot nhất hiện nay như Trí tuệ nhân tạo (Artificial Intelligence)
và Học máy (Machine Learning) AI ra đời mang lại nhiều giá trị cho cuộc sống loài người AI trong cuộc sống hàng
ngày như: Tivi, Tủ lạnh, Điện thoại, Thiết bị âm thanh, Thiết bị nhà bếp, những dòng sản
phẩm này có thể được ứng dụng công nghệ AI vào để các thiết bị được thông minh hơn
Ngoài ra một số sản phẩm nổi trội như AI mô phỏng được các hoạt động y hệt con người,
ALphaGo của google đã đánh bại Lee Sedol _ kỳ thủ cờ vây hàng đầu thế giới, chụp x quang
3 chiều giúp sớm phát hiện ung thư, công nghệ nano giúp chữa trị ung thư cho con người,
công nghệ thực tế ảo trong pokemon go từng gây sốt cho toàn thế giới, … ML là một lĩnh vực con của AI, một số lĩnh vực phổ biến mà ML góp mặt như: ●Xử lý ảnh (Image Processing): gắn thẻ hình ảnh (Image Tagging), Nhận dạng ký tự
(Optical Character Recognition), Ô tô tự lái (Self-driving cars), … ●Phân tích văn bản (Text analysis): Lọc spam (Spam filtering), Phân tích ngữ nghĩa (Sentiment Analysis), Khai thác thông tin (Information Extraction), … ●Khai phá dữ liệu (Data mining): Phát hiện bất thường (Anomaly detection), Phát hiện
các quy luật (Association rules), Gom nhóm (Grouping), Dự đoán (Predictions),
●Trò chơi điện tử (Video games) và robot (Robotics): Học tăng cường (Reinforcement
learning),
Trang 10Hình 2.1 Mối quan hệ giữa AI, ML và DL [17]
là một tập hợp các máy học nơi mạng nơ-ron nhân tạo, các thuật toán mô phỏng bộ não con
người, học hỏi từ một lượng lớn dữ liệu Tương tự như cách chúng ta học hỏi từ kinh nghiệm,
thuật toán học sâu sẽ thực hiện một nhiệm vụ nhiều lần, mỗi lần tinh chỉnh một chút để cải
thiện kết quả Bất kỳ vấn đề nào đòi hỏi sự tư duy để tìm ra lời giải học sâu đều có thể học
cách giải quyết Từ việc phân loại hình ảnh và dịch ngôn ngữ đến chế tạo xe tự lái, tất cả
những nhiệm vụ này đều được điều khiển bởi máy thay vì nỗ lực của con người Deep
Learning đã thâm nhập vào nhiều ngành công nghiệp đa dạng, và nó tiếp tục phát triển Vì
vậy đây là một trong những lĩnh vực được rất nhiều người quan tâm Một số ví dụ cụ thể thực tế của Deep Learning ●Trợ lý ảo: Alexa, Siri, Cortana đều là những trợ lý ảo nổi tiếng hiện nay Những ứng
dụng này đều áp dụng phương pháp học sâu nhằm giúp người dùng cũng như người
sử dụng tương tác với máy hướng tới hai bên cùng hiểu ngôn ngữ của nhau ●Dịch thuật:Theo cách tương tự, thuật toán học sâu có thể tự động dịch giữa các ngôn
ngữ Một trong những lợi ích nổi bật của ứng dụng này là du lịch, trao đổi văn hóa
giữa các nước, đặc biệt giúp ích cho vấn đề ngoại giao của chính phủ, các doanh nhân,
●Ô tô tự hành và máy bay không người lái: Một chiếc xe có thể điều khiển các thao
tác của mình, ví dụ như có thể tự di chuyển, tự dừng lại, tự rẽ phải-trái, hoặc có thể tự
xử lý vấn đề khi gặp các vật cản thông qua những thuật toán học sâu Khi có càng
nhiều dữ liệu (dữ liệu lowns) thì thuật toán học sâu càng hiệu quả giúp máy ngày càng
có khả năng thảo thác như con người trong việc xử lý các thông tin
Trang 11●Chatbots và dịch vụ bots: Hiện nay có rất nhiều công ty có nhu cầu tương tác cũng
của cty
trong ảnh để thay đổi màu sắc Kết quả đạt được rất ấn tượng và có độ chính xác cao
thể trước mặt chúng
đã nhận được sự đầu tư của nhiều công ty dược phẩm và y tế lớn
cần? Đó chính là ứng dụng của học sâu hay deep learning
2.2 Mạng nơron nhân tạo (Artificial Neural Networks)
như nhận dạng giọng nói, xử lý ảnh hoặc trong xử lý ngôn ngữ tự nhiên
Nơ-ron nhân tạo được người ta lấy cảm hứng từ nơron sinh học
Trang 12Hình 2.2 Cấu trúc của một tế bào thần kinh sinh học[5]
Cũng tương tự đối với mô hình perceptron:
Một perceptron sẽ nhận một hoặc nhiều đầu vào dạng nhị phân và cho ra một kết quả nhị phân duy nhất Các đầu vào được điều phối tầm ảnh hưởng bởi các tham số trọng lượng
của nó, kết quả đầu ra được quyết định dựa vào một ngưỡng quyết định nào đó:
Trang 13
Hình 2.3 Kiến trúc mạng Neural Network
Quá trình suy luận từ tầng vào tới tầng ra của mạng NN là quá trình lan truyền tiến (feedforward), nghĩa là đầu vào các nơ-ron tại 1 tầng đều lấy kết quả các nơ-ron tầng trước đó
mà không có quá trình suy luận ngược lại
z(l + 1) = (l + 1) (l )
a(l + 1) = (l + 1)
Trang 14Hàm lỗi của mạng cũng tương tự như logistic regression có dạng cross-entropy, tuy nhiên khác logistic regression ở chỗ mạng NN có nhiều đầu ra nên hàm lỗi cũng phải lấy tổng
lỗi của tất cả các đầu ra này:
(i) + − k (i) − k (i)
Hình 2.4 Kiến trúc của mô hình encoder-decoder seq2seq[5]
Mô hình điển hình thuộc lớp này bao gồm 3 phần: bộ mã hóa (Encoder), vectơ mã hóa trung gian (Encoder vector) và bộ giải mã (Decoder)
Bộ mã hóa – Encoder
Trang 15● Một ngăn xếp chứa các mạng con là phần tử của RNN (hoặc các ô nhớ của LSTM hay GRU) nơi nhận vào tín hiệu của một phần tử của chuỗi đầu vào và truyền tiếp
về phía cuối mạng
● Trong bài toán hỏi đáp, chuỗi đầu vào là tập hợp tất cả các từ của câu hỏi Mỗi từ
Công thức đơn giản này mô tả kết quả của một mạng nơ ron hồi quy (RNN) thông
Véc tơ mã hóa trung gian – Encoder vector
● Đây là trạng thái ẩn nằm ở cuối chuỗi, được tính bởi bộ mã hóa, nó cũng được tính bởi công thức phía trên
● Véc tơ này có chức năng gói gọn thông tin của toàn bộ các phần tử đầu vào để giúp cho bộ mã hóa dự đoán thông tin chính xác hơn
● Véc tơ này sau đó hoạt động như trạng thái ẩn đầu tiên của bộ giải mã
● Trong bài toán hỏi đáp, chuỗi đầu ra là tập hợp các từ của câu trả lời Mỗi từ được
Như chúng ta thấy, các trạng thái ẩn được tính bởi trạng thái ngay trước đó
oftmax(W h )
định đầu ra cuối cùng (VD: các từ trong bài toán hỏi đáp)
độ dài khác nhau Vì thế, nó mở ra giải pháp cho một loạt các bài toán trong lĩnh vực này
* Mạng neural hồi quy RNN
Trang 16RNN ra đời với ý tưởng chính là sử dụng một bộ nhớ để lưu lại thông tin từ từ những
bước tính toán xử lý trước để dựa vào nó có thể đưa ra dự đoán chính xác nhất cho bước dự
đoán hiện tại RNN (Recurrent Neural Network) được ứng dụng và thành công ở rất nhiều bài toán,
đặc biệt là ở lĩnh vực NLP(xử lý ngôn ngữ tự nhiên) RNN có khả năng nhớ được những tính
toán (thông tin) ở trước nó trong khi các mô hình mạng truyền thống thì không Tức là chúng
không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều
bài toán.RNN cho phép ta dự đoán xác suất của một từ mới nhờ vào các từ đã biết liền trước
nó Cơ chế này hoạt động giống với ví dụ bên trên, với các đầu ra của cụm này sẽ là đầu vào
của cụm tiếp theo cho đến khi ta được một câu hoàn chỉnh Các input thường được encode
dưới dạng 1 vector one hot encoding Ví dụ với tập dataset gồm 50000 câu ta lấy ra được một
dictionary gồm 4000 từ, từ "hot" nằm ở vị trí 128 thì vector one hot của từ "hot" sẽ là một
vector gồm 4000 phần tử đều bằng 0 chỉ có duy nhất vị trí 128 bằng 1 Mô hình này này
chính là mô hình Many to Many với số lượng đầu ra, đầu vào và lớp ẩn bằng nhau Ta đi sâu
tìm hiểu về một mô hình mạng RNN như sau: Trong hình trên, A là mạng neural hồi quy Nó nhận một đầu vào xt , tiến hành xử lý
và đưa ra đầu ra ht Điểm đặc biệt của A là nó sẽ lưu lại giá trị của ht để sử dụng cho đầu vào
tiếp theo Có thể coi một mạng neural hồi quy là một chuỗi những mạng con giống hệt nhau,
mỗi mạng sẽ truyền thông tin nó vừa xử lý cho mạng phía sau nó Nếu ta tách từng vòng lặp
xử lý trong A ra thành từng mạng con theo cách suy nghĩ như trên thì ta sẽ có một mạng có
kiến trúc như sau:
Trang 17Hình 2.5 Mạng nơ-ron hồi quy
trong mô hình mạng RNN:
o t= sof tmax(V st)Một vài ứng dụng của RNN trong xử lý ngôn ngữ tự nhiên
- Mô hình hóa ngôn ngữ và sinh văn bản
- Dịch máy
- Nhận dạng giọng nói
- Mô tả hình ảnh
Trang 18đạo hàm Có một vài phương pháp được đề xuất để giải quyết vấn đề này và các kiểu mạng
RNN hiện nay đã được thiết kế để triệt tiêu bớt chúng như LSTM * Mạng Long Short Term Memory (LSTM) LSTM cũng có cơ chế hoạt động dựa trên RNN nhưng có một số thay đổi trong các
cell Trong mạng LTSM có các cổng giúp lọc thông tin Trạng thái của cell có thể coi là trí nhớ
của toàn hệ thống Muốn được cập nhất vào hệ thống này, các thành phần thông tin phải đi
qua các cổng Vậy có thể thấy cơ chế này linh hoạt hơn khi mà các thành phần thông tin được
chọn lọc mới có thể được đưa vào bộ nhớ, nhờ đó các thành phần có ích từ thời điểm rất lâu
trong quá khứ vẫn có thể có tác dụng điều chỉnh Trong LSTM sử dụng hàm sigmoid, hàm này có tác dụng như hàm tanh, nhưng vùng chiếu
của nó chỉ là 0( − 1 ) thay vì −( 1 − 1 ) Nếu phần thông tin nào không quan trọng, ta chiếu nó
về 0, nó coi như bị "lãng quên"
Trang 19Chúng ta giờ sẽ đi sâu về các cổng trong LSTM:
trò là mask để lọc thông tin từ trạng thái cell
tác dụng lọc thông tin đã qua xử lý từ output hàm tanh
Trang 20Nhờ 2 cổng trên, ta đã có thể tính toán được giá trị của trạng thái cell hiện tại, từ đó truyền đi
cho các từ phía sau: Cổng ra: cổng này quyết định output của từ hiện tại là gì Nó được lấy thông tin từ 2
nguồn: trạng thái cell và input hiện tại Trạng thái cell sau khi chỉnh sửa sẽ đi qua hàm tanh
và input hiện tại thì được đi qua hàm sigmoid Từ đây ta kết hợp 2 kết quả trên để có được
kết quả đầu ra Chú ý rằng cả kết quả đầu ra và cả trạng thái cell đều được đưa vào bước tiếp
theo
Trang 21Đó là tổng quan những gì LSTM thực hiện Lọc bộ nhớ hiện tại, chắt lọc thông tin hiện
tại để đưa vào bộ nhớ và kết hợp bộ nhớ và dữ liệu hiện tại để đưa ra đầu ra * Mạng Bidirectional LSTM (bi-LSTM) Mạng LSTM hoạt động theo một chiều nhất định (forward direction) Hay nói một cách khác, mạng này chỉ mang thông tin tính tới thời điểm hiện tại Tuy nhiên, trong nhiều bài toán NLP thì việc biết thông tin của các timesteps tiếp theo giúp cải thiện rất nhiều kết quả output (Translation, Speech recognition, Handwritten recognition, ).Trong trường hợp này chúng ta có thể sử dụng Bi-directional LSTM với việc xử lý thông tin theo cả hai chiều
(forward và backward) [2] Mô hình hoạt động của Bi-directional LSTM có thể được mô tả
như hình dưới đây:
Hình 2.6 Bidirectional LSTM = forward LSTM + backward LSTM
2.4 Kỹ thuật Attention
Trang 22khi dịch một câu từ tiếng nước này sang tiếng nước khác, chúng ta thường quan tâm nhiều
được đưa ra để giải quyết vấn đề đó
trong dịch máy
Minh họa mô hình seq2seq dùng attention trong bài toán dịch máy
Trang 23Chuối đầu vào x 1:n được mã hóa bằng biRNN (bidirectional RNN), sinh ra n vector
cj = 1:n ︿1:j
p(t |t , x ) t
Một số biến thể của kỹ thuật attention như :
●Additive attention
●Multiplicative attention
●Self-attention
●Key-value attention
lời câu hỏi, tóm tắt văn bản,…
2.5 Nhược điểm của mô hình seq2seq và cách khắc phục
Trang 24gặp phải lỗi câu, từ hoặc cụm từ thường bị lặp lại Bên cạnh đó một số thông tin còn bị mất
mát như chữ số, địa danh hoặc tên riêng
Một mô hình tiêu biểu đưa ra nhằm khắc phục những lỗi mà em vừa nêu ở trên :
- Cơ chế Coverage giúp tránh việc câu, từ cụm từ bị lặp lại nhiều lần
- Cơ chế pointer-generation để làm giảm việc mất mát dữ liệu thông tin của văn bản
Năm 2017, những đề xuất này được Abigail See cùng cộng sự của mình [1] thử nghiệm trên bộ dữ liệu tiếng Anh CNN/Daily Mail và đã đem lại thành công đáng kể Thêm vào đó
nhằm tăng tính hiệu quả cho việc tóm tắt văn bản thì em cũng đã thêm vào những đặc trưng
của văn bản trong mô hình này trên cả hai bộ dữ liệu tiếng Anh và tiếng Việt
2.6 Thuật toán Beam Search
hoá xác suất có điều kiện tổng thể Để giải quyết vấn đề này, thuật toán Beam Search
độ rộng K sao cho tại mỗi bước đưa ra K đề xuất và tiếp tục giải mã với một trong số chúng
cụ thể gồm 3 bước chính:
a Search-Based Loss: sử dụng một hàm tính điểm để tính tổng điểm của mỗi chuỗi
Trang 25với Δ(y︿1:t (K)) biểu thị độ lỗi cụ thể của hàm lỗi; nó trả về giá trị 0 khi các yêu cầu lề thỏa mãn và ngược lại trả về một số dương Hàm lỗi được tối ưu ở hai bước tiếp theo
hình dưới
Hình 2.8 Beam search với vi phạm lề
Để tối thiểu hóa hàm lỗi, ta xét các trường hợp như sau:
Search tiêu chuẩn
đơn giản, ta có:
(K)