word2vec: lấy mẫu âm tính (trong thuật ngữ giáo dân)?


Câu trả lời:


164

Ý tưởng word2veclà tối đa hóa sự giống nhau (sản phẩm dấu chấm) giữa các vectơ cho các từ xuất hiện gần nhau (trong ngữ cảnh của nhau) trong văn bản và giảm thiểu sự tương tự của các từ không giống nhau. Trong phương trình (3) của bài báo mà bạn liên kết, hãy bỏ qua lũy thừa trong giây lát. Bạn có

      v_c * v_w
 -------------------
   sum(v_c1 * v_w)

Tử số về cơ bản là sự giống nhau giữa các từ c(ngữ cảnh) và w(mục tiêu) từ. Mẫu số tính mức độ giống nhau của tất cả các ngữ cảnh khác c1và từ đích w. Việc tối đa hóa tỷ lệ này đảm bảo các từ xuất hiện gần nhau hơn trong văn bản có nhiều vectơ tương tự hơn các từ không xuất hiện. Tuy nhiên, việc tính toán điều này có thể rất chậm, vì có nhiều bối cảnh c1. Lấy mẫu phủ định là một trong những cách giải quyết vấn đề này - chỉ cần chọn c1ngẫu nhiên một vài bối cảnh . Kết quả cuối cùng là nếu catxuất hiện trong ngữ cảnh của food, thì vectơ của foodgiống với vectơ của cat(được đo bằng tích dấu chấm của chúng) hơn là vectơ của một số từ được chọn ngẫu nhiên khác(ví dụ democracy, greed, Freddy), thay vì tất cả các từ khác trong ngôn ngữ . Điều này làm cho word2vecviệc đào tạo nhanh hơn nhiều.


15
cảm ơn hoặc lời giải thích tốt đẹp. Tôi nghĩ đó chỉ là lấy mẫu. nhưng bạn có biết tại sao nó được gọi là "tiêu cực"?
HappyCoding

46
Thuật ngữ này được mượn từ phân loại, một ứng dụng phổ biến của mạng nơ-ron. Ở đó bạn có một loạt các ví dụ tích cực và tiêu cực. Với word2vecbất kỳ từ nào đã cho, bạn có một danh sách các từ cần tương tự với nó (lớp dương) nhưng lớp phủ định (các từ không tương tự với từ targer) được biên dịch bằng cách lấy mẫu.
mbatchkarov

38

Tính toán Softmax (Chức năng xác định những từ nào giống với từ đích hiện tại) là tốn kém vì yêu cầu tính tổng tất cả các từ trong V (mẫu số), nói chung là rất lớn.

nhập mô tả hình ảnh ở đây

Những gì có thể được thực hiện?

Các chiến lược khác nhau đã được đề xuất để tính gần đúng softmax. Những cách tiếp cận có thể được chia thành các nhóm softmax dựa trênlấy mẫu dựa trên cách tiếp cận. Các phương pháp tiếp cận dựa trên softmax là các phương pháp giữ nguyên lớp softmax, nhưng sửa đổi kiến ​​trúc của nó để cải thiện hiệu quả của nó (ví dụ: softmax phân cấp). Mặt khác, các phương pháp tiếp cận dựa trên lấy mẫu loại bỏ hoàn toàn lớp softmax và thay vào đó là tối ưu hóa một số hàm suy hao khác gần đúng với softmax (Họ làm điều này bằng cách xấp xỉ mức chuẩn hóa ở mẫu số của softmax với một số suy hao khác rẻ tiền để tính toán như lấy mẫu âm tính).

Hàm mất mát trong Word2vec giống như sau:

nhập mô tả hình ảnh ở đây

Lôgarit nào có thể phân hủy thành:

nhập mô tả hình ảnh ở đây

Với một số công thức toán học và gradient (Xem thêm chi tiết tại 6 ), nó được chuyển đổi thành:

nhập mô tả hình ảnh ở đây

Như bạn thấy, nó được chuyển đổi thành nhiệm vụ phân loại nhị phân (y = 1 lớp dương, y = 0 lớp âm). Khi chúng ta cần nhãn để thực hiện nhiệm vụ phân loại nhị phân của mình, chúng tôi chỉ định tất cả các từ ngữ cảnh c là nhãn đúng (y = 1, mẫu dương) và k được chọn ngẫu nhiên từ kho ngữ cảnh làm nhãn sai (y = 0, mẫu âm).


