Tại sao chúng ta cần 2 ma trận cho word2vec hoặc GloVe


10

Word2vec và GloVe là hai phương pháp nhúng từ được biết đến nhiều nhất. Nhiều tác phẩm đã chỉ ra rằng hai mô hình này thực sự rất gần nhau và theo một số giả định, chúng thực hiện một hệ số ma trận của ppmi về sự xuất hiện của các từ trong kho văn bản.

Tuy nhiên, tôi không thể hiểu tại sao chúng ta thực sự cần hai ma trận (chứ không phải một) cho các mô hình này. Chúng ta không thể sử dụng cùng một cho U và V sao? Đây có phải là một vấn đề với độ dốc giảm dần hay có một lý do khác?

Ai đó nói với tôi rằng đó có thể là do các từ nhúng u và v của một từ nên đủ xa để thể hiện thực tế là một từ hiếm khi xuất hiện trong ngữ cảnh của chính nó. Nhưng nó không rõ ràng với tôi.


Kích thước của chúng là khác nhau; Làm thế nào bạn có thể sử dụng cùng một ma trận? Nhưng họ sống trong cùng một không gian tiềm ẩn.
Emre

1
Chúng có cùng kích thước (số lượng từ trong từ vựng x kích thước nhúng)
Robin

Câu trả lời:


6

Có thể không phải là câu trả lời bạn đang tìm kiếm, nhưng tôi vẫn sẽ đi:

Đầu tiên, đánh giá nhanh về word2Vec, giả sử chúng ta đang sử dụng bỏ qua gram.

Một mô hình có thể đào tạo Word2Vec điển hình bao gồm 1 lớp đầu vào (ví dụ: vectơ một nóng dài 10 000), một lớp ẩn (ví dụ 300 nơ ron), một đầu ra (vectơ một nóng dài 10 000)

  • Đầu vào: 10 000
  • Ẩn: 300
  • Đầu ra: 10 000

Có một ma trận E giữa Input-Hidden, mô tả các trọng số để làm cho một điểm nóng của bạn thành một sự nhúng. Ma trận là đặc biệt bởi vì mỗi cột (hoặc hàng, tùy thuộc vào ký hiệu ưa thích của bạn) đại diện cho kích hoạt trước trong 300 nơ-ron đó - phản ứng với một vectơ 1 nóng tương ứng.

Bạn không cần thực hiện bất kỳ kích hoạt nào trên 300 nơ-ron này và có thể sử dụng ngay các giá trị của chúng như một sự nhúng trong bất kỳ nhiệm vụ nào trong tương lai.


Tuy nhiên, chỉ đơn giản là ép một nóng thành một đại diện 300 chiều là không đủ - nó phải có ý nghĩa. Và chúng tôi đảm bảo ý nghĩa này là chính xác khi sử dụng ma trận thứ hai bổ sung - kết nối Ẩn với Đầu ra

Chúng tôi không muốn kích hoạt một lớp ẩn vì chức năng kích hoạt sẽ không cần thiết trong thời gian chạy, tuy nhiên, trong trường hợp đó, chúng tôi sẽ cần một ma trận thứ hai, đi từ Ẩn sang Đầu ra.

Ma trận thứ hai này sẽ làm cho một điểm nóng hoàn toàn khác với việc nhúng của bạn. Một từ nóng như vậy sẽ đại diện cho một từ rất có thể ở gần (theo ngữ cảnh) của một từ nóng ban đầu của bạn. Nói cách khác, sản phẩm này sẽ không phải là sản phẩm gốc của bạn.

Đó là lý do tại sao một ma trận thứ hai là cần thiết. Ở đầu ra, chúng tôi thực hiện một softmax, giống như trong một vấn đề phân loại.

Điều này cho phép chúng tôi thể hiện mối quan hệ "từ" -> nhúng -> "bối cảnh-hàng xóm-từ"

Bây giờ, backpropagation có thể được thực hiện, để điều chỉnh các trọng số ẩn đầu vào (Ma trận đầu tiên của bạn E) - đây là các trọng số chúng tôi thực sự quan tâm. Đó là bởi vì Matrix E có thể được sử dụng trong Thời gian chạy (tôi nghĩ), có lẽ được cắm như một lớp được kết nối đầy đủ đầu tiên vào một số Mạng thần kinh tái phát.

Trong trường hợp đó, bạn sẽ không sử dụng điều này:

Bạn không cần thực hiện bất kỳ kích hoạt nào trên 300 nơ-ron này và có thể sử dụng ngay các giá trị của chúng để nhúng vào bất kỳ nhiệm vụ nào trong tương lai

nhưng thay vào đó, bạn chỉ cần lấy cột thích hợp (hoặc hàng, tùy thuộc vào ký hiệu ưa thích của bạn) từ ma trận đó, trong Thời gian chạy. Lợi ích là theo cách này bạn có được một lớp được kết nối đầy đủ được đào tạo trước rất rẻ, được thiết kế để hoạt động với một điểm nóng. Thông thường, các lớp đầu tiên sẽ dài nhất để đào tạo, do vấn đề biến mất độ dốc.


Tại sao cần có ma trận thứ hai trong quá trình đào tạo:

Một lần nữa, nhớ lại, không có kích hoạt ở lớp ẩn.

Chúng tôi có thể ra lệnh cho mạng những gì "một nóng" phải được tạo ra để đáp ứng với "nóng một đầu vào" ban đầu của bạn và có thể trừng phạt mạng nếu không tạo được câu trả lời đúng.

