一個詞能指向六張牌,指不到九張
簡而言之
- 在《Codenames》中,能同時指向你全部九張牌的單一提示詞,只存在於 0.286% 的牌面上。你能期待的上限大約是六張。
- 限制來自詞彙量。在 300 維空間裡,總有某個方向能把你的九張牌分離出來;但提示詞清單裡的 7,009 個常用詞,沒有一個指向那個方向。
- 被嵌入解碼器認證為完美的提示詞,對語言模型讀者而言在 44 組中還原了 0 組,而單純的類別提示詞則是 24 組中還原了 23 組。這部分結果仍屬初步。
- 嵌入相似度並不足以代表一個人實際會理解到什麼,而在目標眾多、邊界很薄時最不可靠。
在《Codenames》中,一位玩家看著 25 個詞組成的牌面,暗中知道哪些屬於自己隊伍,並且必須讓隊友只挑出那些詞,手上只有一個提示詞加一個數字。說「ocean 3」,你的隊友就會挑出他們認為你指的那三個詞。
你的隊伍最多可持有牌面上九個詞,因此夢幻的第一手就是用一個提示詞指向全部九張並當場取勝。我想知道這樣的提示詞是否存在。
大多數情況下並不存在,而原因很明確。
在 7,009 個常用英文詞的固定詞彙表與標準嵌入相似度讀者之下,單一合法詞只能在 0.286% 的牌面上鎖定你全部九張牌。以 2.02 億種分配的精確計數來看,不到千分之三。現實中的上限約為六張。而阻擋它的正是詞彙量:幾何允許這種分離,卻沒有常用詞能實現它。
從同一個概念挑四個詞,就會出現真正可用的提示詞;全選九個時它便撞上牆,闖入的那個詞會被標成紅色。
還有一個更奇怪的第二項結果,證據較薄:那些確實滿足讀者條件的提示詞,在真人讀者身上大多失敗。詳見下文。
我怎麼量測的
讀者的做法很直觀。把提示詞與每個牌面詞都嵌入成向量,依與提示詞的餘弦相似度為牌面詞排序,取前 k 個。當前 k 個正好就是那些詞時,該提示詞便「還原」了這組 k 詞目標集。向量採用 300 維 GloVe;合法提示詞清單是 7,009 個高於 Brown 語料頻率門檻的 WordNet 詞元,因此每個提示詞都是有人真的會說出口的詞。
還沒開始量測,九就已經很難。要指名 25 張牌中任意 9 張,需要約 21 位元;而 7,009 個詞中的一個只承載約 12.8 位元。所以沒有任何單一詞能當通用的九張牌提示詞:僅憑計數,一個符號就無法區分兩百萬種目標集。這否定了通用版本,卻對某個特定牌面毫無定論。真正的問題是逐盤來看。對這九張牌,是否存在某個合法提示詞可行?那就得逐一列舉,而我做了。
上限約為六
把每個合法提示詞都送進每個牌面的解碼器,收集它所還原的集合,就能得到精確計數,每個提示詞都被列舉過。在九個目標時,覆蓋率為 0.286%。對隨機的九張牌答案而言,你能精確還原的最大子集分布如下:
| 最佳精確數量 | 牌面占比 |
|---|---|
| ≥ 6 | 64% |
| ≥ 7 | 22% |
| ≥ 8 | 3.8% |
| = 9 | 0.3% |
期望的最佳值是 5.87。五或六很常見,七偶有發生,八很罕見,九幾乎不可能。
看看上面瀏覽器中的牌面,目標為 {barn, builder, call, colonel, educator, pit, product, specialist, wood}。解碼器最好的合法提示詞仍會把一個非目標排在那九個之一的前面。沒有任何合法詞能分離該集合;根本找不到提示詞。
牆在詞彙裡
直覺猜測是 25 個點太擁擠而無法分離。事實恰好相反。在 300 維中,處於一般位置的 25 個向量可以任意切分:對幾乎每一個九張牌的子集,都有某個方向能把那九個排在其餘十六個之前。我在每個詞包的 100 個牌面上檢查了一般位置;每次都成立。
所以分離方向幾乎總是存在。只是合法詞並不指向那裡。「存在可行的方向」與「存在向量能實現它的詞」之間的差距,就是整個結果。把詞彙表收緊到更自然的詞,覆蓋率會單調下降,這正是覆蓋率問題的樣貌。只要提示詞必須是真實的詞,你就無法靠任何變換脫身。
我較沒把握的部分
這裡的證據較薄,所以我會先設好界線。我取出解碼器認證為完美的提示詞,交給充當人類隊友的語言模型讀者,同時附上「animal 3」、「vehicle 4」這類普通對照提示詞。對照組還原了 24 組中的 23 組。解碼器認證的提示詞還原了 44 組中的 0 組。另外二十組位於解碼器負邊界的也同樣為零。更強的讀者模型重現了這些零,而一次盲測的人類測試也逐層重現了同樣的模式。
最大化餘弦邊界的提示詞,是在利用某個排序演算法對詞語的排序方式。靠意義運作的讀者無法還原它。瀏覽器的第二個頁籤重播了這點:一個解碼器認證的提示詞、它「完美」還原的集合,以及真人讀者實際挑了什麼。vain 被認證可還原九個特定詞;讀者一個都沒挑中。
真正有效的是乾淨的分離概念。當九張牌共享一個明確類別,且牌面上沒有同類別的干擾詞時,還原率會從零跳到約三分之一,即使數量很高也如此。加入一個同類別干擾詞,精確還原就會崩潰,而部分辨識則緩慢衰退。決定可讀性的是是否存在乾淨的概念;一旦存在,數量幾乎無關緊要。
該節屬初步結果:稽核規模小,讀者多為語言模型,唯一的人類測試只是一名知曉假設的標註者。它需要而尚未擁有的檢驗,是真正的人類評測小組。我報告的是觀察到的計數;請勿把它們當成整體比率。
為何這超越遊戲本身也重要
嵌入之間的餘弦相似度是「這個詞傳達這個概念」的標準代理指標。這項量測顯示,該代理恰好在最誘人的地方不可靠:目標眾多、邊界很薄。任何靠最大化嵌入分數來挑選提示詞、說明文字或類別標籤的系統,都是在最佳化另一端的人並不共享的目標,而分數看起來最有自信的地方,失敗也最嚴重。
乾淨版本的結論不需要任何附註:來自共享且有限詞彙表的單一詞,無法可靠指出二十五中任意九張的集合;限制在於把理想意義投射到真實的詞上;而數量的重要性,遠不及是否有乾淨概念能命名它們。疊在上面的那個分離現象,是我最希望人類評測小組來確認或推翻的部分。