樸素貝葉斯:幫助AI產(chǎn)品經(jīng)理“小步快跑,快速迭代”

0 評論 4899 瀏覽 22 收藏 18 分鐘

貝葉斯定理相信不少人都接觸過,這個看似只屬于數(shù)學(xué)領(lǐng)域的定理,在AI產(chǎn)品經(jīng)理看來有怎樣的魅力呢?

我們常常遇到這樣的場景。與友人聊天時,一開始可能不知道他要說什么,但是他說了一句話之后,你就能猜到接下來他要講什么內(nèi)容。友人給的信息越多,我們越能夠推斷出他想表達(dá)的含義,這也是貝葉斯定理所闡述的思考方式。

貝葉斯定理得以廣泛應(yīng)用是因為它符合人類認(rèn)知事物的自然規(guī)律。

我們并非生下來就知道一切事情的內(nèi)在的規(guī)律,大多數(shù)時候,我們面對的是信息不充分、不確定的情況。這個時候我們只能在有限資源的情況下,作出決定,再根據(jù)后續(xù)的發(fā)展進(jìn)行修正。

一、樸素貝葉斯登場

貝葉斯分類是一類分類算法的總稱,這類算法均以“貝葉斯定理”為基礎(chǔ),以“特征條件獨(dú)立假設(shè)”為前提。而樸素貝葉斯分類是貝葉斯分類中最常見的一種分類方法,同時它也是最經(jīng)典的機(jī)器學(xué)習(xí)算法之一。

在很多場景下處理問題直接又高效,因此在很多領(lǐng)域有著廣泛的應(yīng)用,如垃圾郵件過濾、文本分類與拼寫糾錯等。同時對于產(chǎn)品經(jīng)理來說,貝葉斯分類法是一個很好的研究自然語言處理問題的切入點(diǎn)。

樸素貝葉斯分類是一種十分簡單的分類算法,說它十分簡單是因為它的解決思路非常簡單。即對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認(rèn)為此待分類項屬于哪個類別。

舉個形象的例子,若我們走在街上看到一個黑皮膚的外國友人,讓你來猜這位外國友人來自哪里。十有八九你會猜是從非洲來的,因為黑皮膚人種中非洲人的占比最多,雖然黑皮膚的外國人也有可能是美洲人或者是亞洲人。但是在沒有其它可用信息幫助我們判斷的情況下,我們會選擇可能出現(xiàn)的概率最高的類別,這就是樸素貝葉斯的基本思想。

值得注意的是,樸素貝葉斯分類并非是瞎猜,也并非沒有任何理論依據(jù)。它是以貝葉斯理論和特征條件獨(dú)立假設(shè)為基礎(chǔ)的分類算法。

想要弄明白算法的原理,首先需要理解什么是“特征條件獨(dú)立假設(shè)”以及“貝葉斯定理”,而貝葉斯定理又牽涉到“先驗概率”、“后驗概率”及“條件概率”的概念。

如下圖所示,雖然概念比較多但是都比較容易理解,下面我們逐個詳細(xì)介紹。

特征條件獨(dú)立假設(shè)是貝葉斯分類的基礎(chǔ),意思是假定該樣本中每個特征與其他特征之間都不相關(guān)。

例如在預(yù)測信用卡客戶逾期的例子中,我們會通過客戶的月收入、信用卡額度、房車情況等不同方面的特征綜合判斷。兩件看似不相關(guān)的事情實(shí)際上可能存在內(nèi)在聯(lián)系,就像蝴蝶效應(yīng)一樣。普遍情況下,銀行批給收入較高的客戶的信用卡額度也比較高。

同時收入高也代表這個客戶更有能力購買房產(chǎn),所以這些特征之間存在一定的依賴關(guān)系,某些特征是由其他特征決定的。

然而在樸素貝葉斯算法中,我們會忽略這種特征之間的內(nèi)在關(guān)系,直接認(rèn)為客戶的月收入、房產(chǎn)與信用卡額度之間沒有任何關(guān)系,三者是各自獨(dú)立的特征。

接下來我們重點(diǎn)講解什么是“理論概率”與“條件概率”,以及“先驗概率”與“后驗概率”之間的區(qū)別。

二、真假概率

首先我們進(jìn)行一個小實(shí)驗。

假設(shè)將一枚質(zhì)地均勻的硬幣拋向空中,理論上,因為硬幣的正反面質(zhì)地均勻,落地時正面朝上或反面朝上的概率都是50%。這個概率不會隨著拋擲次數(shù)的增減而變化,哪怕拋了10次結(jié)果都是正面朝上,下一次是正面朝上的概率仍然是50%。

但在實(shí)際測試中,如果我們拋100次硬幣,正面朝上和反面朝上的次數(shù)通常不會恰好都是50次。有可能出現(xiàn)40次正面朝上和60次反面朝上的情況,也有可能出現(xiàn)35次正面朝上和65次反面朝上的情況。

只有我們一直拋,拋了成千上萬次,硬幣正面朝上與反面朝上的次數(shù)才會逐漸趨向于相等。

