Mô hình LSTM

Một phần của tài liệu Nghiên cứu một số bài toán trong hỏi đáp cộng đồng (Trang 38 - 50)

1.6. Kiến thức nền tảng về học sâu

1.6.2. Mô hình LSTM

Mạng LSTM được đề xuất bởi Hochreiter và Schmidhuber vào năm 1997 [24] để khắc phục nhược điểm của mô hình RNN. Mô hình được đề xuất có dạng như hình 1.510

Mạng LSTM bao gồm nhiều tế bào LSTM liên kết với nhau thay vì chỉ tương tác với nhau qua đơn vị tầng ẩn như mạng RNN. LSTM bao gồm trạng thái tế bào giống như băng chuyền chạy xuyên suốt các nút mạng. Do đó các thông tin được truyền đi dễ dàng thông suốt. LSTM có khả năng loại bỏ hoặc thêm các thông tin cho trạng thái tế bào thông qua các nhóm gọi là cổng. Cổng là nơi

Hình 1.5: Mô hình LSTM

sàng lọc thông tin qua nó thông qua phép toánsigmoid và phép nhân. Các công thức lan truyền trong mạng LSTM như sau:

ik =σ(Wixk +Vihk−1+bi), fk =σ(Wfxk +Vfhk−1+bf), ok =σ(Woxk +Vohk−1+bo), ck =fkck−1+iktanh(Wcxk+Vchk−1+bc), hk =ok tanh(ck), (1.5)

trong đói, f, o là cổng vào, cổng quên và cổng ra tương ứng, σ là hàm sigmoid, là phép toán nhân (element wise) của hai véc tơ, W ∈ Rd×l, V ∈ Rd×d, b ∈

Rd là các ma trận trọng số và các véc tơ được học từ mô hình, l là chiều của véc tơ từ, d là số chiều của lớp ẩn.

Véc tơ ck là bộ nhớ trong của đơn vị. Nó là sự kết hợp của bộ nhớ trước đó và đầu vào mới. Chúng ta có thể chọn bỏ qua hoàn toàn bộ nhớ cũ (cổng quên bằng 0) hoặc bỏ qua hoàn toàn trạng thái mới được tính toán (cổng đầu vào bằng 0), hoặc một giá trị ở giữa hai thái cực này.

Mạng LSTM đã chứng tỏ khả năng khắc phục hạn chế vấn đề phụ thuộc dài của mình qua nhiều thử nghiệm thực tế, giải quyết một số bài toán trong học máy nói chung và trong xử lý ngôn ngữ tự nhiên nói riêng.

Nhược điểm của mô hình RNN và LSTM khó bắt được sự phụ thuộc xa giữa các từ trong câu. Hơn nữa tốc độ xử lý chậm do phải xử lý đầu vào một cách tuần tự, không thực hiện song song hóa được

1.6.3. Mô hình mạng tích chập

Mô hình mạng tích chập (Convolutional Neural Network - CNN) được đề xuất đầu tiên trong thị giác máy tính. Mô hình này cũng cho thấy nó làm việc

hiệu quả trên một số bài toán NLP như phân tích ngữ nghĩa, tìm kiếm thông tin [25], biểu diễn câu [26]. Mô hình này sử dụng các tầng với các bộ lọc (convolving filters) để khai thác các đặc trưng cục bộ. Hình 1.6 mô tả các tầng trong mô hình CNN.

Hình 1.6: Mô hình CNN

Đầu vào là các véc tơ biểu diễn từ xi ∈Rd có số chiều làd của từ thứ i trong câu. Phép toán tích chập (convolution) liên quan tới một bộ lọc w ∈ Rh.d. Bộ lọc này được sử dụng vào cửa sổ gồm h từ để tạo ra đặc trưng mới. Đặc trưng

ci được tạo ra từ cửa số h từ như sau:

ci=f(w.xi:i+h−1+b), (1.6)

