bert最後輸出的字表示是使用固定的分類層進行分類的,為什麼能區分一字多義

時間 2021-05-05 19:03:03

1樓:烈焰之炬

題主的思路主要有兩個不對的地方。

首先描述一下題主的問題。對兩個輸入「蘋」果很好吃「蘋」果手機的兩個「蘋」,模型分別給出兩個字向量 和 。在pretrain時, ,對兩個輸入而言,w和b是共有的,Out也都是朝著「蘋」的onehot優化的,那麼和 自然也會非常的接近。

而這樣的結果和語言模型能生成上下文相關的embedding的功能是不符的。

兩個不對的地方在於,

1.即使w和b是共有的,Out也完全擬合了「蘋」的onehot,和 也可以不一樣,例如

顯然 2.在mask language model任務中, 和 的方向不完全相同。在資料中,只要既有「蘋」果很好吃,又有「水」果很好吃甚至還有「蛇」果很好吃這樣的資料,在訓練「mask」果很好吃時,的目標就不會是只向著「蘋」這乙個方向,最終的結果也就會和「蘋」「水」「蛇」這些字都有接近。

而不會朝著「水」「蛇」這些字優化,也就使得和 有不同的值,從而達到一字多embedding。

2樓:雨夜天空

不一樣啊,每個字的表示是由上下文共同決定的,上下文不同,做self attention計算後,同乙個字的輸出向量就不是一樣的啊

3樓:

我覺得這個不僅僅是bert, elmo gpt 這種語言模型訓練出的詞向量都包含了多意,後面在具體任務finetuning時,再確定具體是用那個意思

4樓:李rumor

我是這麼理解的:

以前word2vec是把lookup_table拿出來作為詞向量,乙個詞只對應唯一乙個向量,沒法區分一字多義。ELMo、BERT是把字的上下文編碼,取最後的h(分類層之前)作為字表示,基於分布式語義假設:

One shall know a word by the company it keeps. 我們可以通過乙個詞出現的語境知道這個詞的意思。

所以乙個字根據上下文不同會有不同的h,可以表示一字多義的情況要知道embedding有很多個維度,不同維度包含不同的資訊,剛才說詞的emb對應唯一的向量(編碼),可沒說是對應富士蘋果還是手機蘋果,很可能這兩種資訊都包含在編碼裡

黃 字表示顏色的意思是怎麼來的?

林彬懋 這裡的幾個問題很有意思,而眾家所論則避重就輕,如下 是否可以說,黃字,表示火的光,以此表意為黃色呢?在 說文 上載,黃即為大地之色。如果1.成立,那麼在黃字創立之初,是否沒有表示顏色的意思呢?黃的表示顏色的意思,是什麼時候出現的呢?一言以蔽之,這樣的論述邏輯稱之為 過文字 但卻不能 化文字 ...

雜湊函式的輸出結果為什麼長度是固定的?

玄星 僅拋磚引玉。其實很多cryptographer更希望要乙個只要改變配置就能把任意物件對映到想要的 有限大小的集合裡的元素的hash。長度固定只是乙個表象,重點在於對映到乙個有限集合裡,方便做下一步操作。比如ECDSA和Schnorr簽名要求先把待簽名訊息對映到和群階數相關的整數群裡,而BLS要...

使用C 呼叫C 的dll,這個dll輸出的是個二維陣列,我C 這邊怎麼接收呢?

西井丶 你的方法要out出第一維度多長,第二維度多長,猜測你的方法會返回乙個double DllImport abc.dll private static extern double GetDoubles blahblahblah out intfirst out intsecond 然後你需要 d...