2015-04-01 16 views
7

Tôi đang cố gắng hiểu tại sao mô hình skipgram của word2vec có 2 biểu diễn cho mỗi từ (biểu diễn ẩn là từ nhúng) và biểu diễn đầu ra (còn được gọi là nhúng từ ngữ cảnh). Đây có phải chỉ là sự tổng quát, nơi mà bối cảnh có thể là bất cứ điều gì (không chỉ từ) hoặc có lý do cơ bản hơn làTại sao word2vec sử dụng 2 biểu diễn cho mỗi từ?

Trả lời

0

Mô hình word2vec có thể được coi là mô hình mạng nơron đơn giản với một lớp ẩn và không kích hoạt phi tuyến tính . Mô hình đưa ra một từ cố gắng dự đoán các từ ngữ cảnh mà nó xuất hiện.

Vì đó là mạng nơron cần đầu vào, đầu ra và chức năng khách quan. Đầu vào và đầu ra chỉ là một mã hóa nóng của các từ và hàm mục tiêu là mất entropy chéo với kích hoạt softmax ở đầu ra.

Nội dung nhập vào ma trận trọng số ẩn nhân với đầu vào mã hóa một lần nóng, chọn cột duy nhất cho mỗi từ. Tương tự như vậy, ma trận đầu ra được ẩn ra chỉ ra rằng nó có thể được hiểu là các hàng tương ứng với mỗi từ ngữ cảnh (cùng một đầu ra mã hóa một nóng đóng một phần ở đây).

7

tôi khuyên bạn nên đọc bài viết này về Word2Vec: http://arxiv.org/pdf/1402.3722v1.pdf

Họ đưa ra một trực giác về việc tại sao hai đại diện trong một chú thích: đó là không có khả năng rằng một từ xuất hiện trong bối cảnh riêng của mình, vì vậy bạn sẽ muốn giảm thiểu xác suất p (w | w). Nhưng nếu bạn sử dụng cùng vectơ cho w dưới dạng ngữ cảnh cho w là từ trung tâm, bạn không thể thu nhỏ p (w | w) (được tính qua sản phẩm dấu chấm) nếu bạn muốn giữ các từ nhúng trong vòng tròn đơn vị.

Nhưng nó chỉ là một trực giác, tôi không biết nếu có bất kỳ biện minh rõ ràng cho điều này ...

IMHO, lý do thực sự tại sao bạn sử dụng cơ quan đại diện khác nhau là bởi vì bạn thao tác các đối tượng của thiên nhiên khác nhau. "con chó" như một bối cảnh không được coi là giống như "con chó" như một từ trung tâm bởi vì chúng không. Bạn xử lý cơ bản các ma trận lớn của các lần xuất hiện (từ ngữ, ngữ cảnh), cố gắng tối đa hóa xác suất của các cặp thực sự xảy ra. Theoreticaly bạn có thể sử dụng như bối cảnh bigrams, cố gắng để tối đa hóa ví dụ xác suất của (word = "for", context = "để tối đa hóa"), và bạn sẽ chỉ định một vector đại diện để "để tối đa hóa". Chúng tôi không làm điều này bởi vì sẽ có quá nhiều biểu diễn để tính toán, và chúng tôi sẽ có ma trận thưa thớt reeeeeally, nhưng tôi nghĩ ý tưởng là ở đây: thực tế là chúng tôi sử dụng "1 gram" như ngữ cảnh chỉ là một trường hợp cụ thể của tất cả các loại ngữ cảnh chúng ta có thể sử dụng.

Đó là cách tôi xem và nếu sai, vui lòng sửa!

0

Kiểm tra các chú thích trên trang 2 của điều này: http://arxiv.org/pdf/1402.3722v1.pdf

này cho một trực giác khá rõ ràng cho vấn đề này.

Nhưng bạn cũng có thể chỉ sử dụng một vectơ để đại diện cho một từ. Kiểm tra điều này (Stanford CS 224n) https://youtu.be/ERibwqs9p38?t=2064

Tôi không chắc chắn cách thực hiện (video cũng không giải thích được).

Các vấn đề liên quan