Xử lý ngôn ngữ tự nhiên: Nhúng từ

Diagram of data embedding pipeline converting raw text 'The lazy dog' into vector representations with steps for preprocessing, embedding model, output vectors, and downstream applications
A conceptual diagram explaining the data embedding pipeline for transforming text into vector representations.

Không giống như các quy trình khai thác dữ liệu thông thường, hoạt động nhúng nằm trong khu vực giao thoa giữa khai thác dữ liệu và học máy. Nó vừa khai thác kiến thức để đưa vào học máy, vừa đào tạo tri thức từ mạng (NN). Việc khai thác giống như một đường ống nơi dòng chảy kiến thức đang tiến triển theo thời gian thông qua đào tạo. Điều đó có nghĩa là mạng phải học hỏi kiến thức và điều chỉnh nguồn tri thức.
Công việc nhúng có hai tác dụng:

  • Chuyển đổi dữ liệu thưa thớt thành tri thức phân tán thống nhất
  • Chuyển đổi kích thước đầu vào lớn, thay đổi như số lượng từ trong đoạn văn, thành kích thước nhỏ cố định của đầu vào thực của mạng.


Chúng ta xem xét đoạn văn
“The quick brown fox jumps over the lazy dog”

Mỗi từ được biểu diễn bằng một vectơ trong không gian hai chiều. Trường hợp chung sẽ là n chiều. Những vectơ này sẽ được học và di chuyển trong không gian.

Các vectơ từ này thuộc về một ma trận nhúng với n cột và m hàng. Trong đó m = vocabulary_size là số lượng từ vựng. Mỗi mẫu là một đoạn văn thuộc về một lớp, các từ được ánh xạ thông qua từ điển đến vectơ của nó , từ đó truy cập bằng chỉ mục đến các vectơ hàng trong ma trận.
Một vectơ có cùng kích thước n lấy giá trị trung bình của các vectơ trong mẫu trở thành vectơ đầu vào thực của mạng.
Các phần tử của ma trận nhúng được tạo ra từ sự phân bố đồng đều trong phạm vi [-1.0, 1.0). Kích thước n còn được gọi là kích thước nhúng.
Vì vậy, thông qua một bước nhúng, chúng ta nhận được:

  • Chuyển đổi câu mẫu thành các giá trị trong khoảng [-1.0, 1.0)
  • Độ dài đoạn mẫu sequence không cố định (lớn) trở thành độ dài cố định của vectơ nhúng (nhỏ).


Chúng ta xử lý mẫu theo lô, từng mẫu. Theo ngôn ngữ tensor, đầu ra ban đầu sẽ là một tensor 3D với vectơ kích thước (batch_size, sequence, embedding). Sau khi tính trung bình, chúng ta nhận được một tensor 2D với vectơ kích thước (batch_size, embedding), làm đầu vào của mạng như bình thường

Nút ẩn hid1 có n+1 trọng số như bình thường, đó là a10, a11 … a1n. Mạng phải học thêm m × n trọng số hay tham số của ma trận nhúng.

Ví dụ, một mạng được thiết kế với 16 đầu vào, n = 16. Số từ vựng là m = vocabulary_size = 10000. Sau đó, số lượng tham số nhúng sẽ là 10000 × 16 = 160000.

Các đạo hàm riêng của hàm lỗi theo trọng số trên cùng một cột cho một mẫu là như nhau. Chúng ta có

Trong đó

Hàm chuyển kích hoạt nút ẩn. Đầu vào là uk, đầu ra là yk. Nếu chúng ta sử dụng hàm sigmoid thì

Vì vậy, công thức đạo hàm cuối cùng cho trọng số nhúng là

Trong đó ∂E / ∂yk là đạo hàm riêng của hàm lỗi theo đầu ra của nút ẩn  kth như thông thường.

Bình luận về bài viết này