思考的三種樂趣,你享受過哪種?

我所說的一切都可能是錯的!
即使你贊同我的觀點,
你的生活也不會因此有任何改變!
除非——你採取了相應的行動。

(這是書先生的第228篇原創分享。文:書先生,2021年4月17日,新加坡)

引子

前幾天約了一位教授喝咖啡聊天。

這位教授和我一樣,也喜歡做語言量化分析。除此之外,我們還有一個共同的愛好,就是做語言學科普。有共同愛好,聊起來就很愉快,不知不覺一兩個小時就過去了。

聊天中,這位教授問我哪種計算文本距離的方法更好,因爲他最近正在分析一些學生寫作的文本特徵。計算文本距離(也叫文本相似度)的方法有很多種,Scipy庫的pdist函數就包含了22種方法。不過,文本分析中最常用的還是曼哈頓距離、歐幾里得距離和餘弦距離三種。

不要給這些名字給嚇到了,其實都是些很簡單的方法。我用得最多的是餘弦距離,一方面是這種方法不受文本長度影響,另一方面是很多常用的python自然語言處理庫默認採用這種方法,比如現在很流行的spaCy,裏面的similarity函數就默認使用餘弦距離。

這些方法是如何計算距離的、什麼情況下用,這篇文章就不展開來說了,因爲不是今天我想要分享的主題。不過我很享受把這些東西講清楚的樂趣,所以以後我肯定會專門寫篇文章來介紹各種計算文本相似度的方法。

回到本文的主題。主題是思考的樂趣,但似乎現在還看不到它的影子。別急,馬上來了。這個主題是隨後的討論引發的。

我問這位教授準備用哪些feature來計算相似度,他告訴我其中一個是詞彙密度(lexical density)。今天的分享就是這個概念引發的。

第一種樂趣:What if ...或Is it possible that ...

所謂詞彙密度,就是一個文本里實詞的比例。語言裏的詞彙可以分爲兩類。一類是實詞(content words),也叫詞彙詞(lexical words),包含名詞、動詞、形容詞和副詞。另一類是虛詞(function words),也叫語法詞(grammatical words)。除了實詞,其它都是虛詞。另外,英文裏助動詞也都統統歸爲虛詞。

顯然,一個文本的信息其實都在實詞裏面,所以詞彙密度實際上反映的是一個文本的信息密度。

聊天后,回寢室的路上,我突然想到一個有意思的問題:當我們在比較兩組(A組和B組)數量相同的文本時,有沒有可能一對一比較時,A組每一篇詞彙密度都比B組對應的一篇高,但是A組合起來詞彙密度卻比B組合起來低?

咋一聽,這問題有點荒謬。怎麼可能我每篇詞彙密度都比你高,合起來還比你低呢?但仔細一想,這種可能性是存在的。我們來看一個例子。

假設我們讓甲乙兩位同學分別就三個題目寫了三篇作文,現在我們來比較這兩位同學的詞彙密度。顯然,我們有兩種比較方法。第一種,就是甲乙兩位同學的同題作文一一比較。另一種方法就是甲的三篇合起來和乙的三篇合起來整體比較。

下面我們來看一組我虛構的數據。請注意,數據內部的關係是準確的。


從上面兩個表格中,我們可以看出,甲同學每一篇命題作文的詞彙密度都高於乙同學。但是奇怪的事情發生了,甲同學三篇文章合起來的詞彙密度卻低於乙同學。

細心的朋友肯定已經發現了,乙同學有一篇文章特別長,就是這篇長文,導致了兩種方法計算結果相反。有一些統計學基礎的朋友可能會說,這是個異常值(outlier),應該排除掉。這個說法不對。

異常值是針對實際參與統計那個變量來說的。這裏參與統計的變量是詞彙 密度,不是文本長度。就詞彙密度這個變量而言,0.4998這個值肯定不是異常值,因爲至少還有兩個比它更大的值。可見,問題不是出在這裏。

那問題出在哪裏呢?你是不是也想知道原因呢?如果你的答案是肯定的,那麼恭喜你,你已經在享受思考的第一種樂趣——對現象產生疑問,並想知道答案。

這種疑問常見的三種出現方式是:

爲什麼會是這樣呢?(why)
如果這樣,會怎麼樣呢?(what if ...)
有沒有可能……(Is it possible ...)

如果一個人腦子裏經常有這樣的疑問,那麼他有更大的概率做出成績或者成爲對社會有用的人。哪怕沒做出大的成績,也至少能少上很多當。

第二種樂趣:聯繫

我猜有讀者已經在思考上面那個現象的原因了,或許已經有人已經有了結論,並已開始不屑——多簡單的問題啊,值得這樣小題大做。

