Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
ERT 是當前最佳的自然語言處理模型之一,也因此極其復雜。Google AI 的 People + AI Research(PAIR)團隊近日發布的論文《Visualizing and Measuring the Geometry of BERT》提出了一種可視化和度量 BERT 的幾何性質的方法,可幫助我們理解 BERT 等神經網絡語言模型表征信息的方式。該團隊在發布論文后還會發布一系列解釋說明文章,目前公布的第一篇介紹了神經網絡中的語言、樹和幾何性質。機器之心對該文章進行了編譯介紹,更多詳情請參閱原論文。
語言的結構是離散的,而神經網絡則基于連續數據運作:高維空間中的向量。成功的語言處理網絡必須要能將語言的符號信息轉譯為某種幾何表征——但是這種表征該是怎樣的形式呢?詞嵌入提供了兩種著名的示例:用距離編碼語義相似度,特定的方向則對應于極性(比如男性與女性)。
近段時間,一個激動人心的發現帶來了一種全新類型的表征方式。關于一個句子的語言信息中,一大關鍵部分是其句法結構。這種結構可以表示成樹,其節點對應于句子的詞。Hewitt 和 Manning 在論文《A Structural Probe for Finding Syntax in Word Representations》中表明某些語言處理網絡能夠構建這種句法樹的幾何副本。詞是通過在一個高維空間的位置給定的,而(遵照一定的變換)這些位置之間的歐幾里德距離映射了樹距離。
但這一發現還伴隨著一個很有趣的謎題。樹距離與歐幾里德距離之間的映射不是線性的。相反,Hewitt 和 Manning 發現樹距離對應于歐幾里德距離的平方。他們提出了疑問:為什么必需平方距離,是否存在其它可能的映射。
這篇文章將為這個謎題提供一些潛在的解答。我們將從數學角度表明:樹的平方距離映射是尤其自然的。甚至某些隨機化的樹嵌入也將服從近似的平方距離定律。此外,只是知道平方距離關系,就能讓我們簡單明確地描述樹嵌入的整體形狀。
我們會在一個網絡(BERT)中分析和可視化真實世界的嵌入以及它們與其數學理想形式(mathematical idealizations)的系統性差異,以對這些幾何論點進行補充說明。這些實證研究將提供用于思考神經網絡中句法表征的新的定量方法。
從理論上解讀樹嵌入
如果你要將一個樹(tree)嵌入到歐幾里德空間中,為什么不直接將樹距離對應于歐幾里德距離呢?一個原因是:如果這個樹有分支,則無法實現等距離擴展。
圖 1:你無法在保證距離不變的同時將這個樹嵌入到歐幾里德空間中
事實上,圖 1 中的樹就是一個標準示例,表明并非所有度量空間都可以等距離地嵌入到 R^n 中。因為 d(A,B)=d(A,X)+d(X,B),所以在任意嵌入中 A、X 和 B 都是共線的?;谕贿壿?,A、X 和 C 也是共線的。但這就意味著 B=C,這是矛盾的。
如果一個樹包含分支,則其將包含該配置的一個副本,也無法以等距離的方式嵌入。
畢達哥拉斯嵌入(Pythagorean embeddings)
相反,平方距離嵌入實際上要好得多——它是如此好用以至于有專屬名稱。這個名字的來由將在后面介紹。
定義:畢達哥拉斯嵌入
令 M 為一個度量空間,其度量為 d。如果對于所有 x,y∈M,我們有
,就說 f:M→R^n 為一個畢達哥拉斯嵌入。
圖 1 中的樹有畢達哥拉斯嵌入嗎?有的:如圖 2 所示,我們可以將各個點分配到一個單位正方體的鄰近頂點,畢達哥拉斯定理(即勾股定理)就能提供我們想要的結果。
圖 2:在單位正方體的頂點上的一個簡單畢達哥拉斯嵌入
其它小型的樹又如何呢,比如四個頂點構成的鏈?這也能在正方體的頂點中有很好的畢達哥拉斯嵌入。
圖 3:四個頂點構成的鏈也有在單位正方體的頂點上的畢達哥拉斯嵌入
這兩個示例都不是偶然例外。實際上我們能明確地直接寫出任何樹在單位超立方體的頂點上的畢達哥拉斯嵌入。
定理 1.1
任何有 n 個節點的樹都有在 R^(n-1) 中的畢達哥拉斯嵌入。
證明。
注:我們注意到與定理 1.1 的證明相似的論據也出現在 Hiroshi Maehara 的「有限度量空間的歐幾里德嵌入」中:https://doi.org/10.1016/j.disc.2013.08.029
令樹 T 的節點為 t_0,...,t_(n?1),其中 t_0 為根節點。令 {e_1,...,e_(n?1)} 為 R^(n-1) 的正交單位基向量。經過歸納,定義一個嵌入 f:T→R^(n?1):
給定兩個不同的樹節點 x 和 y,m 是它們的樹距離 d(x,y),則我們可使用 m 個互相垂直的單位步從 f(x) 移動到 f(y),因此:
看待這種構建方式的一個角度是:我們為每條邊分配了一個基向量。為了得到節點的嵌入,我們走回到根并將我們經過的邊的所有向量加起來。見下圖。
圖 4:左:將基向量分配給邊。中:兩個示例嵌入。右:平方的距離等于樹距離。
備注
這個證明的價值不只是證明存在這個結果,而且是在明確的幾何構建中存在這個結果。同一個樹的任何兩個畢達哥拉斯嵌入都是等距離的——而且通過旋轉或反射而存在關聯,因為兩者之中所有點對之間的距離都一樣。所以我們說對于樹的畢達哥拉斯嵌入,該定理向我們說明了其確切模樣。
此外,定理 1.1 中的嵌入也有一個清晰的非形式化的描述:在圖的每個嵌入頂點,所有連接鄰近頂點的線段都是單位長度的線段,且與彼此和其它每條邊線段正交??匆幌聢D 1 和圖 2 就能發現它們滿足這種描述。
也可以輕松地看到,證明中構建的特定嵌入是一個 ?1 度量的樹等距映射(tree isometry),盡管這非常依賴于軸對齊。
我們也可以對定理 1.1 進行略微的泛化??紤]邊有權重的樹,兩個節點之間的距離是它們之間的最短路徑上邊的權重的和。在這種情況下,我們也總是可以創建畢達哥拉斯嵌入。
定理 1.2
任何有 n 個節點的加權的樹都有在 R^(n-1) 中的畢達哥拉斯嵌入。
證明。
和前面一樣,令樹 T 的節點為 t_0,...,t_(n?1),其中 t_0 為根節點。令 {e_1,...,e_(n?1)} 為 R^(n-1) 的正交單位基向量?,F在令 w_i=d(t_i,parent(t_i))。經過歸納,定義嵌入 f 為:
注:定理 1.2 的嵌入不再位于單位超立方體上,而是在其一個壓扁的版本中:邊長為
的實體,這些邊的長度有長有短。
我們可以索引這個樹的邊,其中每條邊的索引都與在該邊上的子節點一樣。令 P 為 x 與 y 之間的最短路徑上邊的索引的集合,則
定理 1.2 中嵌入雖然是軸對齊的,但在 ?1 度量方面不再是等距離映射。但是,如果我們使用向量 w_ie_i 而不是
,那么我們就可以恢復 ?1 等距離映射。
其它嵌入和缺乏嵌入的情況
Hewitt 和 Manning 問是否還有其它有效的樹嵌入類型,也許是基于歐幾里德度量的其它冪。我們可以提供一些有關這些嵌入的部分結論。
定義
令 M 為一個度量空間,其度量為 d。設如果對于所有的 x,y∈M,都有
,則我們說 f:M→R^n 是冪為 p 的嵌入。
注:對于歐幾里德空間中的嵌入的一般性問題的更多解釋,請參閱這篇漂亮的概述:https://arxiv.org/pdf/1502.02816.pdf 和這個有用的書籍章節:http://www.csun.edu/~ctoth/Handbook/chap8.pdf
雖然使用的名字各不相同,但一般度量空間的冪為 p 的嵌入已被研究了數十年。這方面的奠基工作是 Schoenberg 1937 年的論文:https://www.jstor.org/stable/1968835。該論文的一個關鍵結果用我們的術語說來就是:如果一個度量空間 X 有在 R^n 中的冪為 p 的嵌入,那么對于任意 q>p,它也有冪為 q 的嵌入。因此當 p>2 時,任意樹都總是有冪為 p 的嵌入。而 p=2 的情況則很不一樣,我們還沒有一種用于描述這種嵌入的幾何性質的簡單方法。
另一方面,當 p<2 時,事實證明冪為 p 的樹嵌入甚至不一定存在。
定理 2
對于任意 p<2,存在「沒有冪為 p 的嵌入」的樹。
證明過程請參閱我們的論文(這里也有另一個證明:https://www.sciencedirect.com/science/article/pii/S0012365X13003841)??偨Y來說,對于任意給定的 p<2,沒有足夠的「空間」來嵌入帶有足夠多子節點的節點。
隨機分支的嵌入近似為畢達哥拉斯嵌入
畢達哥拉斯嵌入的性質非常穩健,至少在維度遠大于樹規模的空間中是這樣。(舉個例子,這就是我們的語言處理神經網絡的激勵示例的情況。)在上面的證明中,除了使用基向量 e_1,...,e_(n?1) ∈R^(n?1),我們本可以從 R^m 的單元高斯分布中完全隨機地選出 n 個向量。如果 m?n,那么結果有很高的可能性會是近似的畢達哥拉斯嵌入。
原因是在高維空間中,(1)來自單位高斯分布的向量的長度有很高的可能性非常接近于 1;(2)當 m?n 時,一組 n 個單位高斯向量將很有可能接近于彼此正交。
換句話說,在足夠高維度的空間中,樹的隨機分支的嵌入(其中每個子節點都與其父節點偏移一個隨機的單位高斯向量)將接近于畢達哥拉斯嵌入。
這種構建甚至可以通過一個迭代過程完成,僅需「局部」信息。使用完全隨機的樹嵌入進行初始化,再為每個頂點選取一個特殊的隨機向量;然后在每個步驟移動每個子節點,使其更靠近其父節點加該子節點的特殊向量。其結果會是近似的畢達哥拉斯嵌入。
畢達哥拉斯嵌入很簡潔,而且它們源自局部隨機模型,這說明它們在表征樹方面可能是普遍有效的。要注意,樹的大小受場景的維度所控制,它們也許是基于雙曲幾何的方法的低技術替代方法。
注:更多有關雙曲樹表征的知識請參閱《Hyperbolic Embeddings with a Hopefully Right Amount of Hyperbole》:https://dawn.cs.stanford.edu/2018/03/19/hyperbolics/ 或 Nickel & Kiela 的《Poincaré Embeddings for Learning Hierarchical Representations》:https://arxiv.org/abs/1705.08039
實踐中的樹嵌入
我們已描述了樹嵌入的數學理想形式,現在回到神經網絡世界。
我們研究的對象是 BERT 模型,這是近期一種針對自然語言處理的成功模型。我們對這一模型感興趣的一大原因是其在很多不同任務上都表現優良,這說明其能夠提取出普遍有用的語言特征。BERT 基于 Transformer 架構。
注:BERT 背景:這是谷歌博客的介紹:https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html ;這里還有一篇很棒的總結:https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270。還有很多論文分析了這些網絡,比如《BERT Rediscovers the Classical NLP Pipeline》:https://arxiv.org/abs/1905.05950。
我們這里不會詳細描述 BERT 架構,只是簡單說一下該網絡的輸入是詞序列,經過一系列層之后能為其中每個詞得到一系列嵌入。因為這些嵌入考慮了上下文,所以它們常被稱為上下文嵌入(context embedding)。
人們已經提出了很多描述句法結構的方法。在依存語法中,每個詞都是樹的一個節點,如下圖所示。
很多人都研究過這些嵌入,以了解它們可能包含什么信息。概括來說,我們研究樹嵌入的動機是 Hewitt 和 Manning 的近期成果。他們的論文《A Structural Probe for Finding Syntax in Word Representations》表明上下文嵌入似乎以幾何方式編碼了依存解析樹。
但有一點要注意:首先你需要通過一個特定的矩陣 B(即所謂的結構探針(structural probe))對這個上下文嵌入進行變換。但在此之后,兩個詞的上下文嵌入之間的歐幾里德距離的平方接近兩個詞之間的解析樹距離。這就是前一節的數學計算發揮功效的地方。用我們的術語說,這個上下文嵌入接近一個句子的依存解析樹的畢達哥拉斯嵌入。這意味我們對樹嵌入整體形狀有很好的認知——就是簡單地源自平方距離性質和定理 1.1。
可視化和測量解析樹表征
當然,我們并不確切知曉其形狀,因為該嵌入只是近似的畢達哥拉斯嵌入。但理想形狀和實際形狀之間的差異可能非常有趣。實驗中的嵌入和它們的數學理想形式之間的系統性差異可能能為 BERT 處理語言的方式提供進一步的線索。
注:PCA 能得到比 t-SNE 或 UMAP 更可讀的可視化。當點在一個低維流形上聚類或分散時,非線性方法的效果可能最好——基本上與 n-立方體的頂點相反。
為了研究這些差異,我們創造了一種可視化工具。我們的論文給出了詳細情況,這里只提供些概述。該工具的輸入是帶有相關的依存解析樹的句子。該軟件會從 BERT 提取出該句子的上下文嵌入,經過 Hewitt 和 Manning 的「結構探針」矩陣的變換,得到一個在 1024 維空間中的點集。
然后,我們通過 PCA 將這些點映射到二維。為了展現其底層的樹結構,我們連接了表示有依存關系的詞的點對。下圖 5 展示了一個樣本句子的結果。為了比較,還給出了一個精確畢達哥拉斯嵌入、隨機分支的嵌入、節點坐標完全隨機的嵌入的相同數據的 PCA 投影。
圖 5:PCA 視圖。a)BERT 解析樹嵌入。b)精確畢達哥拉斯嵌入。c)不同的隨機分支嵌入。d)節點位置是隨機地獨立選擇的不同嵌入。該圖的交互式版本請訪問原文。
PCA 投影已經很有趣了——BERT 嵌入和理想形式之間有明顯的相似性。圖 5c 展示了一系列隨機分支的嵌入,也類似于 BERT 嵌入。圖 5d 是基線,展示了一系列詞是隨機地獨立放置的嵌入。
但我們還可以更進一步,展示嵌入不同于理想模型的方式。在下面的圖 6 中,每條邊的顏色表示歐幾里德距離與樹距離之間的差。我們也用虛線連接了沒有依存關系但位置(在 PCA 之前)比預期的近得多的詞對。
圖 6:在應用了 Hewitt-Manning 探針后兩個句子的嵌入的可視化。在每一對圖像中,左圖是傳統的解析樹試圖,但每個分支的豎直長度表示嵌入距離。右圖是上下文嵌入的 PCA 投影,其中的顏色表示偏離預期距離的程度。該圖的交互式版本請訪問原文。
所得到的圖像既能讓我們看到樹嵌入的整體形狀,也能讓我們看到離真實畢達哥拉斯嵌入的偏離程度的細粒度信息。圖 6 給出了兩個示例。它們都是典型的情況,展示了一些常見的主題。圖中,橙色虛線連接了 part/of、same/as、sale/of。這個效果很有特點,可以看到介詞嵌入的位置與它們所相關的詞出乎意料地近。我們還可以看到藍色標示的兩個名詞之間的連接,這說明它們比預期的更遠——另一個常見模式。
文末的圖 8 展示了這些可視化的更多示例,你可以進一步查看這些模式。
基于這些觀察,我們決定更系統地研究不同的依存關系將可能如何影響嵌入距離?;卮疬@一問題的一種方式是考慮一個大型句子集并測試詞對之間的平均距離是否與它們的句法關系存在任何關聯。我們使用一個 Penn Treebank 句子集以及派生的解析樹執行了這個實驗。
圖 7:給定的依存關系下,兩個詞之間的平方邊長的平均
圖 7 展示了這一實驗的結果。結果表明每個依存關系的平均嵌入距離的變化范圍很大:從大約 1.2(compound : prt, advcl)到 2.5(mwe, parataxis, auxpass)。研究這些系統性差異的含義是很有趣的?;蛟S也許使用加權的樹,BERT 的句法表征有優于普通依存語法的其它定量方面。
總結
神經網絡表征語言信息的確切方式依然還是一個謎。但我們已經開始看到了有吸引力的線索。Hewitt 和 Manning 的近期研究為解析樹的直接的幾何表征提供了證據。他們發現了一種有趣的平方距離效應,我們認為這反映了一種數學上自然的嵌入類型——這能為我們提供一種驚人完整的嵌入幾何思想。與此同時,對 BERT 中解析樹嵌入的實驗研究表明可能還有更多知識有待發掘,還有在解析樹表征的更多定量方面有待探索。
圖 8:其它解析樹示例;說明見圖 6。該圖的交互式版本請訪問原文。
原文鏈接:https://pair-code.github.io/interpretability/bert-tree/
者:前端下午茶 公號 / SHERlocked93
在下開發中經常碰到 offset、scroll、client 這幾個關鍵字,比如 offsetLeft、offsetHeight、scrollHeight、clientTop 什么的,每次都要各種實驗,這里總結一下,一勞永逸。
首先兩張圖鎮樓,方便隨時翻閱
1. offset
offset 指偏移,包括這個元素在文檔中占用的所有顯示寬度,包括滾動條、 padding、 border,不包括 overflow隱藏的部分
2. scroll
scroll指滾動,包括這個元素沒顯示出來的實際寬度,包括 padding,不包括滾動條、 border
3. client
client指元素本身的可視內容,不包括 overflow被折疊起來的部分,不包括滾動條、 border,包括 padding
書的筆畫由基本筆畫和復合筆畫組成。基本筆畫有橫、豎、撇、捺、折、鉤、點、提八種,每種又能分成若干種復合筆畫。每種筆國分別用在字的不同部位起著不同的作用,我們許多人寫字不是不認真,不用勁,而是對筆畫的長短、曲直以及它們在字中的具體用法認識不清,所以不僅要求熟練書寫筆畫,并且要牢記其在字中的具體用法。
一、橫的分類及寫法
字形如人,橫是胳膊,豎是身,“橫平豎直"是寫字的基本要求。橫畫,尤其是長橫,在字中起著控制和調節平衡的作用,往往是字的主筆。但它并不是絕對的水平,一般向右上有一定的傾斜度。橫一般分短橫和長橫兩種:短橫直短而收斂,長橫曲長而放縱。
短橫寫法:下筆稍頓,向右上行筆,行筆用力要充實,不要輕飄,筆送到末端回鋒收筆。多用在字的上部或框內。例如“三”的第一橫畫、“且”的中間兩橫。
短橫如果寫在字的左邊常寫做右尖橫,寫在右邊常寫做左尖橫,例如“非”字。
長橫寫法:輕頓向右上傾斜寫出(角度約7"?。?,中部略輕,速度稍快,到末端稍頓回收。長橫是字
的橫梁,在字中起平衡作用,多做主筆。如“三”的第三橫畫。
例:三且非主五五里生
二、豎的分類及寫法
豎畫是支撐整個字的支柱,是脊梁,決定著字的平穩,因此一定要寫的垂直挺拔。一般分為懸針豎
和垂露豎兩種。
1.懸針豎寫法:
稍頓筆即向下均勻運筆,速度由慢到快,最后迅速出鋒空收,呈針尖狀。其要領是:豎要垂直,粗細過渡要自然,鋒尖要正,力到鋒端。它一般多用在字的中部和右部,很少用在字的左邊。例如“什”的最后一豎。
2.垂露豎寫法:上半部分同懸針豎,收筆處向右下方頓筆回收,成滴露狀。整個筆畫,上下兩頭略粗,中間略細,如立地鐵錐,給人以挺拔踏實、含蓄沉穩之感。例如“作”的兩個豎畫。
例:什川豐州作仆用開
三、橫豎組合:
橫和豎是構成方塊字的鋼筋骨架,它倆在字中常在一起搭配使用,在字中的位置不同,交接點也不相同。主要分為以下三種情況:
1、“十字組合”:豎在橫中間穿過,兩邊橫左右對稱,一般用在字的上邊或下半部分中間。
例:土桌支圣木米
2.“豎在橫右邊穿過組合”:豎畫在橫的右三分之二穿過,這種組合常用在字的左偏旁,目的是給右邊的偏旁讓位。
例:提理和物材料輕
3.“橫畫在豎畫的右下方結尾式組合”:這種組合常表現為左豎寫到底,右下端是以橫畫結尾,一般右下端的橫畫應該寫的比豎畫收筆略高一點,不要平齊。
例:
準在把牡怪性格勝肥
撇捺筆畫的書寫練習
撇畫捺畫左右傾斜,具有動感,象字的翅膀,又象翩翩起舞舞動的裙子,是字中最具有美感的筆畫,所以要寫得舒展、飄逸一些,寫好撇畫和捺畫會能使整個字充滿生動活潑之趣。下邊分別介紹撇畫和捺畫。
一、撇畫的分類及寫法
1.平撇:起筆向右下方頓筆后向左下方運筆,筆勢較平,接近橫畫,宜短而平,多用在字的頂端第一筆。
例:斤后未采愛
2.斜撇:起筆向右下方向頓筆,而后向左下方運筆,筆力由重到輕,速度由慢而快,提筆出鋒,力送筆端,與水平面約呈45度角,路有弧度。
例:個未今金食
3、豎撇:起筆同豎, 行筆過了一半后,再緩緩向左下方轉彎提筆撇出。運筆上慢下快,外形上直下斜。例如“月”字第一筆。
豎撇一般用在字的兩個部位,一是用在字的左側,例如“斤”字二是用在與橫畫搭配時,即撇垂
直穿過橫畫后再向左下方提筆撇出。例如“大”字。
例:斤大夫夾月
二、捺的分類及寫法
1.斜撩:落筆較輕,服勢向右下方約45度角方向行筆,邊行邊按,由輕到重至底端稍用力頓筆,后再由重到輕向右水平方向提筆出鋒。要求寫的解展流暢, 體現一被三折. 例如“人“第二筆。
例:人支全令金會合
2.反捺:類似長點,由輕到重向右下方頓下回鋒收筆。一個字中如果出現兩個捺時,把次要的捺寫成反捺。例如“食”字的最后一筆、‘炎” 字的第四筆。
例:炎食從以泰秦送
3.平撩:起筆先逆入筆寫小短橫再向右下方約20*角曲運筆,由輕到重,至底部時頓筆,而后由重漸輕,向右前方提筆出鋒。一筆之內要體現一波三折。例如“之”字。
例:之芝這達途運迷
三、撇捺組合:
撇、捺畫和橫豎組合一樣, 在書寫當中經常搭配使用,我們也把它們組合起來,形成固定搭配,找出它們的組合規律,一般有以下三種組合形式:
(一)連接:這種組合夾角約為90度。如果組合放在上下結構中,撇捺左右伸展,決定字的寬度,是主筆,則其他筆畫縮短。例如“木"字;如果放在左右結構中,在左邊撒長捺短,以讓右,例如“舒”字:在右邊撇短撩長,以讓左,例如“檢”字。
例:人全舍靈舒斜檢驗拾
(二)分離:這種組合用在“八”,“分”等字內,撇捺伸展為主筆。
例:八分盆貧芬
(三)交叉:撇捺伸展在字中做主筆,交叉點一般都處在字的重心線上,而且交點寧靠上不靠下,即所圍成的空白寧小勿大。
例:又義文交冬條各爺爸
(四)撇捺組合與其他筆畫的搭配關系:
1.與橫的搭配:當撒捺組合與橫畫搭配使用時,撇用豎撒,橫畫縮短,撇捺伸展。(特別強調:春字頭三橫要短,撇捺的交點在第二個橫上,為下面的部分留出書寫空間。)
例:大夫夾春秦
2、與豎的搭配:撒捺收筆處一般比豎畫略高。好比腿和裙子的關系,一般情況下,裙底邊線應比腳高一些:撇捺在豎畫的左右兩側呈對稱狀。
例:禾未米衣表
轉自:新翰丹 https://www.xinhandan.net/cms/show-4896.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。