Một mục nhúng là một biểu diễn dữ liệu dưới dạng vectơ trong không gian nhúng. Nhìn chung, một mô hình sẽ xác định các mục nhúng tiềm năng bằng cách chiếu không gian đa chiều của các vectơ dữ liệu ban đầu xuống một không gian ít chiều hơn. Để tìm hiểu về dữ liệu đa chiều so với dữ liệu ít chiều hơn, hãy xem mô-đun Dữ liệu phân loại.
Các mục nhúng tạo điều kiện thuận lợi hơn cho quá trình học máy trên các vectơ đặc trưng có kích thước lớn, chẳng hạn như các vectơ thưa thể hiện món ăn mà chúng ta đã thảo luận trong phần trước. Đôi khi vị trí tương đối của các mục trong không gian nhúng có thể liên quan về mặt ngữ nghĩa, nhưng thường thì con người không diễn giải được quá trình tìm không gian ít chiều hơn và vị trí tương đối trong không gian đó, nên con người khó mà hiểu được các mục nhúng được trả về.
Dù vậy, để con người hiểu được và hình dung được cách các vectơ nhúng biểu diễn thông tin, hãy xem phép chiếu sau đây trên không gian một chiều về các món bánh mì kẹp xúc xích, pizza, rau trộn, shawarma và borscht, được biểu diễn theo tiêu chí từ "ít giống bánh sandwich nhất" đến "giống bánh sandwich nhất". Chiều duy nhất này chính là thước đo tưởng tượng về tiêu chí "giống bánh sandwich".

Vậy thì một chiếc
bánh táo
sẽ nằm ở đâu trên đường thẳng này? Có thể cho rằng chiếc bánh đó nằm giữa hot dog
và shawarma
. Nhưng có vẻ như chiếc bánh
táo lại có thêm chiều là giống đồ ngọt
hoặc giống món tráng miệng nên rất khác biệt với các lựa chọn khác.
Điều này được minh hoạ trong hình sau đây, bằng cách thêm chiều "giống món tráng miệng":

Một mục nhúng biểu diễn từng mục trong không gian n chiều, với n là số dấu phẩy động (thường nằm trong khoảng –1 đến 1 hoặc 0 đến 1). Mục nhúng trong Hình 3 thể hiện từng loại món ăn trong không gian một chiều với một toạ độ duy nhất, trong khi Hình 4 lại thể hiện từng loại món ăn trong không gian hai chiều với hai toạ độ. Trong Hình 4, "bánh táo" nằm ở góc phần tư phía trên bên phải của biểu đồ và có thể được xác định bằng điểm (0,5; 0,3), trong khi "bánh mì kẹp xúc xích" nằm ở góc phần tư phía dưới bên phải của biểu đồ và có thể được xác định bằng điểm (0,2; –0,5).
Trong một mục nhúng, khoảng cách giữa bất cứ hai mục dữ liệu nào đều có thể được tính toán
bằng phương pháp toán học và có thể được diễn giải là thước đo mức độ tương đồng
tương đối giữa hai mục đó. Hai điểm dữ liệu gần nhau (chẳng hạn như
shawarma
và hot dog
trong Hình 4) có liên quan chặt chẽ hơn trong biểu diễn dữ liệu của mô hình
so với hai điểm dữ liệu cách xa nhau hơn
(như apple strudel
và borscht
).
Cũng hãy lưu ý rằng trong không gian 2D trong Hình 4, apple strudel
ở xa
shawarma
và hot dog
hơn nhiều so với trong không gian 1D, điều này phù hợp
với những gì quan sát thấy: khi so sánh apple strudel
với bánh mì kẹp xúc xích hoặc shawarma thì
mức độ tương đồng không cao như khi so sánh bánh mì kẹp xúc xích và shawarma với nhau.
Giờ thì hãy xem xét đến món borscht, món này có kết cấu lỏng hơn nhiều so với các món khác. Điều này gợi ra một chiều thứ ba, giống món có kết cấu lỏng, hoặc độ lỏng của một loại thức ăn. Sau khi thêm chiều đó, chúng ta có thể minh hoạ các món đó trong không gian 3D theo cách này:

Trong không gian 3D này thì món bánh trôi tàu sẽ nằm ở đâu? Đây là món có chất lỏng, giống như borscht, và là món tráng miệng ngọt, giống như bánh táo, nhưng chắc chắn không phải là bánh sandwich. Có khả năng, vị trí của món này sẽ giống như hình dưới đây:

Hãy chú ý đến lượng thông tin được thể hiện trong ba chiều này. Bạn có thể hình dung đến việc thêm những chiều khác vào (chẳng hạn như số lượng thịt hay mức độ nướng chín). Tuy nhiên, thật khó có thể hình dung được các không gian đa chiều từ 4D, 5D trở lên.
Không gian nhúng trong thế giới thực
Trong thế giới thực, không gian nhúng là không gian d chiều, trong đó d lớn hơn 3 rất nhiều, mặc dù thấp hơn số chiều của dữ liệu, cũng như không nhất thiết phải minh hoạ mối quan hệ giữa các điểm dữ liệu cụ thể như trong hình mà chúng ta minh hoạ ra ở trên. (Đối với việc nhúng từ ngữ, d thường là 256, 512 hoặc 1024.1)
Trên thực tế, người làm việc trong lĩnh vực học máy thường chỉ định nhiệm vụ cụ thể và số lượng chiều của không gian nhúng. Sau đó, mô hình sẽ tìm cách sắp xếp các ví dụ dùng trong huấn luyện sao cho gần nhau trong không gian nhúng với một số lượng chiều đã chỉ định, hoặc điều chỉnh cho phù hợp với số lượng chiều nếu d không phải số cố định. Các chiều riêng lẻ hiếm khi dễ hiểu như trong ví dụ về "giống món tráng miệng" hay "giống món có kết cấu lỏng". Đôi khi chúng ta cũng diễn giải được "ý nghĩa" của các chiều này, nhưng điều này không phải lúc nào cũng làm được.
Thường thì các mục nhúng sẽ cụ thể đối với từng nhiệm vụ và khác nhau đối với các nhiệm vụ khác nhau. Ví dụ: các mục nhúng được tạo ra bởi mô hình phân loại thức ăn chay so với thức ăn không phải chay sẽ khác với các mục nhúng được tạo ra bởi mô hình gợi ý các món ăn dựa trên thời gian trong ngày hoặc theo mùa. Chẳng hạn như "ngũ cốc" và "xúc xích ăn sáng" có thể sẽ gần nhau trong không gian nhúng của mô hình theo thời gian trong ngày, nhưng lại cách xa nhau trong không gian nhúng của mô hình phân loại thức ăn chay so với thức ăn không phải chay.
Mục nhúng tĩnh
Mặc dù các mục nhúng có thể khác nhau tuỳ theo nhiệm vụ, nhưng một nhiệm vụ sẽ có một số ứng dụng chung: dự đoán ngữ cảnh của một từ. Các mô hình được huấn luyện để dự đoán ngữ cảnh của một từ sẽ cho rằng các từ xuất hiện trong các ngữ cảnh tương tự sẽ có liên quan về mặt ngữ nghĩa. Ví dụ: dữ liệu huấn luyện có chứa các câu "Họ cưỡi một con lừa xuống Grand Canyon" và "Họ cưỡi một con ngựa xuống hẻm núi" cho thấy rằng "con ngựa" xuất hiện trong ngữ cảnh tương tự như "con lừa". Thực tế cho thấy rằng các mục nhúng dựa trên mức độ tương đồng về mặt ngữ nghĩa có hiệu quả đối với nhiều nhiệm vụ chung về ngôn ngữ.
Mặc dù là một ví dụ cũ và phần lớn đã bị thay thế bởi các mô hình khác,
nhưng mô hình word2vec vẫn hữu ích trong việc minh hoạ. word2vec
được huấn luyện trên
một tập hợp gồm nhiều tài liệu để có được một
mục nhúng chung duy nhất cho mỗi từ. Khi mỗi từ hoặc điểm dữ liệu có một vectơ nhúng duy nhất,
thì đây được gọi là mục nhúng tĩnh. Sau đây là một video hướng dẫn
minh hoạ đơn giản về quá trình huấn luyện word2vec
.
Nghiên cứu cho thấy rằng sau khi được huấn luyện thì các mục nhúng tĩnh này sẽ mã hoá một số thông tin ngữ nghĩa, đặc biệt là trong mối quan hệ giữa các từ. Tức là những từ được sử dụng trong các ngữ cảnh tương tự sẽ gần nhau hơn trong không gian nhúng. Các vectơ nhúng cụ thể được tạo ra sẽ phụ thuộc vào dữ liệu được sử dụng trong quá trình huấn luyện. Hãy tham khảo "Efficient estimation of word representations in vector space" (Ước tính hiệu quả về cách biểu diễn từ trong không gian vectơ) của T. Mikolov và các cộng sự (2013), để biết thêm chi tiết.
-
François Chollet, Deep Learning with Python (Học sâu với Python) (Shelter Island, NY: Manning, 2017), 6.1.2. ↩