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

ÁP DỤNG DEEP LEARNING TRONG BÀI TOÁN TÓM TẮT VĂN BẢN TIẾNG VIỆT

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trong đồ án tốt nghiệp này, em trình bày phương pháp tóm tắt văn bản sử dụng mô hình sequence to sequence kết hợp cũng kĩ thuật attention. Ngoài ra có sử dụng thêm kỹ thuật Pointer-Gen và Coverage cùng với những đặc trưng như vị trí câu, tần suất từ nhắm mục đích nâng cao chất lượng của văn bản tóm tắt.

Trang 1

ÁP DỤNG DEEP LEARNING TRONG BÀITOÁN TÓM TẮT VĂN BẢN TIẾNG VIỆT

Trang 2

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Trong kỉ nguyên công nghệ số như hiệncnay, lượng kiến thức của nhân loại là vô cùng lớn, hơn nữa sự gia tăng của lượng thôngctin đó theo thời gian là vô cùng nhanh, và đa phần trong đó được biểu diễn dưới dạng các văn bản Vì vậy, xuất phát từ thựcctế, cầncthiết xây dựng mộtcphương pháp tóm tắt văn bản giúp trích rút các thông tin hiệu quả một cách súc tích nhất, mà không làm mất đi ý tưởng muốn truyền đạt của toàn bộ văn bản, giúp tiết kiệm thời gian và công sức cho người đọc Hơn nữa kết quả của bài toán này cũng có thể ứng dụng trong nhiều lớp bài toán khác Khi độ dài của văn bản tóm tắt đạt mộtcngưỡng nhất định, kết quả có thể được ứng dụng vào : Bài toán trích rút từ khóa, xây dựng công cụ tìmckiếm, Đã có nhiều giải pháp, thuật toán được xây dựng và đưa ra, tiêu biểu như NMF, SVM …

Với sự phát triển của Học máy (Machine Learning) nói chung và phương pháp học nhiều tầng (Deep Learning) nói riêng, chúng ta có thêm nhiều thuật toán mới, nhiều công cụ hay để có thể giải quyết nhiều bài toán thực tế phức tạp, và bài toán được hướng đến ở đây là bài toán tóm tắt văn bản Một mô hình rất nổi tiếng được sử dụng trong bài toán này là mô hình sequence to sequence, mô hình này được phát triển từ RNN đi lên Trong Phần 2 của đồ án, sẽ trình bày thứ tự phát triển từ RNN đi lên đến mô hình sequence to sequence Sau đó là sự kết hợp những kỹ thuật mới là Pointer- Gen và Coverage để khắc phục những yếu điểm của mô hình sequence to sequence Ngoài ra trong mô hình mà đồ án đề xuất còn tích hợp những đặc trưng như là : vị trí câu, tần suất của từ trong văn bản để nâng cao tính chính xác của văn bản tóm tắt

Đóng góp chính của đồ án là đưa ra những đề xuất mới để nâng cao độ chính xác cho bài toán tóm tắt đơn văn bản tiếng Việt với độ chính xác cao

Trang 3

ABSTRACT OF THESIS

In this digital era, the amount of knowledge is enormous and the increasing speed of the amount of information over time is extremely fast, and most of them are performed in the form of texts Therefore, it is necessary to build a method of abstract texts that help to extract the most concise effective information, without losing the idea of wanting to convey the entire text, saving time and effort for readers Further results of this math can also be applied in many other layers of math When the length of the summary text reaches aC

certain thresholds, the results can be applied to the keyword extracting virus, building search engineCsearch, etc There have been many solutions and algorithms that are built and launched such as NMF and SVM

With the development of Machine Learning in general and multi-level learning (Deep Learning) in particular, we have more new algorithms, many useful tools that help us solve many real complex problems One important problem is summary math text A very famous model used in this article is the sequence to sequence model, which was developed from the RNN Part 2 of the project will present the development order from RNN to the

sequence to sequence model, then a combination of new techniques called Pointer-Gen and

Coverage will be discussed to overcome the weaknesses of the sequence to sequence model

In addition, the model also integrates the characteristic as: sentence position, frequency of the word in the text to improve the accuracy of the summary text

The main contribution of the project is to give a new direction to the article abstract Vietnamese text with a high level of accuracy

Trang 4

MỤC LỤC

Trang 5

1 ĐÓNG GÓP CỦA ĐỒ ÁN37

Trang 6

DANH SÁCH HÌNH VẼ VÀ BẢNG

HÌNH 1 1 TỔNG QUAN VỀ CÔNG NGHỆ HỌC SÂU 5

HÌNH 1 2 NEURAL CƠ BẢN 7

HÌNH 1 3 TỔNG QUAN MẠNG NEURAL 7

HÌNH 1 4 QUÁ TRÌNH XỬ LÝ THÔNG TIN CỦA MỘT ANN 7

HÌNH 1 5 CẤU TRÚC MẠNG HỒI QUY 9

HÌNH 2 2 MÔ HÌNH SEQ2SEQ CƠ BẢN 18

HÌNH 2 2 MÔ HÌNH ATTENTION-BASED SEQ2SEQ 20

HÌNH 2 4 POINTER-GEN………21

HÌNH 3.1 TENSORFLOW HỖ TRỢ TÍNH TOÁN SONG SONG TRÊN CẢ CPU VÀ GPU 26

HÌNH 3.2 PHÂN PHỐI ĐỘ DÀI CHUỖI ABSTRACT……….27

HÌNH 3.3 PHÂN PHỐI ĐỘ DÀI CHUỖI ARTICLE……….…….28

BẢNG 3.4 KẾT QUẢ ROUGE GIỮA CÁC MÔ HÌNH ……… 29