f là hàm phi tuyến như hàm tanh hoặc hàm Relu. Lớp lọc này được sử dụng vào từng cửa sổ từ trong câu để tạo ra một bản đồ đặc trưng:

c= [c1,c2, ...,cn−h+1] (1.7) Sau đó, phép toán max-pooling thực hiện qua bản đồ đặc trưng c để lấy các giá trị lớn nhất.

bc=max(c). (1.8)

Véc tơbclà đặc trưng thu được khi qua lớp lọc này. Phép toán này có ý nghĩa là thu được đặc trưng quan trọng qua việc lấy giá trị lớn nhất trong bản đồ đặc trưng. Phương pháp gộp này còn được sử dụng với các độ dài câu khác nhau.

Nhiều bộ lọc (với kích thước cửa sổ khác nhau) sẽ thu được các đặc trưng khác

nhau. Đặc trưng này sử dụng làm đầu vào của hàm sof tmax để thu được xác

suất đầu ra của các nhãn.

1.6.4. Cơ chế chú ý

Cơ chế chú ý (attention) trong học máy giúp cho mô hình có thể tập trung nhiều hơn vào các từ khóa chính hay cụm từ mang nhiều thông tin thông qua việc học các trọng số chú ý trong câu. Sau đó việc tổng hợp thông tin của cả câu được tính qua trung bình cộng có trọng số của tất cả các từ trong câu. Thời gian gần đây có nhiều nghiên cứu sử dụng cơ chế chú ý trong học sâu được phát triển dựa vào ý tưởng này. Các mô hình này được ứng dụng đầu tiên trong dịch máy.

Một trong những ý tưởng của cơ chế chú ý đó là học để căn chỉnh (learn to align) [27]. Xuất phát từ ý tưởng tổng hợp thông tin từ câu nguồn và các từ được dịch trước đó để tính ra những phần quan trọng để dự đoán từ tiếp theo. Thay vì chỉ sử dụng ngữ cảnh của lớp cuối cùng của lớp mã hóa (Encoder), tác giả sử dụng tất cả các đầu ra của từng tế bào qua từng bước (timestep) của câu nguồn kết hợp với trọng số chú ý của câu nguồn ở mỗi bước giải mã để tổng hợp ra véc tơ ngữ cảnh ci. Véc tơ này được dùng để dự đoán ra từ tiếp theo trong phần giải mã (decoder). Hình 1.7 mô tả cơ chế chú ý của Bahdanau. Công thức cụ thể như sau:

P(yi|y1, y2, ..., yi−1,x) =g(yi−1,si,ci) (1.9)

si =f(si−1, yi−1,ci), (1.10)

trong đó x là chuỗi các từ trong văn bản gốc (câu nguồn) có độ dài T, y là chuỗi các từ trong văn bản dịch (câu đích) có độ dài m

x= (x1, x2, ..., xT) y= (y1, y2, ..., ym)

Trước tiên véc tơ ngữ cảnh ci được tính qua tổng trọng số của các hj

ci= Tx

X

j=1

Hình 1.7: Mô hình attention trong bài toán dịch máy của Bahdanau

trong đó, hj=[−→

hjT;←−

hjT]T, trọng số αij củahj được tính như sau:

αij = exp(eij)

PTx

k=1exp(eik)

(1.12)

eij =a(si−1,hj), (1.13)

trong đó a là công thức gióng (alignment) (dạng đơn giản của a có thể là multilayer perception) cho biết độ tương quan của từ thứ j của lớp mã hóa so với đầu ra ở vị trí thứ i của lớp giải mã.

a(si−1,hj) =vTatanh(Wasi−1+Uahj), (1.14) trong đó: Wa ∈Rn.n, Ua ∈Rn.2n, va ∈Rn là các ma trận trọng số.

Thực chất cơ chế chú ý giúp cho mô hình tập trung vào các phần quan trọng trên dữ liệu qua mô hình gióng (alignment model a) để tính các trọng số gióng (alignment scoreeij), sau đó chuẩn hóa để cho ra trọng số chú ý (attention score

αij). Trong bài toán dịch máy, mỗi lần dự đoán ra từ tiếp theo yi các trọng số

