Word embedding: Máy tính hiểu ngôn ngữ như thế nào?

0
Chúng ta đã nghe nhiều về các ứng dụng của xử lí ngôn ngữ tự nhiên (NLP) hệ thống trả lời câu hỏi, chatbot, phân tích thái độ,… Để thực hiện được những nhiệm vụ đó, máy tính cần phải “hiểu” từ ngữ. Vậy làm thế nào máy tính có thể “hiểu” được từ ngữ trong khi nó vốn rất phức tạp (một đứa trẻ sinh ra cũng mất nhiều thời gian để hiểu và dùng được ngôn ngữ một cách cơ bản). Phương pháp học biểu diễn ngôn ngữ word embedding hiện nay đang chiếm ưu thế và phổ biến hơn cả.

One-hot encoding

Trong xử lí ngôn ngữ tự nhiên truyền thống, từ ngữ được coi là những biểu tượng rời rạc và mỗi từ được biểu diễn bằng một one-hot vector (vector với 1 chiều có giá trị = 1 và các chiều còn lại đều có gía trị 0). Như vậy, số chiều của vector (dimension) bằng số lượng từ trong từ điển chúng ta sử dụng.
Tuy nhiên, việc biểu diễn từ ngữ bằng one-hot vector gặp phải vấn đề lớn là
  • Thứ nhất: Số chiều (dimension) của vector quá lớn (bằng kích thước số từ trong từ điển)
  • Thứ hai: không thể biểu diễn được tính tương đồng giữa 2 từ.

Ví dụ:

2 từ “hotel” và “motel” có nét tương đồng, 2 từ này được biểu diễn one-hot như sau:

    • hotel = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
    • motel = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]

Dễ thấy, 2 vector này trực giao, ta không thể tính toán được tính tương đồng giữa chúng 🙁

Một giải pháp cho vấn đề này là sử dụng WordNet.
WordNet (mạng từ) là một cơ sở dữ liệu từ vựng tiếng Anh. Nó nhóm các từ tiếng Anh thành các tập hợp đồng nghĩa gọi là loạt đồng nghĩa, cung cấp các định nghĩa ngắn gọn và các ví dụ sử dụng, và ghi lại số lượng các quan hệ giữa các loạt đồng nghĩa này hay các thành viên của chúng.
Mạng từ khắc phục điểm yếu về tính tương đồng giữa các từ của one-hot encoding nhưng chưa thực sự triệt để. Nó còn một số vấn đề gặp phải:
  • Không biểu diễn được sắc thái của từ. Ví dụ “proficient” nằm trong nhóm từ đồng nghĩa vời “good” tuy nhiên các từ này có sắc thái khác nhau
  • Không có những ý nghĩa mới của từ khi từ ngữ được cập nhật ý nghĩa theo thời gian
  • Cơ sở dữ liệu này chủ quan theo ý kiến của nhóm người xây dựng ra nó (Cognitive Science Laboratory of Princeton University)
  • Cần đòi hỏi sức lao động để tạo và chỉnh sửa dữ liệu
  • Khó khăn để tính toán độ chính xác sự tương tự giữa các từ
Với những điểm yếu gặp phải, mạng từ không còn là lựa chọn hữu ích. Trên thực tế, chúng ta có thể lấy được nhiều giá trị đại diện cho từ ngữ thông qua các từ xung quanh nó.
Ví dụ :
  • “Rằm tháng 8 là tết thiếu nhi, còn gọi là trung thu. Ở Việt Nam, tết thiếu nhi được tổ chức với nhiều trò chơi cho các em nhỏ”. Từ đó, ta có thể tìm ra ý nghĩa của từ “tết thiếu nhi” qua các từ xung quanh nó và hiểu rằng. “tết thiếu nhi”, “trung thu”, “rằm tháng tám” mang cùng một ý nghĩa.

Ví dụ khác về từ “ăn”:

  • Tôi đang ăn cơm.
  • Tôi đi ăn cưới.
  • Cô ấy rất ăn ảnh.

Vậy ở đây, để hiểu được nghĩa của từ ăn, chúng ta phải học từ các từ xung quanh nó.

Một cách để lấy được lân cận của một từ là dùng ma trận đồng xuất hiện (co-occurrence matrix)

Co-occurrence matrix

Tuy đã có thể biểu diễn được mỗi liên hệ được từ qua các từ lân cận, song ma trận đồng xuất hiện rất lớn, cần không gian lưu trữ lớn và mỗi từ có tính rời rạc.
Vấn đề kích thước lớn có thể được khắc phục bằng việc giảm chiều vector với phương pháp Singular Value Decomposition (SVD) phân tích thành tích các ma trận trong đại số tuyến tính. (Chi khí tính toán khá lớn)
Tuy nhiên, vấn đề tính rời rạc của từ phải được giải quyết bằng phương pháp nhúng từ vựng (word embedding)

Word embedding

Định nghĩa: Word embedding là tập hợp các mô hình ngôn ngữ và kĩ thuật học đặc trưng trong xử lí ngôn ngữ tự nhiên (NLP), cái mà từ hoặc cụm từ được ánh xạ đến một vector số thực.
Năm 2013, Tomas Mikolov et al – nhóm nghiên cứu ở google đưa ra phương án giải quyết vấn đề một cách hoàn toàn mới – mô hình word2vec.

Word2vec

Word2vec là phương pháp có thể tính toán khoảng cách của tất cả các từ. Word2vec học từ đầu vào là các trích lục lớn của văn bản. Tất cả các từ trong từ điển được biểu diễn bởi một vector (hàng trăm chiều). Với mỗi vị trí t, tính toán xác suất các từ xung quanh O (outside) từ trung tâm C (center) hay tính xác suất từ trung tâm C từ các từ xung quanh O. Và nhiệm vụ của mô hình là điều chỉnh các word vector để maximize xác suất này.

Từ từ banking tính xác suất các từ xung quanh

CBOW và Skip-gram

  • Skip-gram: Dự đoán từ xung quanh O dựa vào từ trung tâm C.
  • Continuous Bag of Words (CBOW): Dự đoán từ trung tâm C dựa vào các từ xung quanh O.

Hàm mục tiêu (Objective function)

Window size = m là số lượng các từ trước, sau từ thứ t được coi là lân cận của thừ thứ t.
P là xác suất để từ t + j xảy ra khi có từ thứ t. Duyệt qua các từ ta tính ra Likelihood
Hàm mục tiêu xây dựng bằng cách lấy log hàm Likelihood L()

Kết quả

 

P(o|c) tính bằng softmax function

Kết quả cho thấy phương pháp này hoạt động khá tốt mối liên hệ về ngữ nghĩa giữa các từ. Các từ sau khi từ đã được nhúng vào không gian vector, nếu đem tính toán bằng các phép toán học có thể thấy được mối liên hệ giữa các từ.

Ví dụ
Ta có 4 từ “vua”, “hoàng hậu”, “đàn ông”, “phụ nữ” thứ tự là các vector V, H, Đ, P. Ta có V – H = Đ – P. Khi đó, nếu bài toán là tìm từ có mối liên hệ với từ “phụ nữ” tương tự cách từ “vua” có mối liên hệ với “hoàng hậu”. Ta thực hiện việc tính toán V – H + P = Đ. Bằng việc tính toán qua vector như vậy, ta có thể dự đoán được “đàn ông” chính là từ cần tìm thấy. Trên thực tế, các vector này có số chiều (dimension) lên đến hàng trăm chiều.
Với số lượng hàng trăm chiều, nhiều mối quan hệ giữa các từ được thể hiện dưới các vector của nó.

Leave A Reply

Your email address will not be published.