有後面這種想法的人,我不得不遺憾的告訴你,可能事情不像你想象的那麼簡單。更重要的是,如果您匆忙地下決定,很可能會錯過思考的第三種樂趣,也是人類能夠享受的最高的愉悅。

不過,在揭曉什麼是思考的第三種樂趣之前,我們先來看一個統計案例。

美國一所高校有兩個學院,分別是法學院和商學院。一年,有557人報考了這所高校,其中男生304人,女生253人。報考的男生中,有209人被錄取,錄取率68.8%。報考的女生中,有143人被錄取,錄取率56.6%。

下面的表格表示了兩種性別的錄取率。


(來源:MBA智庫)

從上面的數據,我想您可能會覺得這所高校在招生上偏向男生,有性別歧視的嫌疑。現在你看到的結果,就好比第一種樂趣裏甲作文的詞彙密度低於乙作文的情況。從上面詞彙密度的例子,我們可以推測,完全有可能女生在兩個學院的錄取率都比男生高,但合起來就比男生低了。

比如,如果兩個學院的報名人數和錄取人數按照下面兩個表格分配。

看,還是這麼多人,整體錄取人數沒有變,但分別考察兩個學院的錄取率時,卻是女生高於男生。

這就好玩兒了。如果整體來看,人們就會說這個高校歧視女生。但如果分學院來看,人們就會說這個高校歧視男生。這個例子也告訴我們,不要輕易相信媒體裏的統計數據。統計數據從不撒謊,但人們喜歡利用統計數據撒謊