Trang 7

MỞ ĐẦU

1 Giới thiệu

Với sự phát triển ngày càng nhanh của xã hội hiện đại, internet bùng nổ khắp nơi Thông tin đến với chúng ta không phải từng ngày nữa mà là từng phút, từng giây Cách đây 5-10 năm, để tiếp cận được thông tin, chúng ta chỉ biết đến báo giấy Mỗi ngày, thậm chí mỗi tuần chúng ta mới đọc được tin tức Em vẫn còn nhớ, khi mình học lớp 6, cứ 15

hằng tháng lại lên phòng văn hóa của trường, đi đi lại lại mấy vòng để chờ đợi tờ báo Toán

Tuổi Thơ Thế mới biết, việc tìm kiếm tri thức, tiếp cận thông tin thời đó quả thực rất khó

khăn Còn bây giờ thì đã ngược lại, báo chí bây giờ được cung cấp trên internet dưới dạng văn bản Báo chí không chỉ đề cập tới thông tin trong nước, mà còn khái thác ở nước ngoài Người dùng muốn tiếp cận được hết những thông tin đó quả thực rất mất thời gian Chúng ta đọc 1 bản tin mất 5 phút, đọc 500 bản tin là mất 2 ngày ! Như vậy quả thực không thể làm được Trong bản tin đó chúng ta đọc, có thực sự tất cả các thông tin đều

quan trọng không ? Câu trả lời là Không Ví dụ như khi chúng ta đọc 1 bản tin về một

chính khách Việt Nam Đinh La Thăng bị bắt, vậy thì thông tin quan trọng nhất đó chính là “Tại sao ông ta lại bị bắt ?”, còn những thông tin như ông ta đã từng giữ chức vụ gì, ông ta có con không, … những thông đó chắc chắn không quan trọng bằng Vậy nên việc tóm tắt văn bản rất có ích khi người dùng muốn tiếp cận thông tin, tìm kiếm thông tin một cách nhanh chóng và chính xác nhất

Trongilĩnhivựcixửilýidữiliệuivănibản, itómitắtivănibảnilà một bài toán rất nổi tiếng Xử lý dữiliệu văn bản bao gồm :

- Kiểm tra lỗi chính tả (spelling-checker) - Kiểm tra lỗi văn phạm (grammar-checker) - Từiđiển đồnginghĩa (thesaurus)

- Phân tích vănibản (text analyzer) - Phâniloạiivăn bản (text classification)

- Tóm tắtivăn bản (text summarization)

- Tổng hợp tiếng nói (speech synthesis) - Nhận dạngigiọng nói (speech recognization) - Dịch tựiđộng (automatic translation)

- …

Tómitắt văn bản là công việc phânitích nộiidung của văn bảnivà sau đó sinh ra một văn bản tóm tắt có kích thước nhỏihơnivăn bản ban đầu, loạiibỏ đi những thông tin không quan trọng nhưng vẫn đảm bảo giữ đượcinhững nộiidung cốt lõiicủaivănibản Doiđó để công việcitóm tắt vănibản chính xácicần phải đápiứngiđượcicác yêuicầu sau:

- Các văn bản khi phân tíchithì phải “hiểu” đượcinội dung để xác địnhiđược các tiêuichuẩnitrong vănibản

- Cácivăn bản tómitắt cần đượcikiểm tra bằngimột thang đoitiêuichuẩn

2 Phân loại cácphương pháptóm tắtvănbản

Có nhiều cách phân loại tóm tắt văn bản khác nhau, tuy nhiên sự phân loại chỉ mang tính tương đối, phụ thuộc vào việc tóm tắt trên cơ sở nào Ở đây, đề tài đề cập đến phân loại tóm tắt dựa trên 3 cơ sở là : dựa trên dạng tóm tắt, dựa trên mục đích tóm tắt, dựa trên số lượng văn bản đầu vào,

Trang 8

2.1 Phân loại theo dạng tóm tắt

2.1.1 Phương pháp tóm tắt trích xuất – Extract summarization

Phươngipháp tríchixuất baoigồmiviệc lựa chọn đơn vị củaivăn bản (câu hay đoạn văn), đượcicoi là có chứa lượngithông tin quan trọng của vănibản (informativeicontent, informativity), ivà kếtinốiicác đơn vị này theoimột trìnhitự thíchihợp Mộtitríchixuấtilàisự lắpighépicáciđoạniđượcitríchirútiraitừivănibảninguồn để cung cấp cho người dùng nội dung chính của văn bản Độ dài của văn bản tóm tắt bằngitrích xuất có thể được xáciđịnh bởiitỉ lệinén Tỉ lệ nén là độ dài tóm tắt so với độ dài văn bản gốc Độ dài văn bản tóm tắt đầu ra dài bao nhiêu phụ thuộc vào tỉ lệ nén

Tóm tắt trích rút xuất phát từ ýitưởng: Một tài liệu được chia nhỏ thành câu văn , sau đó được đánh trọng số theo kinhinghiệm (heuristic) Sau đó , ta sẽ có danh sách các câu với trọng số giảm dần Tùy vào độ nén mà ta sẽ đưa ra các câu tóm tắt , những câu có trọng số cao sẽ được đưa ra trước

Thuật toán chia làm 3 mức như sau:

• Thuật toán tiếp cận ở mức bề mặt: Khôngiđàoisâuivàoichiềuisâuingôningữicủa vănibản, thayivàoiđóilàisửidụng cáciphần tử ngôningữ nhất định để xác định các đoạnicó liên hệ vớiinhauitrongivănibản Kĩithuậticủaimứcibềimặtidựaivàoisựixuất hiệnicủaitừiđểiđánh trọngisố cho các câu Trong khi đó, mộtisốikĩithuậtidựaivàoivị tríicủaicáciđoạnitrong văn bản Kĩ thuật nàyiđược áp dụng vớiinhữngivăn bản có cấu trúcicốiđịnh, như tiêu đề, cácimụcivàicác đoạn, Một số nghiên cứu cònichỉ ra rằng: Trong nhiều văn bản báo chi, dòng đầu tiên thường chứa nội dung chính nhất

2.1.2 Phương pháp tóm tắt tóm lược – Abstract summarization.

Tóm tắt bằng tríchirút đã thànhicông trong việc xác định xem câu nào trong văn bản đầu vàoimanginộiidung quanitrọnginhưngiphươngipháp này thường rấtixaivới việc tạo ra một bản tóm tắt tối ưu theoinghĩa cả vềinội dung và chất lượng trong ngôn ngữ học Trong khiiđó, hệ thốngitạo raivănibản tóm tắt bằng tómilược dựa trên việcihiểu vănibảnigốc và đạt tớiiviệc sinhiraimột vănibảnimới mộticách chínhixác về ngữipháp, súcitích và mạchilạc về nộiidung, bằng cách sinh ra văn bản tómitắt bằnginhững từivựng khôngixuất hiện trong vănibảnigốc

Trong tóm tắt tóm lược, chúng ta có thể tái sử dụng lại một phần văn bản gốc, tuy nhiên sẽ không phải là trích nguyên câu mà sẽ tổng hợp ý nghĩa là viết lại nội dung chính của văn bản, tạo ra đoạn văn có ý nghĩa súc tích hơn Chính vì thế, việc tóm tắt tóm lược khó hơn so với việc tóm tắt trích rút

Trang 9

2.2 Phân loại theo mục đích của bản tóm tắt

• Tóm tắtisơilược : Việc tóm tắt này thường được dùng trong việc tìm kiếm thông tin Tóm tắt từ văn bản dài thành một vài câu ngắn (thường chiếm 5 – 10%) độ dài toàn văn

• Tóm tắt cung cấp tin tức : Cung cấp các chủ đề của văn bản, kiểu tóm tắt này dài hơn so với tóm tắt sơ lược, văn bản tóm tắt có độ dài bằng 20-30% văn bản đầu vào

• Phê bìnhivà đánh giá : Văn bảnitóm tắt đưa ra nhữngiquan điểm củaingười tóm tắtivềichủiđề được đưa ra Tuyinhiên, kiểuitóm tắt này dường nhưivượt qua tầm củaicác hệ thốngitóm tắtitự động hiệninày

2.3 Phân loại dựa trên số lượng văn bản đầu vào

Dựa trên số lượng văn bản đầu vào ta chi thành 2 loại :

• Tóm tắt đơn văn bản : Là tóm tắt mà đầu vào là 1 văn bản duy nhất, nội dung tóm tắt chỉ phụ thuộc duy nhất vào văn bản đầu vào này

• Tóm tắt đa văn bản : Là tóm tắt mà đàu vào gồm nhiều văn bản, nội dung tóm tắt phải tổng hợp nội dung của những văn bản đầu vào và đưa ra nội dung bao quát trên toàn bộ văn bản đó Thông thường, những văn bản đầu vào phải có cùng nói về một nội dung nào đó, nội dung càng hẹp thì việc tóm tắt càng chính xác Ví dụ cùng lĩnh vực về thể thao hay kinh tế, nói về kinh tế cũng tương đối rộng, ta có thể thu hẹp lại là về giá xăng dầu chẳng hạn

Theo như đánh giá, việc tóm tắt đa văn bản là khó hơn vì nội dung bao trùm khá rộng, và nội dung giữa các văn bản đầu vào có thể khác nhau, có thông tin sai, thông tin đúng Trong đồ án tốt nghiệp này, em đề xuất mô hình giải quyết bài toán tóm tắt đơn văn bản

3 Các vấn đề trong bài toán tóm tắt văn bản

Theo như cách phân loại theo dạng tóm tắt đã trình bày ở trên, có 2 dạng tóm tắt là tóm tắt tóm lược và tóm tắt trích rút Hiện nay có rất nhiều nghiên cứu khoa học dành cho

việc tóm tắt trích rút (R Ferreira 2013; Dr Radev 2002) Đó làiphươngipháp tóm tắt dựa vào tríchixuất các từ, cácicâu tồnitại trong vănibảniđầu vào sauiđó dùng các thuậtitoán để đánhigiá và xếpihạng chúngirồi sắpixếp lạiithành vănibảnitómitắt Nhưngicon người chúng ta thì suy nghĩ không đơn giản là “đánh giáixếpihạng” như vậy Khi con người tóm tắt văn bản, chúng ta chắt lọc ra những ý chính là tóm tắt lại chứ không cắt nguyên 1 phần trong văn bản Đóicũngichínhilàicách phươngithứcitómilượcihoạtiđộng Gần đầy, hướng nghiên

cứu tóm tắt này ngày càng phát triển Đặc biệt vào năm 2014 Bahdanau cùng cộng sự của

mình đã đưa ra mô hình Seq2Seq kết hợp với cơ chế Attention, mô hình này thực sự rất có hiệu quả trong bài toán tóm tắt văn bản Về lợi ích của mô hình Seq2Seq, cơ chế Attention

sẽ được trình bày cụ thể ở Phần 1 : Cơ sở lý thuyết Bên cạnh đó, mô hình này cũng đang