Chúng ta không thể đặt softmax trực tiếp sau lớp ẩn, bởi vì chúng ta quan tâm đến việc triệu tập một cơ chế để chuyển đổi thành nhúng. Đó là trách nhiệm của một ma trận đầu tiên E. Vì vậy, chúng ta cần thêm một bước (một ma trận phụ) sẽ cho chúng ta đủ chỗ để tạo một kết luận ở lớp đầu ra về một từ hàng xóm khác nhưng tương tự (theo ngữ cảnh)

Trong thời gian chạy bạn vứt bỏ ma trận thứ hai. Nhưng đừng xóa nó vĩnh viễn trong trường hợp nếu bạn cần quay lại và tiếp tục đào tạo mô hình của mình.


Đối với word2vec, trong thực tế, chúng tôi thực hiện giảm độ dốc từ lớp đầu ra ngữ cảnh thông qua các nhúng đến lớp từ đầu vào. Nhưng không có gì ngăn cản bạn có cùng một ma trận cho những gì bạn gọi là ma trận phụ. Hơn nữa, khi tính toán các nhúng, bạn thực sự có thể tính tổng (hoặc concat) hai ma trận này và một số giấy tờ báo cáo bạn nhận được các nhúng tốt hơn. Tôi đồng ý rằng nếu bạn xem xét mô hình thần kinh, tất cả điều này có ý nghĩa, nhưng phải có một lời giải thích tại sao chúng ta cần chúng là hai thực thể khác nhau.
Robin

Nói cách khác, bạn có thể tạo mô hình cho mình như thế này: lớp đầu vào * ma trận nhúng => nhúng / nhúng * chuyển vị của ma trận giường => lớp đầu ra
Robin

Trong trường hợp đó tôi sẽ quan tâm đến thông tin này, nếu điều đó thực sự có thể. Tôi đề nghị gửi email riêng cho tất cả 5 tác giả và giải thích vấn đề này, một trong số họ chắc chắn sẽ trả lời. Các tác giả từ đây Xin cho biết kết quả nếu cách tiếp cận khả thi
Kari

Có lẽ nó liên quan đến chi phí tính toán ma trận nghịch đảo (trên mỗi lần lặp) - tôi cho rằng nó sẽ khá lớn
Kari

1
Transpose không nghịch đảo. Điều duy nhất không chuẩn trong những gì debzsud đề xuất là chia sẻ trọng lượng giữa các lớp, do đó bạn cần tính toán truyền ngược với các trọng số được chia sẻ - điều này có thể thực hiện được. Tôi cho rằng câu hỏi duy nhất nếu tham số ít hơn hai lần là đủ để giải quyết vấn đề tương tự. Không quá khó để thực hiện và so sánh chính bạn.
Valentas

3

tại sao chúng ta thực sự cần hai ma trận (chứ không phải một) cho các mô hình này. Chúng ta không thể sử dụng cùng một cho U và V sao?

Về nguyên tắc, bạn đúng, chúng tôi có thể. Nhưng chúng tôi không muốn, vì việc tăng số lượng tham số có lợi trong thực tế, nhưng ý nghĩa của các vectơ thì sao?

Những giấy tờ nói gì?

Word2vec : chỉ có một đề cập đến các vectơ đầu vào / đầu ra chỉ để giới thiệu các biến.

GloVe : "sự phân biệt giữa một từ và một từ ngữ cảnh là tùy ý và chúng tôi có thể tự do trao đổi hai vai trò".

Biện minh yếu:

Các cặp vectơ (từ, ngữ cảnh), cũng được đặt tên (đích, nguồn) hoặc (đầu ra, đầu vào), được sử dụng để phản ánh hai vai trò khác nhau mà một từ sẽ đóng. Tuy nhiên, vì một từ sẽ đóng cả hai vai trò "mục tiêu" và "bối cảnh" trong cùng một câu nên sự biện minh là yếu. Ví dụ, trong câu "Tôi thích học sâu", khiP(deep|learning), deep là một mục tiêu, nhưng tiếp theo P(learning|deep), đó là một bối cảnh, mặc dù thực tế là deepcó cùng ngữ nghĩa trong toàn bộ câu. Chúng tôi có thể kết luận rằng sự tách biệt này không được hỗ trợ bởi dữ liệu.

Vì vậy, trong trường hợp nhúng từ, sự tách biệt này chỉ là một câu chuyện để tăng hiệu suất mà chúng ta có được bằng cách tăng số lượng tham số, không có gì sâu sắc hơn.

Biện minh vững chắc:

Tuy nhiên, trong một tác vụ như nhúng nút trong các mạng được định hướng, sự biện minh là vững chắc vì các vai trò được phản ánh ở mức dữ liệu . Ví dụ: đối với một liên kết(a,b), a là nguồn khác biệt về mặt ngữ nghĩa so với ở cuối nhận được liên kết b. Một nút nguồn không bao giờ đóng vai trò "đích" trừ khi nó là mục tiêu trong một liên kết khác. Do đó, bạn có thể mong đợi có một sự phân tách ngữ nghĩa có ý nghĩa bằng cách sử dụng các biểu diễn đích (nguồn) cho các nút đích (nguồn). Sự biện minh này không thành công đối với các đồ thị vô hướng giống như nhúng từ.

Trong một số bài báo, các tác giả thậm chí chọn bốn biểu diễn dựa trên các vai trò bổ sung mà một thực thể đóng ở cấp dữ liệu, điều này có thể chứng minh được về mặt ngữ nghĩa và tăng thêm hiệu suất.

Phần kết luận:

Toàn bộ tiền đề là "nếu tăng số lượng tham số trả hết, hãy làm điều đó. Nếu nó hợp lý về mặt ngữ nghĩa, thậm chí tốt hơn."

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.