Posted in Machine Learning

Doc2Vec hay Paragraph Vectors

Distributed representations of sentences and documents – Le & Mikolov, ICML 2014

Chúng ta trước đây đã thấy sức mạnh kì diệu của word2vec học được cách biểu diễn phân tán (distributed representation) của một từ mà có thể giữ lại ngữ nghĩa của từ đó . Trong bài báo này , Le và Mikolov mở rộng ứng dụng để có thể tính toán biểu diễn phân tán cho sentences, paragraphs, hay kể cả một văn bản .Họ chỉ ra rằng model kết quả của họ thực hiện tốt hơn các state-of-the-art trước đó trong một bài toán phân loại văn bản và phân tích ngữ nghĩa .

Các thuật toán phân loại hay phân cụm thường xuyên đòi hỏi tập văn bản đầu vào biểu diẽn dưới dạng một vector có độ dài cố định (fixed length vector). Các mô hình phổ biến đó là bag-of-words và bag-of-n-grams . Bag-of-words đương nhiên là làm mất đi ngữ nghĩa có thể tới từ thứ tự của các từ . Bag-of-n-grams chỉ xem xét short context và không được tốt lắm nếu bới dữ liệu thưa thớt và  số chiều lớn.

Bag-of-words and bag-of-n-grams have very little sense about the semantics of the words or more formally the distances between the words. This means that words “powerful,” “strong” and “Paris” are equally distance despite the fact tha semantically, “powerful” should be closer to “strong” than “Paris.”

Các nhà nghiên cứu trước đây đã cố gắng kết hợp các distributed  word vectors  – ví dụ bằng cách sử dụng một trọng số trung bình của tất cả các từ trong một tài liệu, hoặc kết hợp các word vectors theo một thứ tự nhất định của cây phân tích cú pháp của một câu. Các phương pháp này cũng chịu việc mất mát thông tin về thứ tự từ , và sau này không dễ dàng để mở rộng câu .

Ghi nhớ rằng mô hình học word vector mà context xung quanh từ được sử dụng để dự đoán từ đó :

Our approach for learning paragraph vectors is inspired by the methods for learning the word vectors. The inspiration is that the word vectors are asked to contribute to a prediction task about the next word in the sentence. So despite the fact that the word vectors are initialized randomly, they can eventually capture semantics as an indirect result of the prediction task. We will use this idea in our paragraph vectors in a similar manner. The paragraph vectors are also asked to contribute to the prediction task of the next word given many contexts sampled from the paragraph.

Các từ vẫn được ánh xạ với các vectors duy nhất như trước . Thêm vào đó mỗi paragraph (hay document, nếu làm việc ở document level) cũng được kết nối tới một vector duy nhất . Word vectors nằm trong cột của matrix W, và paragraph vectors nằm trong cột của matrix D.

Thay đổi duy nhất vs quá trình học word vector là paragraph vector được nối với các word vectos để dự đoán từ kế tiếp trong một ngữ cảnh. Bối cảnh được cố định độ dài và lấy mẫu từ một cửa sổ trượt trên một đoạn. Paragraph vectors được chia sẻ cho tất cả các cửa sổ được tạo ra từ cùng một đoạn, nhưng không toàn bộ paragraphs . Ngược lại, word vector chia sẻ trên tất cả các đoạn văn.

The paragraph token can be thought of as another word. It acts as a memory that remembers what is missing from the current context – or the topic of the paragraph. For this reason, we often call this model the Distributed Memory Model of Paragraph Vectors (PV-DM).

Tại mỗi bước trong việc huấn luyện một context có  chiều dài cố định được lấy mẫu từ một đoạn ngẫu nhiên và được sử dụng để tính toán error gradient để cập nhật các thông số trong mô hình. Với N đoạn mỗi ánh xạ tới p chiều  và M từ  mỗi ánh xạ tới q chiều mô hình này có tổng cộng N x p + M x q tham số  (không bao gồm các tham số softmax).

Một khi họ đã được đào tạo, các paragraph vectors có thể được sử dụng như là các đặc trưng cho các đoạn văn trong bất kỳ công việc học máy . Vào thời gian dự đoán, một bước suy luận được thực hiện để tính toán paragraph  vector cho một paragraph  mới (chưa từng được thấy trước đây) . Trong thời gian này bước các thông số cho phần còn lại của mô hình (word vector W và trọng sốsoftmax U và b) được cố định.

In summary, the algorithm itself has two key stages: 1) training to get word vectors W, softmax weights U, b and paragraph vectors D on already seen paragraphs; and 2) “the inference stage” to get paragraph vectors D for new paragraphs (never seen before) by adding more columns in D and gradient descending on D while holding W, U, b fixed. We use D to make a prediction about some particular labels using a standard classifier, e.g., logistic regression.