因此,我們說“正面朝上和反面朝上各有50%的概率”這句話所指的概率是理論上的客觀概率。只有當(dāng)拋擲次數(shù)接近無數(shù)次時,才會達(dá)到這種理想中的概率。在理論概率下,盡管拋10次硬幣,前面5次都是正面朝上,第6次是反面朝上的概率仍然是50%。

但是在實(shí)際中,拋過硬幣的人都有這樣的感覺——如果出現(xiàn)連續(xù)5次正面朝上的情況,下一次是反面朝上的可能性極大。大到什么程度?有沒有什么方法可以求出實(shí)際的概率呢?

為了解決這個問題,一位名叫托馬斯·貝葉斯(ThomasBayes)的數(shù)學(xué)家發(fā)明了一種方法用于計算“在已知條件下,另外一個事件發(fā)生”的概率。該方法要求我們先預(yù)估一個主觀的先驗概率,再根據(jù)后續(xù)觀察到的結(jié)果進(jìn)行調(diào)整。隨著調(diào)整次數(shù)的增加,真實(shí)的概率會越來越精確。

這句話怎么理解呢?

我們通過一個坐地鐵的例子解釋這句話的含義。深圳地鐵一號線從車公廟出發(fā)至終點(diǎn)站共有18站,每天早上小林要從車公廟出發(fā)經(jīng)過5個站到高新園上班,如下圖所示:

某天早高峰,小林被站立的人群遮擋住視線并且戴著耳機(jī)聽不到報站的內(nèi)容,因此他不知道列車是否到達(dá)高新園站。

如果下一站列車到站時,他直接出站,理論上他正好到高新園站的概率只有1/18,出對站的概率非常小。這時候小林恰巧在人群中看到一個同事,他正走出站臺。

小林心想,盡管不知道這個同事要去哪里,但在早高峰時段,同事去公司的概率顯然更高。因此在獲得這個有效信息后,小林跟隨出站,正好到達(dá)高新園站——這種思考方式就是貝葉斯定理所闡述的思考方式。

三、引入貝葉斯定理

在概率論與統(tǒng)計學(xué)中,貝葉斯定理描述了一個事件發(fā)生的可能性,這個可能性是基于事先掌握了一些與該事件相關(guān)的情況從而推測的。

假設(shè)癌癥是否會發(fā)病與每個人的年齡有關(guān)。如果使用貝葉斯定理,當(dāng)我們知道一個人的年齡,可以用于更準(zhǔn)確地評估他得癌癥是否會發(fā)病的概率。也就是說,貝葉斯理論是指根據(jù)一個已發(fā)生事件的概率,計算另一個事件的發(fā)生概率。

從數(shù)學(xué)上貝葉斯理論可以表示為:

  • P(B)表示發(fā)生B事件的概率,即小林到高新園站的概率;
  • P(A)表示發(fā)生A事件的概率,即小林的同事出站的概率;
  • P(B|A)表示在A事件已經(jīng)發(fā)生的情況下B事件會發(fā)生的概率,即同事出站的時候,小林正好到高新園站的概率;
  • P(A|B)表示在B事件已經(jīng)發(fā)生的情況下A事件會發(fā)生的概率,即小林到達(dá)高新園站,同事出站的概率。

這時候我們再來看貝葉斯定理,這個公式說明了兩個互換的條件概率之間的關(guān)系,它們通過聯(lián)合概率關(guān)聯(lián)起來。在這種情況下,若知道P(A|B) 的值,就能夠計算P(B|A)的值。

因此貝葉斯公式實(shí)際上闡述了這么一個事情,如下圖所示:

我們可以用文氏圖可以加深對貝葉斯定理的理解,如下圖所示:

上述例子中小林剛好在早高峰時段看到同事出站,代表出現(xiàn)了新的信息。就像是上圖中已知黑點(diǎn)已經(jīng)落入A區(qū)域了,由于A區(qū)域大部分區(qū)域與B區(qū)域相交,因此推斷黑點(diǎn)也在B區(qū)域的概率會變大。我們想獲得的結(jié)果其實(shí)是P(B|A),即我們想知道,在考慮了一些現(xiàn)有的因素后,這個隨機(jī)事件會以多大概率出現(xiàn)。

參考這個概率結(jié)果,在很多事情上我們可以有針對性地作出決策。我們需要同時知道P(B)、P(A|B)與P(A)才能算出目標(biāo)值P(B|A),但是P(A)的值似乎比較難求。

仔細(xì)想一想,P(A)與P(B)之間似乎沒有任何關(guān)聯(lián),兩者本身就是獨(dú)立事件,無論P(yáng)(B)的值是大還是小,P(A)都是固定的分母。也就是說我們計算P(A)各種取值的可能性并不會對各結(jié)果的相對大小產(chǎn)生影響,因此可以忽略P(A)的取值。

假設(shè)P(A)的取值為m,P(B)的可能取值為b1、b2或者是b3,已知:

那么計算P(B|A)時,分別會得到結(jié)果:

且由于P(b1|A)、P(b2|A)與P(b3|A)三者之和一定為1,因此可以得出ox+py+qz=m。即使m的值不知道也沒關(guān)系,因為ox,py,qz的值都是可以計算出來的,m自然也就知道了。剩下的工作就是計算P(B)、P(A|B),而這兩個概率必須要通過我們手上有的數(shù)據(jù)集來進(jìn)行估計。

