在文本分類的過程中,特征(也可以簡單的理解為“詞”)從人類能夠理解的形式轉(zhuǎn)換為計(jì)算機(jī)能夠理解的形式時(shí),實(shí)際上經(jīng)過了兩步驟的量化——特征選擇階段的重要程度量化和將具體文本轉(zhuǎn)化為向量時(shí)的特征權(quán)重量化。初次接觸文本分類的人很容易混淆這兩個(gè)步驟使用的方法和各自的目的,因而我經(jīng)常聽到讀者有類似“如何使用TFIDF做特征選擇”或者“卡方檢驗(yàn)量化權(quán)重后每篇文章都一樣”等等困惑。
文本分類本質(zhì)上也是一個(gè)模式識(shí)別的問題,因此我想借用一個(gè)更直觀的例子來說說特征選擇和權(quán)重量化到底各自是什么東西,當(dāng)然,一旦解釋清楚,你馬上就會(huì)覺得文本分類這東西實(shí)在白癡,實(shí)在沒什么技術(shù)含量,你也就不會(huì)再繼續(xù)看我的技術(shù)博客,不過我不擔(dān)心,因?yàn)槟阋呀?jīng)踏上了更光明的道路(笑),我高興還來不及。
想想通過指紋來識(shí)別一個(gè)人的身份,只看一個(gè)人的指紋,當(dāng)然說不出他姓甚名誰,識(shí)別的過程實(shí)際上是比對(duì)的過程,要與已有的指紋庫比較,找出相同的,或者說相似到一定程度的那一個(gè)。
首要的問題是,人的指紋太復(fù)雜,包含太多的位置和幾何形狀,要完全重現(xiàn)一個(gè)人的指紋,存儲(chǔ)和計(jì)算都是大麻煩。因此第一步總是一個(gè)特征選擇的問題,我們把全人類的指紋都統(tǒng)計(jì)一下,看看哪幾個(gè)位置能夠最好的區(qū)分不同的人。顯然不同的位置效果很不一樣,在有的位置上,我的指紋是是什么形狀,其他人也大都是這個(gè)形狀,這個(gè)位置就不具有區(qū)分度,或者說不具有表征性,或者說,對(duì)分類問題來說,它的重要程度低。這樣的位置我們就傾向于在識(shí)別的時(shí)候根本不看它,不考慮它。
那怎么看誰重要誰不重要呢?這就依賴于具體的選擇方法如何來量化重要程度,對(duì)卡方檢驗(yàn)和信息增益這類方法來說,量化以后的得分越大的特征就越重要(也就是說,有可能有些方法,是得分越小的越重要)。
比如說你看10個(gè)位置,他們的重要程度分別是:
1 2 3 4 5 6 7 8 9 10
(20,5,10,20,30,15,4,3,7, 3)
顯然第1,第3,4,5,6個(gè)位置比其他位置更重要,而相對(duì)的,第1個(gè)位置又比第3個(gè)位置更重要。
識(shí)別時(shí),我們只在那些重要的位置上采樣。當(dāng)今的指紋識(shí)別系統(tǒng),大都只用到人指紋的5個(gè)位置(驚訝么?只要5個(gè)位置的信息就可以區(qū)分60億人),這5個(gè)位置就是經(jīng)過特征選擇過程而得以保留的系統(tǒng)特征集合。假設(shè)這個(gè)就是剛才的例子,那么該集合應(yīng)該是:
(第1個(gè)位置,第3個(gè)位置,第4個(gè)位置,第5個(gè)位置,第6個(gè)位置)
當(dāng)然,具體的第3個(gè)位置是指紋中的哪個(gè)位置你自己總得清楚。
確定了這5個(gè)位置之后,就可以把一個(gè)人的指紋映射到這個(gè)只有5個(gè)維度的空間中,我們就把他在5個(gè)位置上的幾何形狀分別轉(zhuǎn)換成一個(gè)具體的值,這就是特征權(quán)重的計(jì)算。依據(jù)什么來轉(zhuǎn)換,就是你選擇的特征權(quán)重量化方法,在文本分類中,最常用的就是TFIDF。
我想一定是“權(quán)重“這個(gè)詞誤導(dǎo)了所有人,讓大家以為TFIDF計(jì)算出的值代表的是特征的重要程度,其實(shí)完全不是。例如我們有一位男同學(xué),他的指紋向量是:
(10,3,4,20,5)
你注意到他第1個(gè)位置的得分(10)比第3個(gè)位置的得分(3)高,那么能說第1個(gè)位置比第3個(gè)位置重要么?如果再有一位女同學(xué),她的指紋向量是:
(10,20,4,20,5)
看看,第1個(gè)位置得分(10)又比第3個(gè)位置(20)低了,那這兩個(gè)位置到底哪個(gè)更重要呢?答案是第1個(gè)位置更重要,但這不是在特征權(quán)重計(jì)算這一步體現(xiàn)出來的,而是在我們特征選擇的時(shí)候就確定了,第1個(gè)位置比第3個(gè)位置更重要。
因此要記住,通過TFIDF計(jì)算一個(gè)特征的權(quán)重時(shí),該權(quán)重體現(xiàn)出的根本不是特征的重要程度!
那它代表什么?再看看兩位同學(xué)的指紋,放到一起:
(10, 3,4,20,5)
(10,20,4,20,5)
在第三個(gè)位置上女同學(xué)的權(quán)重高于男同學(xué),這不代表該女同學(xué)在指紋的這個(gè)位置上更“優(yōu)秀“(畢竟,指紋還有什么優(yōu)秀不優(yōu)秀的分別么,笑),也不代表她的這個(gè)位置比男同學(xué)的這個(gè)位置更重要,3和20這兩個(gè)得分,僅僅代表他們的”不同“。
在文本分類中也是如此,比如我們的系統(tǒng)特征集合只有兩個(gè)詞:
(經(jīng)濟(jì),發(fā)展)
這兩個(gè)詞是使用卡方檢驗(yàn)(特征選擇)選出來的,有一篇文章的向量形式是
(2,5)
另一篇
(3,4)
這兩個(gè)向量形式就是用TFIDF算出來的,很容易看出兩篇文章不是同一篇,為什么?因?yàn)樗麄兊奶卣鳈?quán)重根本不一樣,所以說權(quán)重代表的是差別,而不是優(yōu)劣。想想你說“經(jīng)濟(jì)這個(gè)詞在第二篇文章中得分高,因此它在第二篇文章中比在第一篇文章中更重要“,這句話代表什么意義呢?你自己都不知道吧(笑)。
所以,當(dāng)再說起使用TFIDF來計(jì)算特征權(quán)重時(shí),最好把“權(quán)重“這個(gè)字眼忘掉,我們就把它說成計(jì)算得分好了(甚至”得分“也不太好,因?yàn)槿丝倳?huì)不自覺的認(rèn)為,得分高的就更重要),或者就僅僅說成是量化。
如此,你就再也不會(huì)拿TFIDF去做特征選擇了。
小Tips:為什么有的論文里確實(shí)使用了TFIDF作特征選擇呢?
嚴(yán)格說來并不是不可以,而且嚴(yán)格說來只要有一種方法能夠從一堆特征中挑出少數(shù)的一些,它就可以叫做一種特征選擇方法,就連“隨機(jī)選取一部分“都算是一種,而且效果并沒有差到驚人的地步哦!還是可以分對(duì)一大半的哦!所以有的人就用TFIDF的得分來把特征排排序,取得分最大的幾個(gè)進(jìn)入系統(tǒng)特征集合,效果也還行(畢竟,連隨機(jī)選取效果也都還行),怎么說呢,他們?cè)敢膺@么干就這么干吧。就像咱國家非得實(shí)行戶口制度,這個(gè)制度說不出任何道理,也不見他帶來任何好處,但不也沒影響二十一世紀(jì)成為中國的世紀(jì)么,呵呵。