這個高校例子背後就是著名的辛普森悖論(Simpson's Paradox)。因爲是英國統計學家E.H.辛普森1951年提出來的,所以用他的名字命名。

這和思考的第二種樂趣有什麼關係呢?

答案是,這個案例本身和第二種樂趣沒有關係,有關係的是從詞彙密度想到這個例子。我之所以想到這個例子,是因爲我以前讀到過這個案例。現在細節當然記不清楚了,上面的內容也是我google之後再寫的。但是,能夠想起一個和正在思考的問題有聯繫的例子,這就是樂趣。

有一些記憶力很好的人,不但能想起相關的案例,而且記得細節。在其他人眼中,這樣的人就會顯得知識非常豐富,講東西旁徵博引,各種案例信手拈來。很遺憾,我的記憶力很一般,很多東西只記得看過,具體細節還是要現查。不過,即使這樣,這種聯繫也能給人莫大的愉悅。

當然,享受這種愉悅需要一些前提,那就是平時得多看書,多積累。哪怕記不得細節,至少知道去查什麼。

最高樂趣

能夠對具體的問題提出假設,是一種樂趣。能夠從一個具體問題聯想到另一個具體問題,也是一種樂趣。但這兩種樂趣,比起第三種來,都不算什麼。在我看來,這第三種樂趣,是人能夠追求的最大的愉悅。

這種樂趣就是通過思考,找出現象的本質,把它抽象化、一般化,從而能夠解釋一類現象。很多人認爲這是科學家的事兒,但我認爲這是每個人都應該主動積極去追求的事情。

當然,很多問題,前人早已思考過。現在獲取信息很方便,我們只需把前人的研究讀一讀,就能獲得更抽象、更一般化的認識。這樣,我們的認知水平就上升了。

我個人的經驗是,當你有意願並且有能力去享受這第三種樂趣時,你的人生會變得超脫。讓很多人煩惱的事情,在你看來,將會不值一提。更重要的是,如果你是有這種意願和能力的人,產生那些煩惱的根源自然會遠離你。

上面兩個例子的本質是什麼呢?

上面兩個例子都有一個共同的特點,那就是用比例代替了原始的數據。無論是詞彙密度,還是錄取率,都是比例,而原來的數據分別是(實詞數,總詞數),(錄取人數,報考人數)。

還記得中學解析幾何或者線性代數內容的朋友,看到我用括號把兩組數據括起來,想必已經有點眉目了。沒錯,如果我們把上面兩個例子用數學模型來抽象,原始數據就是笛卡爾座標系上的點,而無論是詞彙密度還是錄取率,都只反映那個點所代表的向量的方向。

換句話說,當我們只考慮比例時,其實是隻考慮了向量的方向,而忽略了向量的模,也就是它的長度。向量(5, 2)和向量(10, 4)的方向一樣,但前者的模是29的平方根,而後者是116的平方根。用圖來直觀表示,就是下圖裏b點到原點的距離大於a點到原點的距離。

生成上圖的R代碼如下:

plot(NA, xlim=c(0,12), ylim=c(0,12), xlab="X", ylab="Y", lwd=3)
vecs <- data.frame(vname=c("a","b"), 
                   x0=c(0,0),y0=c(0,0), x1=c(5, 10) ,y1=c(2, 4), 
                   col=1:2)
vecs[1:6]
with(vecs, mapply("arrows", x0, y0, x1, y1,col=col,lwd=3) )
with(vecs, mapply('text', x=x1[1:3]-.1, y=y1[1:3]+.5, 
                  labels=c(paste("a(", x1[1], ", ", y1[1], ")"), paste("b(", x1[2], ", ", y1[2], ")"))
))

因此,無論是我舉的“詞彙密度悖論”,還是著名的辛普森悖論,其本質都是這樣的:

笛卡爾座標系裏,兩組數量相同的向量[V1, V2, ... Vn]和[W1, W2, ..., Wn],它們滿足這樣的條件,Vx(x <= n)與橫座標的夾角總是大於Wx與橫座標的夾角,但V1+V2+...+Vn之和與橫座標的夾角卻小於W1+W2+...+Wn之和與橫座標的夾角。

(注意,因爲實際問題中的比例總是小於或者等於1的,比如詞彙密度和錄取率都不可能大於1,所以我們只考慮夾角小於或等於直角的情況。)

如果上面的表述還是有點抽象,那我們來看一幅圖,畢竟一圖勝萬言。

生成上圖的R代碼如下:

plot(NA, xlim=c(0,18), ylim=c(0,18), xlab="X", ylab="Y", lwd=3)
a <- c(2, 5)
b <- c(9, 4)
c <- c(10, 15)
d <- c(4, 1)
vecs <- data.frame(vname=c("a","b", "c", "d", "a+b", "c+d"), 
                   x0=c(0,0,0,0,0,0),y0=c(0,0,0,0,0,0), x1=c(a[1],b[1],c[1],d[1],a[1]+b[1],c[1]+d[1]),y1=c(a[2],b[2],c[2],d[2],a[2]+b[2],c[2]+d[2]), 
                   col=c(1,1,2,2,3,4))
vecs[1:6]
with(vecs, mapply("arrows", x0, y0, x1, y1,col=col,lwd=3) )
with(vecs, mapply('text', x=x1[1:7]-.1, y=y1[1:7]+1, 
                  labels=vname
))

上圖表示了兩組向量{a, b}(兩條黑色箭頭)和{c, d}(兩條紅色箭頭)以及它們的和a+b(綠色箭頭)和c+d(藍色箭頭)。從圖中可以看出,a比c陡峭(這種表示不嚴謹,但能說明問題),b比d陡峭,但是a+b就不如c+d陡峭。

這就是辛普森悖論的向量表示。

從這幅圖出發,我們也可以總結出現辛普森悖論的條件,那就是平均角度更小的那組向量中角度較大的向量至少有一個向量模特別大,或者反過來,平均角度更大的那組向量中角度較小的向量中至少有一個向量模特別大。這句話可能有點繞,但多讀幾次,你一定能夠明白。

在詞彙密度的例子裏,就是平均詞彙密度更小的作文裏,有一篇特別長。在錄取率的例子裏,就是男生報考商學院的人數特別多,而女生報考法學院的特別多。

順便說一下,寫這篇推文時,我百度了一下辛普森悖論,發現百度百科對辛普森悖論條件的解釋是不對的。這個詞條,百度百科和MBA智庫內容一模一樣,不知道誰抄誰,因爲它們都不註明出處。不過無所謂了,反正都是錯的。

經過一番查詢和思考,我明白了辛普森悖論背後的抽象模型,從此以後我能解決這一類問題了。這就是思考的第三種樂趣:抽象化、一般化從而能夠解決一類問題。

結語

很高興和您分享我在一杯咖啡後享受到的三種思考的樂趣。

我們再回顧一下是哪三種樂趣:

第一種:就現象提出問題。享受這種樂趣的前提是培養問“爲什麼?”,“如果這樣,會怎樣?”和“有沒有可能……?”的習慣。

第二種:從一個案例想到類似的案例。享受這種樂趣的前提是養成閱讀的習慣。

第三種:探究現象的本質,將認知抽象化、一般化,從而能夠解決一類問題。享受這種樂趣的前提是培養自己的信息檢索和邏輯思維能力。

衷心希望大家在工作、學習和生活中都能享受這三種思考的樂趣。

最後,我想問家長朋友們一個問題:如果一個數學老師教您的孩子雞兔同籠問題時,告訴孩子一個技巧,這個技巧涉及到假設兔子把其中兩隻腳收起來。(網上有人這麼教的!)請問,您覺得應該讓孩子跟着這樣的數學老師學習嗎?爲什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章