Nhìn vào đoạn văn sau. Giả sử từ mục tiêu của chúng ta là " Word2vec ". Với cửa sổ của 3, từ bối cảnh của chúng tôi là: The, widely, popular, algorithm, was, developed. Những từ ngữ cảnh này được coi là nhãn tích cực. Chúng tôi cũng cần một số nhãn tiêu cực. Chúng tôi chọn ngẫu nhiên một số từ từ corpus ( produce, software, Collobert, margin-based, probabilistic) và xem xét chúng như mẫu tiêu cực. Kỹ thuật mà chúng tôi chọn một số ví dụ ngẫu nhiên từ kho dữ liệu này được gọi là lấy mẫu âm tính.

nhập mô tả hình ảnh ở đây

Tham khảo :


1
Hi @amir, câu hỏi ban đầu của tôi là tôi có một số rắc rối, hiểu các khái niệm về lấy mẫu tiêu cực ...
Andy K

1
Giải thích rất tốt và kỹ thuật hơn một chút so với câu trả lời được chấp nhận. Vì vậy, một tình huống SO hoàn hảo: hãy đọc câu trả lời được chấp nhận để có ý tưởng và sau đó là câu trả lời này để hiểu nó một cách chi tiết.
Ursin Brunner

21

Tôi đã viết một bài viết hướng dẫn về lấy mẫu âm ở đây .

Tại sao chúng tôi sử dụng lấy mẫu âm tính? -> để giảm chi phí tính toán

Hàm chi phí cho lấy mẫu vani Skip-Gram (SG) và Skip-Gram âm (SGNS) có dạng như sau:

nhập mô tả hình ảnh ở đây

Lưu ý rằng đó Tlà số lượng của tất cả các từ vựng. Nó tương đương với V. Nói cách khác, T= V.

Phân bố xác suất p(w_t+j|w_t)trong SG được tính cho tất cả các từ Vvựng trong kho ngữ liệu với:

nhập mô tả hình ảnh ở đây

Vcó thể dễ dàng vượt quá hàng chục nghìn khi đào tạo mô hình Skip-Gram. Xác suất cần được tính toán Vthời gian, làm cho nó tốn kém về mặt tính toán. Hơn nữa, hệ số chuẩn hóa trong mẫu số yêu cầu Vtính toán thêm .

Mặt khác, phân phối xác suất trong SGNS được tính bằng:

nhập mô tả hình ảnh ở đây

c_poslà một vectơ từ cho từ dương và W_neglà vectơ từ cho tất cả Kcác mẫu âm trong ma trận trọng lượng đầu ra. Với SGNS, xác suất chỉ cần được tính theo K + 1lần, Kthường là từ 5 ~ 20. Hơn nữa, không cần lặp lại thêm để tính hệ số chuẩn hóa trong mẫu số.

Với SGNS, chỉ một phần trọng lượng được cập nhật cho mỗi mẫu huấn luyện, trong khi SG cập nhật tất cả hàng triệu trọng lượng cho mỗi mẫu huấn luyện.

nhập mô tả hình ảnh ở đây

Làm thế nào để SGNS đạt được điều này? -> bằng cách chuyển đổi nhiệm vụ đa phân loại thành nhiệm vụ phân loại nhị phân.

Với SGNS, vectơ từ không còn được học bằng cách dự đoán các từ ngữ cảnh của một từ trung tâm. Nó học cách phân biệt các từ ngữ cảnh thực tế (tích cực) với các từ được rút ra ngẫu nhiên (tiêu cực) từ sự phân bố tiếng ồn.

nhập mô tả hình ảnh ở đây

Trong cuộc sống thực, bạn thường không quan sát regressionbằng những từ ngẫu nhiên như Gangnam-Style, hoặc pimples. Ý tưởng là nếu mô hình có thể phân biệt giữa các cặp có khả năng xảy ra (tích cực) và các cặp không chắc chắn (tiêu cực), các vectơ từ tốt sẽ được học.

nhập mô tả hình ảnh ở đây

Trong hình trên, cặp ngữ cảnh-từ khẳng định hiện tại là ( drilling, engineer). K=5mẫu tiêu cực được rút ra một cách ngẫu nhiên từ phân phối tiếng ồn : minimized, primary, concerns, led, page. Khi mô hình lặp lại qua các mẫu huấn luyện, các trọng số được tối ưu hóa để xác suất cho cặp dương tính sẽ xuất ra p(D=1|w,c_pos)≈1và xác suất cho cặp âm sẽ xuất ra p(D=1|w,c_neg)≈0.


1
T là số lượng mã thông báo (số lần xuất hiện từ trong văn bản). V cho từ vựng (từ duy nhất) tôi sẽ nói.
Adam

Nếu chúng ta đặt KV -1, thì lấy mẫu âm cũng giống như mô hình bỏ qua vani. Tôi hiểu có đúng không?
Shashwat

@Shashwat số lượng vectơ từ được cập nhật cho mỗi mẫu đào tạo là như nhau, nhưng về cơ bản hàm mục tiêu đào tạo vẫn sẽ khác nhau
Eric Kim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.