關(guān)于貝葉斯算法有一段小插曲。貝葉斯算法被發(fā)明后,曾有接近200年的時間無人問津。

因為經(jīng)典統(tǒng)計學(xué)在當(dāng)時完全能夠解決客觀上能夠解釋的簡單概率問題;而且相比需要靠主觀判斷的貝葉斯算法,顯然當(dāng)時的人們更愿意接受建立在客觀事實(shí)上的經(jīng)典統(tǒng)計學(xué),他們更愿意接受一個硬幣無論拋多少次后正反面朝上的概率都是50%的事實(shí)。

但我們生活中還存在很多無法預(yù)知概率的復(fù)雜問題,例如臺風(fēng)侵襲、地震規(guī)律等等。經(jīng)典統(tǒng)計學(xué)在面對復(fù)雜問題時,往往無法獲得足夠多的樣本數(shù)據(jù),導(dǎo)致其無法推斷總體規(guī)律??偛荒苷f每天預(yù)測臺風(fēng)來的概率都是50%,只有來或者不來兩種情況。

數(shù)據(jù)的稀疏性令貝葉斯定理頻頻碰壁。隨著近代計算機(jī)技術(shù)的飛速發(fā)展后,數(shù)據(jù)的大量運(yùn)算不再是困難的事情,貝葉斯算法這才被人們重新重視起來。

四、貝葉斯定理有什么用

講到這里部分讀者可能會問,雖然貝葉斯定理模擬了人類思考的過程,但是它又能夠幫助我們解決什么樣的問題呢?我們先來看一個幾乎是講到貝葉斯定理時必定會提到的經(jīng)典案例。

在疾病檢測領(lǐng)域,假設(shè)某種疾病在所有人群中的感染率是0.1%,醫(yī)院現(xiàn)有的技術(shù)對于該疾病檢測準(zhǔn)確率能夠達(dá)到99%。也就是說,在已知某人已經(jīng)患病情況下,有99%的可能性檢查出陽性;而正常人去檢查有99%的可能性是正常的。如果從人群中隨機(jī)抽一個人去檢測,醫(yī)院給出的檢測結(jié)果為陽性,這個人實(shí)際得病的概率是多少?

也許很多讀者都會脫口而出 “99%”。但真實(shí)的得病概率其實(shí)遠(yuǎn)低于此,原因在于很多讀者將先驗概率和后驗概率搞混了。

如果用A表示這個人患有該疾病,用B表示醫(yī)院檢測的結(jié)果是陽性,那么 P(B|A)=99%表示的是“已知一個人已經(jīng)得病的情況下醫(yī)院檢測出陽性的概率”。而我們現(xiàn)在問的是“對于隨機(jī)抽取的這個人,已知檢測結(jié)果為陽性的情況下這個人患病的概率”,即P(A|B),通過計算可得P(A|B)=9%。所以即使被醫(yī)院檢測為陽性,實(shí)際患病的概率其實(shí)還不到10%,有很大可能是假陽性。因此需要通過復(fù)診,引入新的信息,才有更大把握確診。

通過以上例子可以看出,生活中我們經(jīng)常會把先驗概率與后驗概率弄混淆,從而得出錯誤的判斷。貝葉斯定理正是幫我們理清概率的先后條件之間的邏輯關(guān)系,并得到更精確的概率。

實(shí)際上,這個定理所闡述的核心思想對產(chǎn)品經(jīng)理的思考方式也有很大的啟發(fā):

一方面是我們要搞清楚需求場景中的先驗概率是什么?后驗概率是什么?不要被數(shù)據(jù)的表象蒙蔽了雙眼;

另一方面我們可以借助貝葉斯定理搭建一個思考的框架——在這個框架中需要不斷調(diào)整我們對某事物的看法,在經(jīng)過一系列的新的事情被證實(shí)后,才形成比較穩(wěn)定、正確的看法。

當(dāng)我們的腦子里有新想法出現(xiàn)時,大多數(shù)情況下,我們只能根據(jù)經(jīng)驗大概判斷某個產(chǎn)品靠譜不靠譜,投入到市場中反響有多大沒有人能夠說清楚。

因此很多時候我們需要嘗試,需要做一個簡單的版本投入到市場上快速驗證自己的想法;然后不斷想辦法獲得“事件B”,不斷增加新產(chǎn)品的成功率——這樣我們的產(chǎn)品才有可能獲得成功。

因此“小步快跑,快速迭代”才是提升容錯率最好的辦法。

#專欄作家#

阿翹,微信公眾號:阿翹AKIU。平安科技資深產(chǎn)品經(jīng)理,《產(chǎn)品經(jīng)理進(jìn)階:100個案例搞懂人工智能》作者;擅長人工智能技術(shù)在金融領(lǐng)域的商業(yè)化應(yīng)用,實(shí)踐經(jīng)驗豐富,對產(chǎn)品設(shè)計方法論有深入洞察。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。

題圖來自 Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!