gặp một số khuyết điểm như : không thể chấp nhận văn bản dài ; lỗi lặp từ, lặp câu ; lỗi mất mát thông tin Hiện nay, cấu hình máy tính ngày càng phát triển, nếu chúng ta sử dụng deep learning chắc chắn thu được kết quả khả quan

4 Giải pháp định hướng.

Với sựitiếnibộitrongilĩnhivựciHọcimáy (Machine learning) nói chung và học sâu (Deep learning) nói riêng có rất nhiều phương pháp đã chứng minh được tính hiệu quả

Trang 10

trong việc giải quyết những bàiitoániphứcitạpimàicácicáchitiếpicậnitruyềnithốngichưa thể giảiiquyết triệtiđểiđược

Trong đồ án tốt nghiệp này, em trình bày phương pháp tóm tắt văn bản sử dụng mô hình sequence to sequence kết hợp cũng kĩ thuật attention Ngoài ra có sử dụng thêm kỹ

thuật Pointer-Gen và Coverage cùng với những đặc trưng như vị trí câu, tần suất từ nhắm

mục đích nâng cao chất lượng của văn bản tóm tắt

Trang 11

PHẦN 1 : CƠ SỞ LÝ THUYẾT

1 Giới thiệu công nghệ Deep Learning

Trong khoảng vài năm trở lại đây mọi người được nghe rất nhiều về cách mạng công nghiệp 4.0 Vậy điều gì đã làm lên sự đặc biệt ? Hạt nhân cho sự bùng nổ đến từ Artificial Intelligence (trí tuệ nhân tạo) hay cụ thể là Machine Learning (máy học) Ứng dụng của AI thì ở khắp mọi nơi như là: ô tô tự lái; robot phẫu thuật; hệ thống dịch tự động; chatbot tự động trả lời; AlphaGo,…

Machine learning theo định nghĩa của wiki, “Machine learning is the subfield of

computer science that “gives computers the ability to learn without being explicitly programmed “, ý là chương trình có thể tự học được từ dữ liệu Machine learning là một

ngành rất rộng và nặng về toán, gồm rất nhiều thuật toán và mỗi thuật toán có ứng dụng riêng tùy vào bài toán

Hình 1 1 Tổng quan về công nghệ học sâu Nguồn : Internet

Deep Learning (học sâu) là một phương pháp học máy Cốt lỗi của Deep Learning là Neural Network, hay còn gọi là “mạng thần kinh” (cụ thể sẽ được trình bày ở mục 2) Để có thể thành công với Deep Learning chúng ta cần một khối dữ liệu rất lớn Tuy nhiên kết quả mà Deep Learning mang lại thực sự đáng ngưỡng mộ Dưới đây là một ví dụ cụ thể, ngoài ra học sâu còn có thể ứng dụng ở trong rất nhiều các lĩnh vực khác như:

- 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ữ Điều này có thể hỗ trợ mạnh mẽ cho khách du lịch, doanh nhân và những người làm việc trong chính phủ.

- Trợ lý ảo: Cho dù đó là Alexa hay Siri hay Cortana, những trợ lý ảo của các nhà cung cấp dịch vụ trực tuyến đều sử dụng học sâu để giúp hiểu lời nói của người dùng và ngôn ngữ con người sử dụng khi họ tương tác với máy.

Trang 12

- Máy bay không người lái và xe ô tô tự hành: Cách một chiếc xe tự hành “nhìn” được thực tế đường đi và di chuyển, dừng lại, tránh một quả bóng trên đường hoặc xe khác là thông qua các thuật toán học sâu Các thuật toán càng nhận được nhiều dữ liệu thì càng có khả năng hành động giống như con người trong quá trình xử lý thông tin

- Chatbots và dịch vụ bots: Chatbots hỗ trợ dịch vụ chăm sóc khách hàng cho rất nhiều công ty để có thể đáp ứng một cách tối ưu những câu hỏi của khách hàng với số lượng ngày càng tăng nhờ vào việc học sâu.

- Tô màu hình ảnh: Chuyển đổi hình ảnh đen trắng thành màu trước – đây là một nhiệm vụ được thực hiện tỉ mỉ bởi bàn tay con người Ngày nay, các thuật toán học sâu có thể sử dụng ngữ cảnh và các đối tượng trong các hình ảnh để tô màu chúng với kết quả thật ấn tượng và chính xác.

- Nhận dạng khuôn mặt: Học sâu được sử dụng để nhận diện khuôn mặt không chỉ vì mục đích bảo mật mà còn cho việc gắn thẻ mọi người trên các bài đăng trên Facebook Những thách thức đối với thuật toán học sâu trong nhận diện khuôn mặt là nhận biết chính người đó ngay cả khi họ đã thay đổi kiểu tóc, cạo râu hoặc khi hình ảnh được chụp trong điều kiện thiếu ánh sáng.

2 Mạng neural nhân tạo (Artificial neural network)

Đầu tiên, chúng ta sẽ tìm hiểu khái niệm neural là gì ? Một cách ngắn gọn nhất thì Neural là mô hình toán học mô phỏng neural trong hệ thống thần kinh con người Model đó biểu hiện cho một số chức năng của neural thần kinh con người

Hình 1.2 Neural cơ bản Nguồn: Internet

Đầu tiên là tính chất truyền đi của thông tin trên neural, khi neural nhận tín hiệu đầu vào từ các dendrite, khi tín hiệu vượt qua một ngưỡng(threshold) thì tín hiệu sẽ được truyền đi sang neural khác (Neurons Fire) theo sợi trục(axon) Neural của model toán học ở đây cũng được mô phỏng tương tự như vậy Công thức tính output 𝑦 sẽ như sau:

𝑦 = 𝑎(𝑤1𝑥1+ 𝑤2𝑥2+ ⋯ + 𝑤𝑁𝑥𝑁 − 𝜃)

Mạng noron nhân tạo (Artifical Neural Networks- ANN) mô phỏng lại mạng noron sinh học là một cấu trúc khối gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau trong đó các liên kết giữa các noron quyết định chức năng của mạng

Trang 13

Kiến trúc chung của một mạnginơron nhân tạo (ANN) gồm 3 thành phần đó là: Input Layer, Hidden Layer và Output Layer Trong đó, Hidden Layer gồmicác Nơron nhận dữ liệu input từ các neural ở lớp (Layer) trướciđó vàichuyển đổi cáciinputinàyichoicácilớpixử lýitiếpitheo TrongimộtiANN có thểicóinhiều lớp ẩn.

Hình 1 3 Tổng quanimạng neural Nguồn: Internet

Trong đó các Processing Elements (PE) củaiANN gọi là Nơron, mỗiiNơron sau khi nhậnicácidữ liệu đầu vào (Inputs) xử lý chúngivà choira mộtikếtiquả (Output) duyinhất Kếtiquả xử lýicủaimột Nơronicó thểilàmiInputicho các Nơron khác.

- Quá trình xử lý thôngitin của một ANN:

Hình 1 4 Quá trình xử lý thông tinicủa một ANN Nguồn: Internet

Trong đó:

- 𝑥𝑖 là đầu vào, thường là 1 vector đã được embedding từ dữ liệu đầu vào - 𝑊𝑖𝑗 là các trọng số tương ứng với các vector đầu vào, là 1 thành phần quan

trọng của ANN

Trang 14

- Summations: Tínhitổng trọng số của tất cả các input được đưa vào mỗi Nơron (phần tử xử lý PE) Summation Function của một neural được tính bằng công thức sau :

𝑌 = ∑ 𝑋𝑖𝑊𝑖𝑛

- Transfer Function: Hàmitổng (Summations) hay được gọi là Activate Function của một neural cho biếtikhả năng kích hoạt (Activation) của Nơron đó, còn gọi là kích hoạt bên trong (internaliactivation) Các neural này có thể sinh ra một output hoặc không sinh ra bên trong ANN Transfer Function là hàm số thể hiện mối quan hệ giữa Internal Activation và output

- Output : Kết quả đầu ra của 1 ANN

+ Việc lựaichọn Transfer Function là một hàm số quan trọng, có ảnh hưởng rất lớn đến kết

quả của ANN Một số hàm chuyển đổi phi tuyến hay được sử dụng trong ANN: - Linearig(a) = a

- Sigmoid g(a) = sigm(a) = 1

- Softmaxi (hàm này rất hay được sử dụng ở layer cuối cùng)

Trên kia là kiến trúc mạng ANN cơ bản Hiện nay, đã có rất nhiều mạng phức tạp hơn Một số kiến trức mạng phổ biến hiện nay như:

- Deep Neural Network (DNN) - Deep Belief Network (DBN) - Deep Boltzmann Machine (DBM)

- Recurrent Neural Network (RNN)

- Convolution Neural Network (CNN)

Trong các kiến trúc trên em lựa chọniRNN cho bài toán tóm tắt văn bản

3 Giới thiệu mạng neural hồi quy RNN

Con người không bắt đầu suy nghĩ của họ từ đầu tại tất cả các thời điểm Cũng như khi đang đọc đồ án tốt nghiệp này này, bạn hiểu mỗi chữ ở đây dựa vào từ bạn đã hiểu các chữ trước đó chứ không phải là đọc tới đâu ném hết đi tới đó, rồi lại bắt đầu suy nghĩ lại từ đầu tới chữ bạn đang đọc Tức là tư duy đã có một bộ nhớ để lưu lại những gì diễn ra trước đó

Tuy nhiên các mô hình mạng neural truyền thống thì không thể làm được việc đó, đó có thể coi là một khuyết điểm chính của mạng neural truyền thống Ví dụ, bạn muốn phân loại các bối cảnh xảy ra ở tất cả các thời điểm trong một bộ phim, thì đúng là không rõ làm thế nào để có thể hiểu được một tình huống trong phim mà lại phụ thuộc vào các tình huống trước đó nếusử dụng các mạng neural truyền thống

Trang 15

Mạng neural hồi quy (Recurrent Neural Network) sinh ra để giải quyết vấn đề đó Mạng này chứa các vòng lặp bên trong cho phép thông tin có thể lưu lại được

RNN (Recurrent Neural Network) là một mạng neral hồi quy Nghĩailà chúng thựcihiện cùngimột tácivụ cho tấticả các phầnitử của mộtichuỗi với đầuira phụithuộc bởi tínhitoán trướciđó

Ý tưởng chính của RNN là sử dụng chuỗi các thông tin Trong các mạng neural truyền thống, tất cả các đầu vào và đầu ra đều độc lập với nhau, không liên kết với nhau thành chuỗi Nhưng mô hình như vậy sẽ không tốt với nhiều dạng bài toán, cụ thể ở đây là bài toán “Tóm tắt văn bản “ Rõ ràng, việc tóm tắt tự động, việc phụ thuộc của từ hiện tại với những từ đằng trước nó rất chặt chẽ Về cơ bản, 1 mạng RNN cơ bản có dạng như sau:

Hình 1 5 Cấu trúc mạng hồi quy Nguồn: Internet

Ví dụ ta có 1 câu gồm 6 chữ cái “Tôi là sinh viên Bách Khoa”, thì mạng neural sẽ triển khai gồm 6 tầng neural, mỗi chữ một tầng Lúc đó, việc tính toán bên trong RNN sẽ được triển khai như sau:

- 𝑥𝑡 là đầu vào tại bước t Ví dụ 𝑥1 là một vector one-hot tương ứng với từ thứ 2 của câu (“là”)

- 𝑠𝑡 là trạng thái ẩn tại bước t Nó chính là bộ nhớ của mạng 𝑆𝑡 được tính toán dựa trên cả các trạng thái ẩn phía trước và đầu vào tại bước đó: 𝑠𝑡 = 𝑓(𝑈𝑥𝑡+ 𝑊𝑠𝑡−1) Hàm f thường là một hàm phi tuyến như 𝑡𝑎𝑛ℎ, sigmoid hay ReLu

Để làm phép toán cho phần tử ẩn đầu tiên ta cần khởi tạo thêm 𝑠−1, thường giá trị khởi tạo được gắn bằng 0

- 𝑜𝑡 là đầu ra tại bước t, Ví dụ, ta muốn dự đoán từ tiếp theo có thể xuất hiện

trong câu thì 𝑜𝑡 chính là một vector xác suất các từ trong danh sách từ vựng của ta: 𝑜𝑡 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑉𝑠𝑡)

- Vector đầu ra 𝑜𝑡 sẽ được sử dụng cho những dự đoán tiếp theo như dự đoán sentiment của một câu hay dự đoán từ loại của từng từ vựng trong câu (PoS Tagging)

Việc huấn luyện mạng neural hồi quy được thực hiện qua 2 bước: - Duỗi thẳng mạng neural hồi quy

- Sử dụng thuật toán backpropagation để tính đạo hàm một phần (gradient) của hàm mất mát (giống như mạng neural thông thường)

Trang 16

Một điểm nổi bật của RNN chính là ý tưởng kết nối các thông tin phía trước để dự đoán cho hiện tại Việc này tương tự như ta sử dụng các cảnh trước của bộ phim để hiểu được cảnh hiện thời Đôi khi ta chỉ cần xem lại thôngitin vừaicó thôi là đủ đểibiết được tìnhihuống hiệnitại Ví dụ, taicó câu: “Đàn chim đang bay trên bầuitrời” thì ta chỉ cần đọc tới “Đàn chim đang bay trênibầu” là đủibiết đượcichữ tiếpitheo là “trời” Trong tình huốnginày, khoảngicách tới thôngitin có đượcicần để dựiđoán là nhỏ, nên RNN hoànitoàn có thể họciđược Nhưng trong nhiều tình huống ta buộc phải sử dụng nhiều ngữ cảnh hơn để suy luận Ví dụ dự đoán chữ cuối cùng trong đoạn :“Tôi sinh ra ở Việt Nam … Tôi nói tiếng Việt.” Rõ ràngilà các thôngitin gần (”Tôi nói tiếng”) chỉicó phépita biết đượciđằng sau nóisẽ là tên imột ngôningữ nào đó, cònikhông thể nàoibiết được đó là tiếngigì Muốnibiết là tiếng gì, thìita cầniphải có thêm ngữicảnh “Tôi sinh ra ở Việt Nam”.nữaimới có thể suyiluận được Rõiràng là khoảngicách thôngitin lúcinày cóithể đã kháixa rồi

Hình 1 6 RNN khi xử lý các phụ thuộc xa Nguồn: Internet

Theo như lýithuyết, RNN hoànitoàn khả năng xửilý các phụithuộc xa (long-term dependencies) Tuy nhiên, đángitiếc trong thựcitế RNN không thể học được các tham số đó Vấn đề này đã được khám phá kháisâu bởi Hochreiter et al.,1991 và Bengio et al., 1994

trong các bàiibáo của mình, họ đã tìm được nhưng lýido cănibản để giảiithích tạiisao RNN khôngithể họciđược.

4 Mạng LSTM

Năm 1997 Hochreiter và Schmidhuber đã giới thiệu một dạng phátitriển của RNN mà có thể họciđược các phụithuộc xa, được gọi là LSTM (LongiShortiTerm Memory networks) Hiện nay LSTM được sử dụng rất phổ biến trong nhiều bài toán liên quan đến

xử lý ngôn ngữ tự nhiên vì những ưu điểm của nó mang lại

LSTM đượcithiết kếiđể khắc phục được vấniđề phụithuộcixa (long-term dependency) Việcinhớ thông tinitrongisuốtithời gian dài làiđặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tạiicủa nó đã cóithể ghi nhớ được mà khôngicần bất kì canithiệpinào

Mọiimạngihồi quyiđều có dạng là mộtichuỗiicác modul lặpiđi lặpilại của mạngineural Với mạngiRNNichuẩn, các modul này có cấu trúcirất đơn giản, thườngilà mộtitầng 𝑡𝑎𝑛ℎ

Trang 17

Hình 1 7 Cấu trúc mạng RNN chuẩn Nguồn: Internet

Về cấu trúc, LSTM cũng có kiến trúcidạng chuỗi như RNN, nhưng các modul bên trong nóicó cấu trúc phức tạp hơn Thay vì chỉ có một tầng mạng neural, chúngicó tới 4itầngitương tácivớiinhauimộticách rấtiđặcibiệt

Hình 1 8 Cấu trúc mạng LSTM Nguồn: Internet

Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tế

bào Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng cổng quên” (forget gate

layer) Nó sẽ lấy đầu vào là ℎ𝑡−1 và 𝑥𝑡 rồi đưa ra kết quả là một số trong khoảng [0,1] cho mỗi số trong trạng thái tế bào 𝐶𝑡−1 Đẩu ra là 1 thể hiện rằng nó giữ toàn bộ thông tin lại, còn 0 chỉ rằng toàn bộ thông tin sẽ bị bỏ đi

