Skip-gram là gì

Tìm hiểu về word2vec là gì, học biểu diễn ngôn ngữ cho máy tính

Mở đầuNhư chúng ta sẽ biết máy tính xách tay được cấu trúc từ bỏ phần đa số lượng, cho nên vì thế nó chỉ rất có thể hiểu được tài liệu số mà lại thôi. Trong natural language processingthì để cách xử lý dữ liệu text bọn họ cũng bắt buộc đưa dữ liệu tự text sang numeric, Tức là chuyển nó vào trong 1 không gian new bạn ta thườnggọi là embbding. Trước phía trên tín đồ ta mã hóa theo kiểu one hot encoding Có nghĩa là chế tác một vocabualary cho dữ liệu cùng mã hóa những word trong documentthành đều vectoc, ví như word đó tất cả vào document thì mã hóa là 1 còn không có vẫn là 0. Kết quả tạo ra một sparse matrix, tức là matrix đa số là 0.Các mã hóa này có tương đối nhiều nhược đặc điểm đó là thứ nhất là số chiều của nó rất cao (NxM, N là số document còn M là số vocabulary), thứ 2 các wordkhông có tình dục với nhau. Điều đó dẫn mang lại tín đồ ta nghĩ về ra một model bắt đầu có tên là Word embbding, nghỉ ngơi kia những word sẽ sở hữu dục tình cùng nhau về semantictức là ví như paris-tokyo,man-women,boy-girl các cặp tự này sẽ có khoảng cách ngay sát nhau rộng vào Word embbding space. Ví dụ nổi bật mà lại ta thâychính là phương thơm trình king - queen = man - women . Cái ưu điểm thứ 2 là số chiều của nó vẫn bớt chỉ còn NxD.Word embbding tất cả 2 model danh tiếng là word2vec với Glove.

Bạn đang xem: Tìm hiểu về word2vec là gì, học biểu diễn ngôn ngữ cho máy tính

Word2vec được tạo ra năm trước đó bởi vì một kỹ sư sinh hoạt google có tên là Tomas Mikolov. Nó là một trong mã sản phẩm unsupervised learning,được training trường đoản cú large corpus . Chiều của Word2vec bé dại hơn những đối với one-hot-encoding, cùng với số chiều là NxD với N là Number of document với D là số chiều word embedding . Word2vec gồm 2 Model là skip-gram với Cbow. Skip-gram Model là mã sản phẩm predict word surrounding Khi cho một từ bỏ cho trước, ví như text = "I love you so much". Khi dùng 1 window search tất cả size 3 ta chiếm được : (i,you),love,(love sầu,so),you,(you,much),so. Nhiệm vụ của chính nó là khi cho một từ center ví dụ là love thì bắt buộc predict các từ xung quang đãng là i, you. Cbow là viết tắt của continous bag of word . Model này ngược với Model skip-gram tức là mang lại đông đảo trường đoản cú surrounding predict word current. Trong thực tế tín đồ ta chỉ chọn một vào 2 model để training, Cbow thì training nhanh hơn mà lại độ đúng chuẩn không đảm bảo bằng skip-gram với ngược chở lại Glove cũng rất được tạo nên năm trước đó vì chưng một đội nhóm phân tích ngơi nghỉ stanford. Nó dựa trên word-count base Model. Nó dùng chuyên môn matrix factorization để mang matrix ban đầu về các matrix nhỏ dại rộng tương tự như mã sản phẩm sinh hoạt recommend system. Mình chưa phân tích Mã Sản Phẩm này còn có gì nó nói giống sau qua những nội dung bài viết khác.

Xem thêm: Suy Thận Là Gì ? Triệu Chứng, Nguyên Nhân Và Các Cấp Độ Suy Thận Là Gì

Cấu trúc bài:

Math of Word2vec Build model from scratch. Buil Model from library

Math of Word2vec

Trong bài này ta chỉ khám phá Model Skip-gram Model. Cbow là Mã Sản Phẩm ngược lại. Skip-gram model có kết cấu nlỗi mẫu vẽ dưới đây.

Input là one-hot-vector từng word sẽ sở hữu dạng $x_1,x_2,..x_v$ trong số ấy V là số vocabulary, là 1 trong những vector trong số ấy từng word sẽ cóquý giá 1 tương tự cùng với index trong vocabulary và sót lại sẽ là 0. Weight matrix thân input đầu vào cùng hidden layer là matrix W(bao gồm dimention VxN) bao gồm active function là linear, weight thân hidden cùng out put là $ W^"$ (gồm dimention là NxV) active sầu function của out put là soft max. Mỗi row của W là vector N chiều đại diện thay mặt cho $ v_w $ là từng word vào input layer.Mỗi row của W là $ v_w^T$ . Lưu ý là đầu vào là 1 trong one hot vector (sẽ sở hữu được dạng 000100) chỉ gồm một trong những phần tử bởi 1 nên. Từ hidden layer mang lại out put là matrix $ W^" = w_i,j^" $ . Ta tính score $u_i $ cho mỗi word trong vocabulary. Trong đó $v_w_j$ là vector colum j trong $ W^" $. Tiếp đó ta thực hiện soft max funtion. Trong số đó $ v_w$ và $ v_w^"$ là 2 vector đại diện thay mặt mang đến word w đên tự matrix W cùng $ W^"$ . Người ta dùng maximum likehood cùng với gradient descent nhằm giải quyết và xử lý bài bác toán này tuy thế bởi vocabulary béo phải tính toán chủng loại số nó tính bên trên tổng thể vocabulary buộc phải chi phí tính tân oán béo phải fan ta sử dụng 2 phương thức xử lý là Hierarchical Softmax hoặc Negative Sampling chi tiết trong paper "word2vec Parameter Learning Explained" của Xin Rong

Build Model from scratch.

Model bởi math kiên cố cụ thể mang lại mấy cũng không bằng một ví dụ thực tế. Nói thật toán bản thân vô cùng kém nhẹm cần bản thân xuất xắc tra cứu đọc những ví dụ trực quan tiền rồi suy ngược chở lại bí quyết toán thù học tập. Chúng ta sẽ xây dựng dựng mã sản phẩm skip-gram đơn giản dễ dàng như sau : Giả sử ta có đoạn text : "He is the king . The king is royal . She is the royal queen" công việc sẽ là : Làm sạch dữ liệu , lower với vứt lốt chnóng Xây dựng vocabulary cùng 2 mẫu dictionary , 1 chiếc để search index theo word mẫu còn sót lại thì ngược chở lại Tiếp theo desgin dữ liệu training, dùng 1 window search nhằm stride trên text, dữ liệu sẽ sở hữu dạng (he,is),(he,the).. Mã hóa dữ liệu về numeric phụ thuộc 2 loại dictionary vừa tạo Traing mã sản phẩm Tìm matrix word embbding vào vẽ vật dụng thị minch họa. trước hết họ có tác dụng sạch dữ liệu và xuất bản vocabulary . "queen", "he", "royal", "is", "king", "the", "she" Tiếp theo là 2 dictionary word theo index là "queen": 0, "he": 1, "royal": 2, "is": 3, "king": 4, "the": 5, "she": 6 Index theo word thì ngược trở lại : 0: "queen", 1: "he", 2: "royal", 3: "is", 4: "king", 5: "the", 6: "she" Tiếp theo tạo ra data training sẽ sở hữu dạng :(he,is),(he,the) trong những số ấy cái đầu sẽ là đầu vào, chiếc sau sẽ là out put mã hóa nó về numeric : sẽ có được dạng sau :input đầu vào : < 0., 0., 0., 1., 0., 0., 0.> , ouput : < 1., 0., 0., 0., 0., 0., 0.>để ý size vocabulary là 7 Ta vẫn training Mã Sản Phẩm : Vì vocabualary này bé dại đề xuất ta cần sử dụng gradient descent training loss softmax minimum luôn luôn.