αij được tính lại mức độ quan trọng trong câu đầu vào x.

Có nhiều cách để tính a(si−1,hj). Theo Graves [28] công thức tính như sau:

a(si−1,hj) = cosin(si−1,hj). (1.15) theo Luong [29]:

a(si−1,hj) = sTi−1Wahj (1.16)

Ý tưởng tiếp theo là chú ý địa phương và chú ý toàn cục [29]. Chú ý toàn cục lấy ý tưởng học để gióng (learn to align), còn chú ý cục bộ giúp cho mô hình học ra vị trí cần chú ý. Gần đây nhất là ý tưởng về tự chú ý (self-attention) [2] với mục đích học ra mối tương quan của từ đang xét với các từ đứng trước nó. Cơ chế tự chú ý được mô tả chi tiết trong mô hình Transformer bên dưới.

1.6.5. Mô hình Transformer

Transformer [2] là mô hình đang được sử dụng phổ biến trong các bài toán NLP trong mấy năm gần đây do sự mạnh mẽ của nó trong việc song song hóa tính toán và khả năng nắm bắt được sự phụ thuộc xa nhờ cơ chế tự chú ý. Mô hình transformer đưa ra phục vụ cho bài toán dịch máy bao gồm hai phần mã hóa và giải mã cũng gần giống RNN tuy nhiên có điểm khác biệt là các từ đầu vào được đưa vào mô hình cùng một lúc (hình 1.8). Vì thế không còn khái niệm bước (timestep) trong Transformer mà thay vào đó là cơ chế tự chú ý.

Hình 1.8: Mô hình Transformer[2]

Phần mã hóa

Đầu tiên các từ được biểu diễn bằng một véc tơ từ nhúng word-embedding(WE). Nhưng vì các từ được đưa vào đồng thời mà lại muốn biểu diễn được ngữ cảnh của từ (do các từ ở vị trí khác nhau sẽ có nghĩa khác nhau) cho nên transformer có thêm phần mã hóa vị trí Positional-Encoding(PE) để thêm thông tin về vị

trí của từ. Tiếp theo, hai véc tơ PE và WE được cộng lại để tạo ra biểu diễn của một từ. Công thức tính PE của từ thứi trong câu như sau:

P E(pos,2i) = sin pos 100002i/dmodel

P E(pos,2i+1)= cos pos 100002i/dmodel

(1.18)

trong đó pos là vị trí của từ trong câu, P E là giá trị phần tử thứ i trong câu có độ dài dmodel

Multihead-attention là tầng mới tạo ra sự khác biệt của mô hình transformer với các mô hình khác như RNN và LSTM. Thực chất của multihead-attention là cơ chế tự chú ý nhưng để mô hình chú ý đến nhiều phần khác nhau thì tác giả sử dụng nhiều lớp tự chú ý. Cơ chế tự chú ý là cơ chế cho biết một từ có mức độ chú ý như thế nào tới các từ còn lại. Đầu tiên, với mỗi từ cần tạo ra 3 véc tơ:

query, key, value. Ba véc tơ này được tạo ra bằng cách nhân ma trận biểu diễn các từ đầu vào với ma trận học tương ứng.Query là véc tơ dùng để chứa thông tin của từ được tìm kiếm, so sánh, giống như là câu query của Google search.

Key là véc tơ dùng để biểu diễn thông tin các từ trong câu so sánh với từ cần tìm kiếm ở trên. Ví dụ, nội dung của các website sẽ so sánh với từ khóa mà bạn tìm kiếm. V alue là véc tơ biểu diễn nội dung, ý nghĩa của các từ. Giá trị cũng như nội dung trang web được hiển thị cho người dùng sau khi tìm kiếm (Hình 1.911). Cơ chế tự chú ý được lặp nhiều lần gọi là Multihead-attention. Công thức tính như sau:

Attention(Q, K, V) = sof tmax(QK T

dk )V (1.19)

dk là số chiều của Key.

Multihead-attention cho phép mô hình tập trung vào các ngữ cảnh khác nhau như: tầm quan trọng của một từ với các từ trước của nó, hay với các từ sau của nó, hay là các từ liên quan tới nó. Trong transformer, các lớp kết nối dư thừa và chuẩn hóa (residuals connection và normalization) được sử dụng ở mỗi tầng con để giúp mô hình nhanh hội tụ và tránh mất mát thông tin trong quá trình huấn luyện.

Phần giải mã

Hình 1.9: Quá trình tính sự chú ý

Phần giải mã làm chức năng giải mã véc tơ đặc trưng của câu nguồn để đưa ra câu đích. Ở mô hình này, phần giải mã nhận đầu vào là hai véc tơ key và

value từ phần mã hóa. Kiến trúc của phần giải mã gần giống với phần mã hóa chỉ khác ở chỗ có thêm tầng multihead-attention ở giữa để học mối quan hệ giữa từ đang được dịch và từ của câu nguồn.

Tầng Masked multihead-attention trong phần giải mã bản chất là multihead- attention. Tầng này có chức năng dùng để mã hóa các từ của câu đích trong quá trình dịch. Để làm việc này thì đơn giản là chúng ta chỉ cần nhân với một véc tơ chứa các giá trị 0,1.

Phần giải mã có một multihead-attention như nói ở trên có chức năng chú ý các từ ở mô hình mã hóa, tầng này nhận véc tơ key và value từ mô hình mã hóa và đầu ra từ tầng của masked multihead-attention. Tầng này với mục đích so sánh sự tương quan giữa từ đang được dịch với các từ nguồn. Hàm mất mát sử dụng hàm cross-entropy.

1.6.6. Học biểu diễn từ nhúng

Một trong những thành công của học sâu đó là học ra biểu diễn từ phân tán (Distributed word representation) trong không gian véc tơ [30, 31]. Biểu diễn từ là một véc tơ và còn được gọi là từ nhúng (word embedding). Thay vì sử dụng véc tơ one-hot qua việc đánh chỉ mục các từ trong bộ từ vựng, từ nhúng được học bởi các từ xung quanh và được ánh xạ lên không gian số thực nhiều chiều nhưng có số chiều thấp hơn nhiều so với kích thước của từ điển. Cách học véc

tơ từ nhúng này khai thác được các đặc trưng về ngữ nghĩa và cú pháp của từ và câu. Có những nghiên cứu học biểu diễn quan hệ mà quan hệ này cung cấp thông tin giữa hai từ được liên kết như thế nào trong câu, sử dụng phương pháp tương tự sau khi phân tích cú pháp trên dữ liệu văn bản lớn bằng bộ phân tích cú pháp phụ thuộc [32]. Cách nhúng quan hệ này giúp đạt được thông tin giàu cú pháp và ngôn ngữ. Hiệu quả của việc sử dụng cả nhúng quan hệ và từ với nhau được thấy qua bài toán trích xuất tri thức và trích xuất thuật ngữ [33, 34]. Các từ nhúng học được sau đó được sử dụng để tạo ra biểu diễn câu. Một cách đơn giản là thực hiện lấy tổng hoặc lấy trung bình của các véc tơ của các từ nhúng trong câu. Ngoài ra các mô hình như RNN, CNN, LSTM cũng được sử dụng để tạo ra biểu diễn câu. Các phương pháp này đều sử dụng từ nhúng là thành phần cơ sở đưa vào các mô hình này.

Có nhiều phương pháp biểu diễn từ nhúng như biểu diễn bằng véc tơ one-hot, ma trận đồng xuất hiện. Tuy nhiên trong phần này, chúng tôi trình bày phương pháp biểu diễn từ chiếm ưu thế hiện nay và mang lại hiệu quả cao trong các bài toán NLP đó là Word2vec, Glove, fastText, BERT.

