Machine Learning

SƠ LƯỢC WORD EMBEDDING

  • Tác giả: Cao Chánh Dương.
  • Sinh viên năm 3 Khoa Khoa học và kĩ thuật Máy tính Đại học Bách khoa TPHCM.
  • Deep Research Atomic Group Of New-Age (DRAGON).

1. Khái niệm

Word Embedding là tên gọi chung của các mô hình ngôn ngữ và các phương pháp học theo đặc trưng trong Xử lý ngôn ngữ tự nhiên(NLP), ở đó các từ hoặc cụm từ được ánh xạ sang các vec-tơ số (thường là số thực). Đây là một công cụ đóng vai trò quan trọng đối với hầu hết các thuật toán, kiến trúc Machine Learning, Deep Learning trong việc xử lý Input ở dạng text, do chúng chỉ có thể hiểu được Input ở dạng là số, từ đó mới thực hiện các công việc phân loại, hồi quy,vv…

2. Các loại Word Embedding

Word Embedding được phân chủ yếu thành 2 loại:

  • Frequency-based embedding.
  • Prediction-based embedding.

2.1 Frequency Base Embedding

Đúng như tên gọi của nó, Frequency-based Embedding dựa vào tần số xuất hiện của các từ để tạo ra các vec-tơ từ, trong đó có 3 loại phổ biến nhất:

  • Count Vector.
  • tf-idf Vector.
  • Co-occurrence Matrix.

Count Vector là dạng đơn giản nhất của Frequencey-based Embedding, giả sử ta có D documents d1,d2,…dD và N là độ dài của từ điển, vec-tơ biểu diễn của một từ là một vec-tơ số nguyên và có độ dài là D, ở đó phần tử tại vị trí i chính là tần số của từ đó xuất hiện trong document di. Trong một số trường hợp, ta có thể lượt bớt các từ có tần số xuất hiện thấp hoặc thay đổi mục nhập của vector (thay vì tần số có thể thay bằng một giá trị nhị phân biểu thị sự xuất hiện của từ) tùy vào mục đích cụ thể.

Khác với Count Vector chỉ xét đến tần số xuất hiện của từ trong một document, tf-idf vector quan tâm cả tần số xuất hiện của từ trong toàn bộ tập dữ liệu, chính do đặc điểm này mà tf-idf có tính phân loại cao hơn so với Count Vector. tf-idf (Term Frequency-Inverse Document Frequency) Vector là một vector số thực cũng có độ dài D với D là số văn bản, nó được tính bằng tích của 2 phần bao gồm tf và idf, công thức của mỗi phần tử của vector được tính như sau:

Như đã đề cập ở trên, tf-idf Vector có tính phân loại cao hơn so với Count Vector chính là bởi nó được điều chỉnh bởi trọng số Idf, dựa trên công thức của nó ta có thể hiểu rằng nếu từ xuất hiện ở càng nhiều văn bản (tính phân loại thấp) thì giá trị của nó càng nhỏ, từ đó kết quả cuối cùng sẽ bị nhỏ theo.

Tuy nhiên, nhược điểm của cả hai phương pháp trên chính là việc nó chỉ chú trọng đến tần số xuất hiện của một từ, dẫn tới nó hầu như không mang ý nghĩa gì về mặt ngữ cảnh, Co-occurrence Matrix phần nào giải quyết vấn đề đó. Co-occurrence Matrix có ưu điểm là bảo tồn mối quan hệ ngữ nghĩa giữa các từ, được xây dựng dựa trên số lần xuất hiện của các cặp từ trong Context Window. Một Context Window được xác định bởi kích thước và hướng của nó. Hình dưới đây là một ví dụ của Context Window:

Thông thường, Co-occurrence Matrix là một ma trận vuông đối xứng, mỗi hàng hoặc mỗi cột sẽ chính là vec-tơ biểu thị của từ tương ứng. Tiếp tục ví dụ trên ta sẽ có ma trận Co-occurrence Matrix:

Tuy nhiên, trong thực tế, do số lượng từ vựng nhiều, ta thường chọn cách bỏ đi một số từ không cần thiết (ví dụ như các stopwords) hoặc sử dụng phân tách SVD (Singular Value Decomposition) để giảm kích thước của vec-tơ từ nhằm giúp cho biểu diễn của từ được rõ ràng hơn đồng thời tiết kiệm bộ nhớ dùng để lưu trữ Co-occurrence Matrix (do các Co-occurrence Matrix có kích thước rất lớn).

