Thành phần mã hóa

Một phần của tài liệu Xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 29 - 34)

2.3.2.1 Vector hóa câu đầu vào

Cho đến nay máy tính không hiểu được chữ viết mà chỉ đọc được dưới dạng số hóa, vì vậy ta cần biểu diễn các từ dưới dạng vector. Việc chuyển hóa các từ thành dạng vector sử dụng thuật toán Word2Vec [9], dữ liệu đầu vào sẽ là các câu của tập dữ liệu huấn luyện, thuật toán dựa vào vị trí và ngữ cảnh các từ trong câu để tính toán sự tương đồng, các từ có nghĩa tương đồng hoặc bổ trợ cho nhau sẽ có các vector tương đồng nhau trong không gian từ vựng. Có 2 cách tiếp cận Word2Vec là Continuous bag of words (CBOW) và Skip-gram model:

19 -CBOW: thuật toán dự đoán từ trung tâm ở giữa câu bằng cách sử dụng ngữ cảnh của các từ xung quanh từ dự đoán.

-Skip-gram model: ngược lại với CBOW, thuật toán Skip-gram model sẽ dự đoán các từ xung quanh từ trung tâm phụ thuộc vào ngữ cảnh của từ trung tâm đó trong câu.

2.3.2.2 Thành phần mã hóa vị trí (Positional Encoding)

Mô hình Transformer không xử lý các từ trong câu một cách tuần tự, cho nên cần một phương pháp để xử lý thứ tự của các từ trong chuỗi đầu vào. Để giải quyết bài toán này Tranformer cộng một vector kích thước bằng word embedding vào mỗi embedding đầu vào, với việc tính toán vector vị trí sử dụng hàm sinusoid:

𝑃𝐸(𝑝𝑜𝑠,2𝑖) = sin ( 𝑝𝑜𝑠 10000 2𝑖 𝑑𝑚𝑜𝑑𝑒𝑙 ) (2.7) 𝑃𝐸(𝑝𝑜𝑠,2𝑖+1) = cos ( 𝑝𝑜𝑠 10000 2𝑖 𝑑𝑚𝑜𝑑𝑒𝑙 ) (2.8)

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

Hàm sin và cosin có dạng đồ thị tần số và tần số này giảm dần ở các chiều lớn dần. Hình dưới biểu diễn được sự biến thiên của màu sắc ở các vị trí khác nhau của từ trong câu, ở chiều 0, giá trị thay đổi liên tục tương ứng với màu sắc thay đổi liên tục, và tần số thay đổi này giảm dần ở các chiều lớn hơn.

20

Hình 2.3 Minh họa biểu đồ nhiệt Positional Encoding 2.3.2.3 Cơ chế tự chú ý (Seft-Attention)

Cơ chế tự chú ý hay Self-Attention là cơ chế giúp Transformer tìm ra được sự liên quan giữa các từ trong câu. Ví dụ trong câu “The animal didn’t cross the street because it was too tired”. Từ “it” trong câu trên đại diện cho cái gì,

“animal” hay “street”, đối với con người thì không khó để trả lời, nhưng lại không đơn giản với các thuật toán. Seft-Attention cho phép từ “it” quan sát các từ ở các vị trí khác trong câu để tìm ra sự liên quan giữa chúng với nhau. Đối với các mạng RNN duy trì một trạng thái ẩn cho phép nó kết hợp với các từ trước từ đang xử lý, còn đối với Transformer sẽ duy trì mối liên kết đối với tất cả các từ trong câu.

21

Hình 2.4. Minh họa mức độ liên kết giữa các từ [10]

Khi mã hóa từ “it” tại encoder thứ 2, từ “it” liên kết rất mạnh với từ

“animal”“too tired”.