Quay trở lại với ví dụ mô hình ngôn ngữ dự đoán từ tiếp theo dựa trên tất cả các từ trước đó, với những bài toán như vậy, thì trạng thái tế bào có thể sẽ mang thông tin về giới tính của một nhân vật nào đó giúp ta sử dụng được đại từ nhân xưng chuẩn xác Tuy nhiên, khi đề cập tới một người khác thì ta sẽ không muốn nhớ tới giới tính của nhân vật nữa, vì nó không còn tác dụng gì với chủ thế mới này

Trang 18

Hình 1 9 Cấu trúc cổng forget Nguồn: Internet

Sau đó là xác định xem thông tinimới nào sẽ được lưu trữ vào trạng thái tế bào Việc này gồm 2 phần :

• Trước tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào” (input

gate layer) để quyết định giá trị nào ta sẽ cập nhập

• Sau đó là dùng một tầng 𝑡𝑎𝑛ℎ tạo ra một vector cho giá trị mới 𝐶̃𝑡 nhằm thêm vào cho trạng thái

• Kế đến, ta sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái Chẳng hạn với ví dụ mô hình ngôn ngữ của ta, ta sẽ muốn thêm giới tính của nhân vật mới này vào trạng thái tế bào và thay thế giới tính của nhân vật trước đó

Hình 1 10 Cấu trúc cổng input Nguồn: Internet

Sau đó cập nhập trạng thái tế bào cũ 𝐶𝑡−1thành trạng thái mới 𝐶𝑡

Ta sẽinhânitrạngithái cũ với 𝑓𝑡 để loại bỏiđi những thôngitin ta “quyết định quên” ởitrước

Sau đó cộng thêm 𝑖𝑡 ∗ 𝐶̃𝑡 Trạngithái mới thuiđược này phụithuộc vào việcita quyếtiđịnh cập nhập mỗiigiá trịitrạngithái ra sao

Vớiibàiitoàn mô hình ngôningữ, chính là việc ta bỏiđi thôngitin về giớiitính của nhânivật cũ, và thêm thôngitin về giớiitính của nhânivật mới nhưita đã quyếtiđịnh ở các bướcitrướciđó

Trang 19

Hình 1 11 Cấu trúc cổng tổng hợp Nguồn: Internet

Cuối cùng, ta cầniquyếtiđịnhixemitaimuốniđầuirailàigì Giáitrị đầuira sẽidựa vào trạngithái tế bào, nhưngisẽiđượcitiếp tục sàng lọc Đầu tiên, ta chạyimộtitầngisigmoid để quyếtiđịnhiphầninàoicủaitrạngitháiitếibàoitaimuốnixuấtira Sau đó, taiđưa nó trạng thái tế bảoiqua mộtihàm 𝑡𝑎𝑛ℎ để cóigiá trị nóivề khoảng [−1,1] , vàinhân nó vớiiđầuira của cổng sigmoid đểiđược giáitrị đầu raitaimongimuốn

Vớiiví dụivềimôihìnhingôningữ, chỉ cần xemichủithểimàitaicóithểiđưairaithôngitin về một trạngitừ đi sau đó Ví dụ, nếuiđầuiraicủaichủithểilàisốiítihoặcisốinhiềuithìitaicóithể biết đượcidạngicủaitrạngitừiđi theo sau nó phảiinhư thế nào

Hình 1 12 Cấu trúc cổng output Nguồn: Internet

5 Mạng bi-LSTM

Hình 1 13 Cấu trúc mạng bi-LSTM Nguồn: Internet

Trang 20

Việc nhận dạng chính xác tên riêng trong một đoạn văn bản phụ thuộc không chỉ vào các thông tin phía trước của từ đang xét mà còn cả các thông tin phía sau Tuy nhiên, một kiến trúc LSTM truyền thống với một lớp duy nhất chỉ có thể dự đoán nhãn của từ hiện tại

dựa trên thông tin có được từ các từ nằm trước đó Bidirectional LSTM (bi-LSTM) đã

được tạo ra để khắc phục điểm yếu trên Một kiến trúc BiLSTM thường chứa 2 mạng LSTM đơn được sử dụng đồng thời và độc lập để mô hình hoá chuỗi đầu vào theo 2 hướng: từ trái

sang phải (forward LSTM) và từ phải sang trái (backward LSTM)

6 Mô hình sequence to sequence

Mô hình sequence to sequence (seq2seq) cơ bản được Sutskever và cộng sự công bố vào năm 2014 [6] bao gồm hai mạng neural thành phần được gọi là mạng mã hóa (encoder) và mạng giải mã (decoder) để sinh ra chuỗi đầu ra 𝑡1:𝑚 từ một chuỗi đầu vào 𝑥1:𝑛 Mạng neural encoder mã hóa chuỗi đầu vào thành một vector c có độ dài cố định Mạng neural decoder sẽ lần lượt sinh từng từ trong chuỗi đầu ra dựa trên vector c và những

từ được dự đoán trước đó cho tới khi gặp từ kết thúc câu Trong mô hình seq2seq, chúng ta có thể sử dụng các kiến trúc mạng khác nhau cho thành phần encoder và decoder như

RNN hay mạng neural convolutional Trong bài viết này, người viết tập trung vào mô hình

seq2seq sử dụng mạng RNN