Word2vec

Mô hình Word2vec được đưa ra bởi Mikolov và cộng sự năm 2013 [3] để giúp học biểu diễn câu có số chiều cố định mà biểu diễn này thể hiện được ngữ nghĩa và quan hệ của các từ tốt hơn phương pháp one-hot. Đồng thời phương pháp này cũng nhanh hơn và có thể dễ dàng kết hợp một câu, một văn bản mới hoặc thêm vào từ vựng so với phương pháp dùng ma trận đồng xuất hiện.

Ý tưởng chính của phương pháp này đó là học dự đoán từ lân cận của các từ. Với mỗi từ t, phương pháp này thực hiện dự đoán các từ trong cửa sổ bán kính m của tất cả các từ.

Hàm mục tiêu thực hiện tối ưu hợp lý hoá cực đại của từ ngữ cảnh (context word) đối với một từ đang xét hiện tại (center word):

J(θ) = −1 T T Y t=1 m Y j=−m(j6=0) p(wt+j|wt;θ). (1.20) Có hai cách xây dựng ngữ cảnh (hình 1.10) :

• Đầu vào cho biết ngữ cảnh và đầu ra thực hiện dự đoán từ mục tiêu (CBOW) • Đầu vào cho một từ và đầu ra thực hiện dự đoán ngữ cảnh (Skip-gram)

Hình 1.10: Mô hình CBOW và Skip-gram [3]

Thực nghiệm cho thấy mô hình Skip-gram cho kết quả vượt trội so với CBOW. Hàm mất mát của mô hình Skip-gram như sau:

−X t∈V X −m<=j<=m,j6=0 logP(w(t+j)|w(t)). (1.21) Glove

Glove là phương pháp được đưa ra bởi Pennington và cộng sự năm 2014 [31]. Đây là mô hình cải tiến của word2vec. Mô hình này học bằng cách xây dựng ma trận đồng xuất hiện. Glove mang tính toàn cục vì nó tính xác suất xuất hiện của một từ trong toàn bộ tập dữ liệu. Hơn nữa Glove cũng có độ ổn định trung bình tốt hơn qua các lần chạy so với Word2vec.

Chi phí để mô hình đưa ra dự đoán tại công thức (1.21) gồm phép lấy tổng qua toàn bộ các từ trong từ điển. Điều này có thể dẫn tới tổng chi phí tính toán trở nên quá lớn. Mặt khác, thông thường sẽ có nhiều từ hiếm trong từ điển. Các từ hiếm này ít khi xuất hiện trong tập dữ liệu. Trong hàm mất mát cross-entropy, dự đoán cuối cùng của phân phối xác suất có điều kiện trên một lượng lớn các từ hiếm gặp rất có thể sẽ không được chính xác. Vì vậy, mô hình Glove ra đời để khắc phục nhược điểm này của mô hình Skip-gram.

fastText

Word2vec không sử dụng trực tiếp thông tin về hình thái của từ. Các từ khác nhau sẽ có véc tơ biểu diễn khác nhau (ví dụ từ ’cat’ và ’cats’ không thể hiện được mối quan hệ với nhau trong mô hình). Mô hình fastText [35] đã được đề xuất để đưa thông tin về hình thái từ vào mô hình Skip-gram của Word2vec. Mỗi từ w là tập hợp của các từ con từ 3-gram đến 6-gram và các từ con đặc biệt. Khi đó từ w sẽ được tổng hợp bằng cách lấy tổng của các từ con đó.

BERT

Các từ nhúng (Word2vec, Glove hay fastText) được tạo ra ở bước tiền huấn luyện là một ma trận. Trong đó, mỗi hàng là một véc tơ biểu diễn của từ trong

Một phần của tài liệu Nghiên cứu một số bài toán trong hỏi đáp cộng đồng (Trang 38 - 50)

Tải bản đầy đủ (PDF)

(128 trang)