Để tính được Self-Attention, với mỗi từ ta sẽ khởi tạo 3 trọng số WQ, Wk, Wv, sau đó nhân với ma trận đầu vào được 3 ma trận Q (query), K (key), V (value) với số chiều bằng nhau và nhỏ hơn vector embedding, chiều là 64 trong khi embedding từ đầu vào là 512. Bước tiếp theo nhân tích vô hướng ma trận Q và K rồi thực hiện kĩ thuật Scaled Dot-Product Attention, tức là chia tích vô hướng 2 mà trận Q và K cho √𝑑𝑘 với 𝑑𝑘 là chiều của K, và truyền kết quả qua hàm Softmax. Softmax chuẩn hóa các điểm để chúng là các số dương có nhỏ hơn 1. Bước cuối nhân tích vô hướng với V, ta được công thức nhau sau:

𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝐾, 𝑉) = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (𝑄𝐾

𝑇

22

2.3.2.4 Cơ chế đa đầu chú ý (Multi-Head Attention)

Với mỗi Attention mô hình học được một kiểu liên hệ giữa các từ trong câu, để mở rộng khả năng học được nhiều mối liên hệ hơn, tập trung vào các vị trí khác nhau, Transformer sử dụng cơ chế Multi-Head Attention, đơn giản là thêm nhiều Seft-Attention. Theo thực nghiệm chỉ ra rằng tạo 8 bộ ma trận trọng số WQ, Wk, Wv là phù hợp nhất. Mỗi bộ được khởi tạo ngẫu nhiên, nhân ma trận vector embedding đầu vào với 8 bộ tương ứng ta được 8 ma trận Head-Attention. Sau đó nối các ma trận với nhau và nhân với ma trận trọng số Wo để ra được kết quả có kích thước bằng với ma trận embedding đầu vào. Ta được công thức:

𝑀𝑢𝑙𝑡𝑖𝑝𝑙𝑒(𝑄, 𝐾, 𝑉) = 𝐶𝑜𝑛𝑐𝑎𝑡(ℎ𝑒𝑎𝑑1, … , ℎ𝑒𝑎𝑑ℎ)𝑊𝑂 (2.10)

Với ℎ𝑒𝑎𝑑𝑖 = 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑊𝑖𝑄, 𝐾𝑊𝑖𝐾, 𝑉𝑊𝑖𝑣)

2.3.2.5 Mạng truyền thẳng xuôi theo vị trí

Ma trận kết quả của Multi-Head Attention sẽ được truyền vào mạng truyền thẳng xuôi theo vị trí (Position-wise Feed-Forward Networks). Tất cả các vị trí khác nhau đều sử dụng chung một mạng truyền thẳng và được tính toán song song. Mạng truyền thẳng này bao gồm 2 lớp và được chuẩn hóa với ReLu. Các từ đi qua cùng một mạng truyền thẳng một cách độc lập.

𝐹𝐹𝑁(𝑥) = max(0, 𝑥𝑊1+ 𝑏1) 𝑊2+ 𝑏2 (2.11)

2.3.2.6 Kỹ thuật kết nối phần dư và chuẩn hóa lớp

Trong kiến trúc của mô hình Transformer, kỹ thuật kết nối phần dư (Residuals Connection) và chuẩn hóa lớp (Layer Normalization) được sử dụng sau mỗi quá trình xử lý, 2 kỹ thuật giúp mô hình huấn luyện nhanh hội tụ hơn và tránh mất mát thông tin trong quá trình huấn luyện mô hình. Layer Normalization (11) có nhiệm vụ chuẩn hóa dữ liệu nhằm cải thiện khả năng hội tụ của mô hình. Với Residuals Connection (12) ngoài việc giúp hội tụ tốt hơn còn có nhiệm vụ giúp mô hình Transformer giữ được thông tin về vị trí các từ trong câu (Position Encoding) tốt hơn, bởi vì trong quá trình xử lý dữ liệu thông tin về vị trí các từ sẽ bị mất mát dần.

23

Một phần của tài liệu Xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 29 - 34)