2.2 Prediction Base Embedding

Prediction-based Embedding xây dựng các vec-tơ từ dựa vào các mô hình dự đoán. Tiêu biểu nhất chính là Word2vec, nó là sự kết hợp của 2 mô hình: CBOW (Continous Bag Of Words) và Skip-gram. Cả hai mô hình này đều được xây dựng dựa trên một mạng neuron gồm 3 lớp:1 Input Layer,1 Hidden Layer và 1 Output Layer. Mục đích chính của các mạng neuron này là học các trọng số biểu diễn vec-tơ từ.

CBOW hoạt động dựa trên cách thức là nó sẽ dự đoán xác suất của một từ được đưa ra theo ngữ cảnh (một ngữ cảnh có thể gồm một hoặc nhiều từ), với input là một hoặc nhiều One-hot vector của các từ ngữ cảnh có chiều dài V(với V là độ lớn của từ điển), output sẽ là một vector xác suất cũng với chiều dài V của từ liên quan hoặc còn thiếu, Hidden Layer có chiều dài N, N cũng chính là độ lớn của vec-tơ từ biểu thị. Dưới đây là mô hình CBOW với ngữ cảnh là 1 từ đơn:

Về bộ dữ liệu dùng để train, Input sẽ bao gồm các bộ One-hot vectors ngữ cảnh và các One-hot vectors của từ mong muốn.

Về cách thức hoạt động, ban đầu hai ma trận trọng số Input-Hidden Weights Matrix và Hidden-Output Weights Matrix được khởi tạo ngẫu nhiên, Input sẽ được nhân với Input-Hidden Weights Matrix ra được một kết quả gọi là Hidden Activation, kết quả này sẽ được nhân tiếp với Hidden-Output Weights Matrix và cuối cùng được đưa vào một hàm softmax để ra được Output là một vector xác suất, Output này sẽ được so sánh với Output mong muốn và tính toán độ lỗi, dựa vào độ lỗi này mà mạng neuron sẽ lan truyền ngược trở lại để cập nhật các giá trị của các ma trận trọng số. Đối với mô hình CBOW nhiều Input, các thức hoạt động là tương tự, chỉ khác ở chỗ các kết quả thu được khi nhân các Input với Input-Hidden Weights Matrix sẽ được lấy trung bình để ra được Hidden Activation cuối cùng. Các trọng số của Hidden-Output Weights Matrix sau khi học xong sẽ được lấy làm biểu diễn của các vec-tơ từ.

Mô hình Skip-gram có cấu trúc tương tự như CBOW, nhưng mục đích của nó là dự đoán ngữ cảnh của một từ đưa vào. Dưới đây là hình ảnh của mô hình Skip-gram:

Về bộ dữ liệu dùng để train cũng như cách thức hoạt động của mô hình Skip-gram hoàn toàn tương tự với mô hình CBOW 1 Input, chỉ khác ở điểm thay vì chỉ có 1 độ lỗi, ta có nhiều độ lỗi do có nhiều vector Output, các độ lỗi này sẽ được tổng hợp lại thành 1 độ lỗi cuối cùng để lan truyền ngược trở lại cập nhật các trọng số. Các trọng số của Input-Hidden Weights Matrix sau khi học xong sẽ được lấy làm biểu diễn của các vec-tơ từ.

Ưu điểm của CBOW là nó không tốn nhiều bộ nhớ để lưu trữ các ma trận lớn, cũng như do nó có bản chất là xác suất cho nên việc hiện thực được cho là vượt trội hơn so với phương pháp khác, tuy nhiên vẫn còn tồn tại khuyết điểm các từ giống nhau nhưng nghĩa khác nhau vẫn chỉ được biểu diễn bằng 1 vec-tơ từ duy nhất.

3. Ứng dụng

Word Embedding tạo ra các vec-tơ từ mà dựa vào đó ta có thể áp dụng chúng để thực hiện các thao tác về ngữ nghĩa như là tìm từ đồng nghĩa, trái nghĩa,… Ngoài ra, chúng cũng là nguồn tài nguyên cho các hệ thống Machine Learning, Deep Learning nhằm thực hiện các mục đích cao hơn như là các hệ thống máy dịch, phân tích cảm xúc dựa trên ngôn từ,vv…

4. Tài liệu tham khảo

https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration