đoạn và embedding vị trí. (Nguồn: [15])
2.9.2 Những tác vụ Tiền huấn luyện
Suy luận xuôi của BERTEncoder cho ra biểu diễn BERT của mỗi token của văn bản đầu vào và các token đặc biệt được thêm vào “<cls>” và “<seq>”. Kế tiếp, ta sẽ sử dụng các biểu diễn này để tính tốn hàm mất mát khi tiền huấn luyện BERT. Tiền huấn luyện gồm hai tác vụ: masked language modeling và next sentence prediction.
2.9.2.1 Masked Language Modeling
Như chúng ta đã biết, một mơ hình ngơn ngữ dự đốn một token bằng cách sử dụng ngữ cảnh phía bên trái của nó. Để mã hóa ngữ cảnh hai chiều khi biểu diễn mỗi token, BERT ngẫu nhiên che các token và sử dụng các token lấy từ ngữ cảnh hai chiều để dự đốn các token được che đó. Trong tác vụ tiền huấn luyện này, 15% số token sẽ được lựa chọn ngẫu nhiên để làm các token che khuyết cho việc dự đoán. Để dự đốn một token được che mà khơng sử dụng nhãn, một hướng tiếp cận đơn giản là luôn luôn thay thế nó bằng token đặc biệt “<mask>” trong chuỗi đầu vào BERT. Tuy nhiên, token “<mask>” sẽ không bao giờ xuất hiện khi tinh chỉnh. Để tránh sự không đồng nhất giữa tiền huấn luyện và tinh chỉnh, nếu một token được cheạ để dự đốn (ví dụ, từ “great” được chọn để che và dự đoán trong câu “this movie is great”), trong đầu vào nó sẽ được thay thế bởi:
• token đặc biệt “<mask>”, chiếm 80% số lần (ví dụ, “this movie is great” trở thành “this movie is <mask>”);
• token ngẫu nhiên, chiếm 10% số lần (ví dụ, “this movie is great” trở thành “this movie is drink”);
• chính token đó, chiếm 10% số lần (ví dụ, “this movie is great” trở thành “this movie is great”).
Lưu ý rằng trong 15% token được chọn để che khuyết, 10% số token đó sẽ được thay thế bằng một token ngẫu nhiên. Việc thi thoảng thêm nhiễu sẽ giúp BERT giảm thiên kiến về phía token được che (đặc biệt khi token nhãn khơng đổi) khi mã hóa ngữ cảnh hai chiều.
2.9.2.2 Next Sentence Prediction
Mặc dù masked language modeling có thể mã hóa ngữ cảnh hai chiều để biểu diễn từ ngữ, nó khơng thể mơ hình hóa các mối quan hệ logic giữa các cặp văn bản một cách tường minh. Để hiểu hơn về mối quan hệ giữa hai chuỗi văn bản, BERT sử dụng tác vụ phân loại nhị phân, dự đoán câu tiếp theo (next sentence prediction) trong quá trình tiền huấn luyện. Khi sinh các cặp câu cho quá trình tiền huấn luyện, một nửa trong số đó là các cặp câu liên tiếp nhau trong thực tế và được gán nhãn “Đúng” (True); và trong nửa còn lại, câu thứ hai được lấy mẫu ngẫu nhiên từ kho ngữ liệu và cặp này được gán nhãn “Sai” (False).
Khi tiền huấn luyện BERT, hàm mất mát cuối cùng là tổ hợp tuyến tính của cả hai hàm mất mát trong tác vụ masked language modeling và next sentence prediction.
2.10 Mơ hình TransformerXL
Mơ hình Transformer đã đạt được nhiều kết quả đáng kinh ngạc, được áp dụng thành công vào nhiều bài tốn mơ hình và xử lý ngơn ngữ tự nhiên. Al-Rfou et al. (2018) đã đề xuất sử dụng mơ hình Transformer trong bài tốn mơ hình ngơn ngữ cấp độ kí tự (character-level modeling). Một ứng dụng vơ cùng gần gũi của bài tốn này trong cuộc sống hàng ngày chính là hệ thống gợi ý từ kế tiếp của các bàn phím máy tính, điện thoại thơng minh,... Bài tốn mơ hình ngơn ngữ cấp độ kí tự đặt ra một thử thách vô cùng lớn trong vấn đề nắm bắt ngữ cảnh và phụ thuộc xa: trong bài toán này, ngữ cảnh dài hơn rất nhiều so với bài tốn mơ hình cấp độ từ vựng (word-level modeling). Với bài tốn mơ hình cấp độ từ vựng, con số 512 - chiều dài ngữ cảnh tối đa mà mơ hình Trasnformer có thể nắm bắt, là q đủ vì hầu như các câu (sentence) gần như chẳng vượt qua con số 512 từ bao giờ. Tuy nhiên, trong bài tốn cấp độ từ vựng, thì chiều dài này là khơng đủ để biểu diễn đầy đủ ngữ cảnh một câu. Tác giả Al-Rfou et al đề xuất một cách xử lý để có thể sử dụng mơ hình Transformer cho bài tốn này, chính là chia nhỏ ngữ cảnh đầu vào thành từng phân đoạn (segment) có chiều dài 512, và thực hiện nạp từng phân đoạn vào mơ hình trong quá trình huấn luyện. Cách xử lý này dẫn đến 2 hạn chế:
• Phân mảnh ngữ cảnh: Vì ngữ cảnh được chia thành các phân đoạn có chiều dài giới hạn
512, và các phân đoạn này được nạp vào độc lập trong quá trình huấn luyện, nên mơ hình khơng thể nắm bắt được ngữ cảnh từ các phân đoạn trước.
• Chi phí đánh giá lớn: Ở bước đánh giá, vì để tính được xác suất kí tự tiếp theo dựa trên
512 kí tự trước đó, mơ hình phải dịch (shift) từng kí tự một trên câu đầu vào (như hình minh hoạ). Cách làm này dẫn đến chi phí việc đánh giá mơ hình là rất lớn. Bên cạnh đó, nó cịn dẫn đến kết quả độ chính xác ở bước đánh giá là khơng cao, khi mà ngữ cảnh được cung cấp chỉ hạn chế trong 512 kí tự liền trước.
Hình 2.24:Minh hoạ mơ hình Transformer với chiều dài phân đoạn bằng 4 (Nguồn: [23]) Với sự hạn chế về mặt nắm bắt ngữ cảnh và phụ thuộc xa, mơ hình Transformer đã khơng thể đánh bại được mơ hình hồi quy RNN trong bài tốn mơ hình ngơn ngữ cấp độ kí tự.
Zihang Dai et al. và các đồng tác giả đã đề xuất mơ hình TransformerXL. Mơ hình này đã giải quyết được hạn chế về nắm bắt ngữ cảnh và phụ thuộc xa của mơ hình Transformer. Mơ hình là sự kết hợp của Transformer cùng 2 cơ chế, kĩ thuật mới được tác giả đề xuất, đó là: hồi quy cấp phân đoạn tái sử dụng giá trị trạng thái (segment-level recurrence with State reuse) và kĩ thuật mã hố vị trí tương đối (relative positional encoding).
2.10.1 Cơ chế hồi quy cấp phân đoạn tái sử dụng giá trị trạng thái
Để giải quyết hạn chế về độ dài ngữ cảnh của Transformer, tác giả đã đê xuất sử dụng cơ chế hồi quy. Nhưng khác với mạng hồi quy, cấp độ hồi quy ở đây không phải hồi quy theo thời gian, mà là hồi quy theo cấp phận đoạn: trạng thái ẩn (hidden state) được tính ở phân đoạn trước là bất biến, khơng tiếp tục tính tốn grandient, và sẽ được sử dụng để tính tốn trạng thái ẩn của phân đoạn hiện tại. Cơ chế này được gọi là hồi quy cấp độ phân đoạn tái sử dụng giá trị trạng thái. Cơ chế này được biểu diễn qua 4 cơng thức dưới đây:
Kí hiệu:
sτ = [xτ,1, ...,xτ,L]biểu diễn cho phân đoạn thứτ có chiều dài L.
hn
τ ∈RL×d biểu diễn cho trạng thái của phân đoạnsτ
Trong đó:
n = số lớp ẩn (hidden layer) d = số chiều của mỗi lớp ẩn
Khi đó, trong phân đoạnsτ+1, trạng thái ẩn của lớp thứ n sẽ được tính như sau:
e hτ+1n−1= [SG(hτ n−1)◦hτ+1 n−1] (2.5) qτ+1n ,knτ+1,vτ+1n =hτ+1 n−1WT q,ehτ+1n−1WT k,ehτ+1n−1WT v (2.6) hτ+1
n =Trans f ormer−Layer(qτ+1n ,kτ+1n ,vτ+1n ) (2.7) Theo đó:
• (2.6): Là cơng thức tính trạng thái ẩn mở rộngn−1của phân đoạnτ+1. SG biểu diễn
cho hàm stop-gradient,[hu◦hv]biểu thị cho phép nối (concatenation) 2 ma trận theo kích thước chiều dài (length dimension). Nhưng vậy, trạng thái ẩn mở rộng tại lớp ẩnn−1của phân đoạnτ+1sẽ được kết hợp từ trạng thái ẩn tại lớpn−1của phân đoạnτ và τ+1,
trong đó trạng thái ẩn ở lớpn−1của phân đoạn liền trước sẽ bị ngăn khơng tiếp tục tính tốn gradient bằng hàm stop-gradient.
• (2.7): Là cơng thức tính tốn các vector truy vấn (q), khoá (k), giá trị (v) của lớp ẩn
thứ n của phân đoạnτ+1. Wlà ma trận chứa các tham só có khả năng học (learnable parameters) của mơ hình. Khố và giá trị sẽ được tính tốn dựa vào trạng thái ẩn mở rộng ở cơng thức (2.6), cịn truy vấn chỉ sử dụng trạng thái ẩn hτ+1
n−1 của phân đoạn hiện tại
τ+1.
• (2.8): Là cơng thức tính trạng thái ẩn tại lớp ẩnncủa phân đoạnτ+1. Trạng thái ẩn tại
lớpnsẽ được tính như mơ hình Transformer với các ma trận truy vấn, khố và giá trị vừa tìm được ở bước trên.
Điểm mới của thiết kế này so với mơ hình Transformer truyền thống, là tác giả đã đưa ra cơ chế mở rộng ngữ cảnh (2.6) và sử dụng ngữ cảnh mở rộng này trong việc tính tốn các ma trận khố và giá trị (2.7). Vì trạng thái ẩnhτ
n−1 được tính tính từ trạng thái ẩn liền trước, và hồi quy như vậy, ngữ cảnh có thể truyền đi xuyên suốt các phân đoạn, vượt trên mức 2 phân đoạn liền kề.
Hình 2.25:Minh hoạ mơ hình TransformerXL với chiều dài phân đoạn bằng 4 (Nguồn: [23])Với việc đưa ra cơ chế hồi quy cấp phân đoạn tái sử dụng giá trị trạng thái, tác giả đã thành công Với việc đưa ra cơ chế hồi quy cấp phân đoạn tái sử dụng giá trị trạng thái, tác giả đã thành công giải quyết được hạn chế của mơ hình Transformer truyền thống trong việc nắm bắt ngữ cảnh và phụ thuộc xa. Đồng thời, nhờ ngữ cảnh được truyền đi xuyên suốt, mà chi phí cho việc đánh giá mơ hình đã giảm đi rất nhiều. Thay vì phải dịch (shift) từng token một để tạo ra từng phân đoạn mới và đầu ra mới như Transformer truyền thống, thì TransformerXL có thể dịch từng phân đoạn bởi khả năng nắm bắt ngữ cảnh của mình. Kết quả đánh giá mơ hình TransformerXL đã vượt kiến trúc RNN cả về độ chính xác và thời gian huấn luyện, trong mơ hình ngơn ngữ cấp độ kí tự. TransformerXL đã đánh bại mơ hình hồi quy trong cả mơ hình ngơn ngữ cấp độ từ vựng và kí tự.
Tuy nhiên, nếu chỉ có cơ chế hồi quy cấp phân đoạn thì khơng thể tạo nên sức mạnh của TransformerXL. Bởi lẽ, mơ hình Transformer truyền thống vẫn đang sử dụng cơ chế mã hố dựa vào vị trí tuyệt đối (absolute positional encoding) của token trong phân đoạn. Điều này dẫn đến, những token thuộc những phân đoạn khác nhau, sẽ có cùng giá trị mã hố vị trí. Do đó sẽ dẫn đến sự sai sót trong tính tốn, vì mơ hình sẽ khơng phân biệt được sự khác biệt về vị trí giữa những token này. Đó là lý do ra đời của kĩ thuật mã hố vị trí tương đối (relative positional encoding).
2.10.2 Kĩ thuật mã hố vị trí tương đối
Để biểu diễn thứ tự của các token, ngoài sử dụng số thứ tự - hay vị trí tuyệt đố của token, thì có thể biểu diễn thơng qua khoảng cách giữa token đó với token đang xét. Ý tưởng về mã hố vị trí tương đối của token đã được đề xuất bởi một vài tác giả khác trước đó, tuy nhiên trong bài báo của mình, tác giả đã đề xuất một kĩ thuật mới. Tác giả cũng phân tích rằng, mục đích của bước mã hố vị trí, là nhằm cung cấp cho mơ hình thơng tin gợi ý hay khuynh huớng (bias) nên chú ý tại đâu. Do đó, thay vì kết hợp thơng tin khuynh hướng (bias) này với chung với vector embedding ban đầu, ta có thể truyền (inject) nó vào điểm tập trung (attention score) tại mỗi lớp. Trước khi phân tích điểm mới của tác giả, ta hãy nhắc lại cơng thức tính điểm tập trung giữa truy vấnqj và khốkicủa mơ hình Transformer truyền thống:
Aabs i,j =ET xiWT qWkExj | {z } (a) +ET xiWT qWkUj | {z } (b) +UT i WT qWkExj | {z } (c) +UT i WT qWkUj | {z } (d) (2.8) Trong đó:
Elà word embedding của token
Ulà mã hố vị trí tuyệt đối của token trong chuỗi đầu vào
Tác giả đã viết lại công thức trên cùng với những cải tiến của mình như sau:
Arel i,j =ET xiWT qWk,EExj | {z } (a) +ET xiWT qWk,RRi−j | {z } (b) +uTWk,EExj | {z } (c) +vTWk,RRi−j | {z } (d) (2.9) Những sự cải tiến đó được tác giả liệt kê và giải thích như sau:
• Thứ nhất, tác giả đã thay ma trận mã hố vị trí tuyệt đốiUjthành ma trận biểu diễn vị trí tương đối giữa 2 token i, j Ri−j trong các thành phần (b) và (d). Ma trận này được tính bằng cơng thức mã hố vị trí của mơ hình Transformer.
• Thứ hai, tác giả đề xuất sử dụng tham số có khả năng huấn luyện (trainable parameter)
u để thay thế cho truy vấnUT i WT
q trong thành phần (c). Lý giải cho sự thay đổi này, tác giả chỉ ra rằng,UT
iWT
q là không thay đổi trên các token khác nhau và khác token hiện tại, đồng nghĩa với thiên kiến tập trung sẽ như nhau cho mọi token khác token chứa truy vấn. Điều này chưa hợp lý, khi mà sự phụ thuộc giữa các token là khơng giống nhau. Lấy ví dụ cho câu "I see a man who is crying", "who" sẽ có quan hệ với "a man" hơn các từ cịn lại. Hoặc có thể thấy, thơng thường các từ sẽ có quan hệ phụ thuộc vào những từ gần nó hơn là những từ ở xa. Với lý do tương tự, tác giả cũng sử dụng tham số có khả năng huấn luyệnvđể thay thế cho truy vấnUT
i WT
q trong thành phần (d).
• Cuối cùng, tác giả thực hiện tách ma trận trọng số khoáWkthành 2 ma trậnWk,RvàWk,E
mang ý nghĩa lần lượt là khoá dựa trên nội dung (content-based key) và khố dựa trên vị trí (location-based key).
Với sự kết hợp của cơ chế hồi quy cấp phân đoạn tái sử dụng giá trị trạng thái cùng kĩ thuật mã hố vị trí tương đối, mơ hình TransformerXL đã giải quyết được những hạn chế của mơ hình gốc Transformer, đạt được những kết quả SOTA trên nhiều tập dữ benchmark, qua đó vượt qua cả
Transformer và mơ hình hồi quy về độ chính xác. Bên cạnh đó, so sánh với mơ hình Transformer truyền thống, mơ hình TransformerXL đã nâng tốc độ quá trình đánh giá lên gấp 1874 lần trong bài tốn mơ hình ngơn ngữ cấp độ kí tự. Với những ưu thế nổi bật về khả năng nắm bắt phụ thuộc xa và tốc độ huấn luyện của mơ hình, nhóm đã quyết định chọn mơ hình TransformerXL để xây dựng mơ hình sinh nhạc cho đề tài luận văn.
3
CƠNG NGHỆ SỬ DỤNG
Trong chương này, chúng tôi xin giới thiệu các cơng nghệ, ngơn ngữ lập trình và một số frame- work mà nhóm đã sử dụng để phát triển và hiện thực luận văn này.
Mục lục
3.1 Ngơn ngữ lập trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Thư viện và nền tảng sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Ngơn ngữ lập trình
3.1.1 Python
Pythonlà ngơn ngữ lập trình thơng dịch do Guido van Rossum tạo ra năm 1990 và được phát triển trong một dự án mã nguồn mở. Python là ngơn ngữ lập trình bậc cao, sử dụng kiểu cấp phát bộ nhớ động, hỗ trợ các phương thức lập trình như lập trình hướng đối tượng, lập trình hàm và thường được sử dụng trong mảng nghiên cứu học máy và phân tích dữ liệu.
Ưu điểm
• Cú pháp đơn giản, dễ tiếp cận.
• Hỗ trợ nhiều thư viện về học máy, học sâu như Tensorflow, Pytorch, Keras, ... và các thư viện xử lý dữ liệu như Pandas, Numpy, Scipy,...
• Có cộng đồng phát triển lớn.
Nhóm quyết đinh sử dụng Python phiên bản 3 để thực hiện các thành phần trong luận văn.
3.1.2 JavaScript
JavaScriptđược tạo ra bởi Brandan Eich, một nhân viên của Netspace, vào tháng 9 năm 1995, nó là ngơn ngữ lập trình phổ biến nhất thế giới trong suốt 20 năm qua. JavaScript là ngơn ngữ lập trình thơng dịch, được dùng để viết các ứng dụng web ở phía người dùng và các ứng dụng của máy chủ.
Ưu điểm
• Ngơn ngữ dễ học, dễ sử dụng.
• Hoạt động được trên nhiều trình duyệt, nền tnagr khác nhau.
• Có nhiều thư viện, framework hỗ trợ cho việc viết ứng dụng web.
Với các ưu điểm của JavaScript, nhóm sử dụng JavaScript để hiện thực các thành phần trong