Về cơ chế hoạt động của mô hình seq2seq cơ bản : ở lớp mã hóa encode sẽ sử dụng 1 mạng RNN RNN ở lớp encoder sẽ xử lý chuỗi đầu vào, sinh ra 1 biến ngữ cảnh Lớp giải mã (decode) cũng là một mạngiRNN, nó có nhiệm vụ xem chuỗi đầu vào đã được dịch và từ đứng trướciđó sauiđóidựiđoán từ kếitiếp trong chuỗiigiảiimã Sauikhi huấn luyệnichúng taicó thể tạo ra bảnidịch bằngicách mã hoáichuỗi đầuivào chúngita muốn dịch và sau đó chạy mạng sinh chuỗi Mô hình mạng sequence to sequence được miêu tả như hình dưới:

Hình 1 14 Mô hình sequence to sequence Nguồn: [17]

7 Kĩ thuật attention

Trang 21

Chúng ta hãy thử quan tâm tới khái niệm attention (ý chỉ việc quan tâm, chú ý) trong cuộc sống hằng ngày Giả sử như khi chúng ta đọc đồ án tốt nghiệp này, không hẳn ai cũng sẽ đọc toàn bộ thông tin từ tiêu đề, mục lục, mô hình hay đến cả tài liệu tham khảo Tùy từng mục đích của người đọc mà sẽ chú ý vào từng phần khác nhau

Những nghiênicứuigần đâyichỉirairằngicác quyitrình tương tựiđượciápidụng trong mô hìnhimạng neural cho phépitậpitrung vào những thông tin quan trọng và có thể lọc được những thông tin không cần thiết Kĩithuật này đượcigọi là “attention”, nó giúpichúng taixâyidựng cácimạng neural có thể giải quyết hiệuiquả các thách thức trướciđây với bàiitoán xửilý chuỗi như là dịchimáy hayitómitắt vănibản, điều mà môihìnhiseq2seqibình thườngikhôngithựcihiệniđược

Kỹ thuật attention được đưa ra lần đầu vào năm 2014 bới Bahdanau và cộng sự trong công trình nghiên cứu về dịch máy Ở mức trừu tượng, kỹ thuật attention nới lỏng

điều kiện rằng toàn bộ chuỗi đầu vào được mã hóa bằng một vector duy nhất Thay vào đó các từ trong chuỗi đầu vào sẽ được RNN encoder mã hóa thành một dãy các vector Sau

đó RNN decoder áp dụng kỹ thuật attention mềm dẻo (soft attention) bằng cách lấy tổng

có trọng số của dãy các vector mã hóa Các trọng số trong mô hình này được tính bằng một mạng neural truyền thẳng RNN encoder, RNN decoder và các tham số trong kỹ

thuật attention được huấn luyện đồng thời từ dữ liệu Điềuinàyikhiến choimạng tậpitrung vàoinhững phầniquanitrọng nhất của chuỗiiđầuivào, do đó tạoiraicác dựiđoánitốt hơn cho từ tiếpitheo trong chuỗiigiảiimã Hình dướiisẽ mô tảicụ thể kĩ thuật này :

Hình 1 15 Kĩ thuật Attention Nguồn: [17]

Kỹ thuật Attention được sử dụng nhiều nhất trong các nghiên cứu về dịch máy tự

động bằng mô hình mạng neural Như người viết đã đề cập trong phần mở đầu, hệ thống dịch máy Google Translate hiện tại sử dụng kỹ thuật này trong mô hình dịch máy của họ

8 Yếu điểm của mô hình seq2seq và cách khắc phục

Trang 22

Theo như những thực nghiệm do Nallapati et al., 2016 [6] thì việc tóm tắt những

văn bản có đầu vào dài có kết quả xấu Chủ yếu là lỗi lặp từ, cụm từ, câu Ngoài ra còn bị mất mát những thông tin như : số, tên người (đây được coi như là những từ OOV) Mô hình sẽ đưa ra 2 đề xuất để giải quyết nhược điểm này Thứ nhất, sử dụng Pointer- Generation để khắc phục lỗi mất mát thông tin Thứ hai, sử dụng Coverage để cải thiện lỗi lặp từ, lặp câu

Hai đề xuất trên đã được Abigail See cùng cộng sự của mình [1] thử nghiệm thành công trên dữ liệu tiếng Anh CNN/DailyMail vào năm 2017 Ngoài ra mô hình cũng đề xuất

thêm những đặc trưng văn bản để tăng độ chính xác của văn bản tóm tắt trên dữ liệu tiếng Việt

9 Thuật toán Beam Search

Trong mô hình Seq2Seq, ở giai đoạn decode khi sinh ra kết quả Trong bài toán tóm tắt văn bản là sinh ra các câu tóm tắt Thông thường, việc lựa chọn câu đầu ra được thược hiện bởi các thuật toán tìm kiếm Có thể kể đến như thuật toán Greey Search : chọn từ có xác suất cao nhất là đầu ra của từng cell Ưu điểm của phương pháp này là có tốc độ nhanh, nhưng thường không tạo ra được câu văn hợp lý Sau đó vào năm 2016, Wiseman và Alexander M Rush đã đề xuất giải thuật Beam Search

Giải thuật Beam Search được hiểu như sau : tại mỗi decoding step, chúng ta chọn

n-words (n được gọi là beam_size, những words đó được gọi là các hypothesis, tạm dịch

là các giả thuyết) với phân bố xác suất (probability distribution) cao nhất Ví dụ khi chúng ta chọn beam_size =3 thì tại mỗi decoding step, ta sẽ giữ lại 3 từ có phân bố xác suất cao nhất rồi lấy từng từ một làm đầu vào cho decoding step tiếp theo Cứ như thế lặp lại cho đến khi ta gặp <EOS> đánh dấu việc kết thúc câu Câu có tổng trung bình cao nhất sẽ được chọn

Ngày đăng: 25/06/2024, 17:38

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

TÀI LIỆU LIÊN QUAN

w