Một biến thể của sơ đồ bên trên là bỏ qua context words  trong các đầu vào (tức là, do away with cửa sổ trượt), và thay vào đó buộc các mô hình để dự đoán từ lấy mẫu ngẫu nhiên từ đoạn ở đầu ra.

In reality, what this means is that at each iteration of stochastic gradient descent, we sample a text window, then sample a random word from the text window and form a classification task given the Paragraph Vector… We name this version the Distributed Bag of Words version of Paragraph Vector (PV-DBOW), as opposed to Distributed Memory version of Paragraph Vector (PV-DM) in the previous section.

PV-DM thực hiện tốt hơn so với PV-DBOW, nhưng  kết hợp cả hai PV-DM và PV-DBOW cho chúng ta kết quả tốt nhất :

PV-DM is consistently better than PV-DBOW. PV-DM alone can achieve results close to many results in this paper. For example, in IMDB, PV-DM only achieves 7.63%. The combination of PV-DM and PV-DBOW often work consistently better (7.42% in IMDB) and therefore recommended.

Cùng xem Paragraph Vectors thực hiện tốt như thế nào trong bài toán sentiment analysis và paragraph classification .

Kết quả thực nghiệm

Bộ dữ liệu Stanford Sentiment Treebank bao gồm 11855 câu đã được gán nhãn từ rất tiêu cực cho đến rất tích cực trong scale từ 0.0 cho 1.0. Sử dụng một window size là 8, và một vector mà là ghép nối từ PV-DBOW và một từ PV-DM (cả 2 đều có 400 chiều ), các tác giả đã đạt được các kết quả như sau :

Mặc dù sự thật là it không cần đòi hỏi phân tích cú pháp , paragraph vectors thực thi tốt hơn tất cả các baselines  2.4% (relative improvement 16%) so sánh với kết quả tốt nhất tiếp theo.

Tất  nhiên paragraph vectors không hạn chế ở mức độ câu  , như thế các tác giả có thể áp dụng kĩ thuật này tới bộ dữ liệu 100,000 movie reviews lấy từ IMDB…

We learn the word vectors and paragraph vectors using 75,000 training documents (25,000 labeled and 50,000 unlabeled instances). The paragraph vectors for the 25,000 labeled instances are then fed through a neural network with one hidden layer with 50 units and a logistic classifier to learn to predict the sentiment. At test time, given a test sentence, we again freeze the rest of the network and learn the paragraph vectors for the test reviews by gradient descent. Once the vectors are learned, we feed them through the neural network to predict the sentiment of the reviews.

Một lần nữa , paragraph vectors tốt hơn hẳn các state-of-the-art trước , với  15% cải tiến tương đối (relative improvement):

Lukas Vermeer của trang Booking.com từng nói “Nếu bạn hỏi một nhà khoa học dữ liệu rằng làm sao để xác định khi nào review là tích cực hay tiêu cực , họ sẽ bắt đầu nói về sentiment analysis… nhưng thật là lộn xộn trong thế giới thực . Đây là cách chung tôi giải quyết nó ở trang Booking.com:”

Với thực nghiệm thứ 3 , tác giá nhìn vào top 10 kết quả của mỗi query trong 1 triệu queries phổ biến nhất trong search engine, và rút ra paragraphs từ đó . Họ tạo ra tập 3 paragraphs: hai lấy từ kết quả của cùng truy vấn, và một từ một truy vấn khác

Our goal is to identify which of the three paragraphs are results of the same query. To achieve this, we will use paragraph vectors and compute the distances between the paragraphs. A better representation is one that achieves a small distance for pairs of paragraphs of the same query, and a large distance for pairs of paragraphs of different queries.

Như thế thực nghiệm này là một cách đánh giá liệu paragraph vectors theo cách nào đó có thể giữ lại ý nghĩa của paragraphs như word vectors đã làm được …

The results show that Paragraph Vector works well and gives a 32% relative improvement in terms of error rate. The fact that the paragraph vector method significantly outperforms bag of words and bigrams suggests that our proposed method is useful for capturing the semantics of the input text.

Để sử dụng được Paragraph vector trên java có thể tham khảo : http://deeplearning4j.org/doc2vec.html

Lược dịch từ : https://blog.acolyer.org/2016/06/01/distributed-representations-of-sentences-and-documents/

Advertisements

2 thoughts on “Doc2Vec hay Paragraph Vectors

  1. Cho mình hỏi là ma trận đoạn như bạn nói được xây dựng như thế nào? Hay đơn giản là sử dụng đoạn văn bản để tạo vector. Nếu là sử dụng các từ trong văn bản thì sẻ không khác gì dùng Bag-of-Words để tạo vector cả

    Số lượt thích

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s