01 概述機(jī)器學(xué)習(xí)(Machine Learning,ML)就是通過計(jì)算機(jī)程序?qū)π畔⒑蛿?shù)據(jù)進(jìn)行重新組織,,使用算法優(yōu)化自身性能的系統(tǒng),。搜索引擎,、內(nèi)容推薦、信息流,、在線廣告等已經(jīng)是機(jī)器學(xué)習(xí)算法的傳統(tǒng)應(yīng)用領(lǐng)域,,與此同時(shí),機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域還在不斷擴(kuò)展,。 目前,,很多產(chǎn)品、運(yùn)營的工作都需要圍繞機(jī)器學(xué)習(xí)算法系統(tǒng)開展,,算法系統(tǒng)已經(jīng)成為很多產(chǎn)品的核心競爭力,。在這樣的背景下,為了更好地迭代有算法邏輯的產(chǎn)品,,了解機(jī)器學(xué)習(xí)算法的基本邏輯就顯得非常必要,。 機(jī)器學(xué)習(xí)首先是一個(gè)學(xué)習(xí)的過程,目前的機(jī)器學(xué)習(xí)已經(jīng)實(shí)現(xiàn)了學(xué)習(xí)的基本邏輯,,可以從過去的經(jīng)驗(yàn)中抽象出一些規(guī)律,,同時(shí)將這些規(guī)律應(yīng)用在未來的場景下。 湯姆·米切爾(Tom M.Mitchell)在他的《機(jī)器學(xué)習(xí)》一書給了機(jī)器學(xué)習(xí)一個(gè)定義:
在這個(gè)定義中可以看到機(jī)器學(xué)習(xí)的幾個(gè)關(guān)鍵點(diǎn):任務(wù)(任務(wù)T),、性能指標(biāo)(性能度量P)、歷史數(shù)據(jù)(經(jīng)驗(yàn)E),。 對于某類任務(wù),,不斷從數(shù)據(jù)中學(xué)習(xí),從而優(yōu)化這個(gè)任務(wù)的性能指標(biāo),,這是目前機(jī)器學(xué)習(xí)算法的核心邏輯,。 02 構(gòu)成機(jī)器學(xué)習(xí)系統(tǒng)由數(shù)據(jù)、算法模型,、模型評估,、計(jì)算結(jié)果組成。 機(jī)器學(xué)習(xí)系統(tǒng)的出發(fā)點(diǎn)是數(shù)據(jù),,計(jì)算結(jié)果呈現(xiàn)給用戶或系統(tǒng)之后,,用戶的行為數(shù)據(jù)會反饋數(shù)據(jù),這些反饋數(shù)據(jù)又會重新輸入模型中,。這是機(jī)器學(xué)習(xí)的基本流程,,如下圖所示: 數(shù)據(jù)是機(jī)器學(xué)習(xí)系統(tǒng)的出發(fā)點(diǎn)。機(jī)器學(xué)習(xí)系統(tǒng)能夠成立的前提,,是有足夠讓系統(tǒng)做出決策的數(shù)據(jù),。 判斷一個(gè)問題是否能用機(jī)器學(xué)習(xí)解決,,就是看能否收集足量的相關(guān)數(shù)據(jù)。 比如,,所有用戶對內(nèi)容的瀏覽行為數(shù)據(jù),,可以對某一個(gè)特定用戶接下來的閱讀偏好做判斷。用戶的每個(gè)瀏覽和點(diǎn)擊行為數(shù)據(jù),,都意味著個(gè)人偏好的表達(dá),,同時(shí)其他相關(guān)用戶的行為也可以作為這個(gè)用戶行為推測的依據(jù)。構(gòu)造算法系統(tǒng)需要從多個(gè)角度判斷數(shù)據(jù)是否滿足構(gòu)建算法模型的需求,。 在確定了數(shù)據(jù)可以構(gòu)建機(jī)器模型來解決業(yè)務(wù)問題之后,,就到了模型構(gòu)建階段。在算法模型的構(gòu)建中,,最關(guān)鍵步驟就是將問題抽象成機(jī)器學(xué)習(xí)能處理的標(biāo)準(zhǔn)問題,。機(jī)器學(xué)習(xí)算法一般會對實(shí)際情況做一些模型假設(shè),這些假設(shè)包含著一些待確定的參數(shù),,機(jī)器學(xué)習(xí)模型就是要找到符合實(shí)際情況的模型假設(shè),并且通過算法的迭代確定出合理的參數(shù),。 在了解業(yè)務(wù)和算法的基礎(chǔ)上,,模型的構(gòu)建過程會順利很多,但是在缺少評估的情況下,,模型也不可能順利構(gòu)建,。模型評估一方面相當(dāng)于質(zhì)量檢驗(yàn),保證模型輸出結(jié)果的質(zhì)量,,防止上線之后產(chǎn)生明顯的體驗(yàn)問題,。同時(shí)模型評估中發(fā)現(xiàn)的問題,也是模型優(yōu)化的重要依據(jù),。 在模型評估完成之后,,就可以在線上給用戶輸出機(jī)器學(xué)習(xí)模型的計(jì)算結(jié)果。這些計(jì)算結(jié)果最終會在用戶的使用中得到驗(yàn)證,。真實(shí)的線上數(shù)據(jù)會反映模型上線后的效果,,這些線上數(shù)據(jù)也會成為后續(xù)機(jī)器學(xué)習(xí)模型迭代的數(shù)據(jù),從而形成完整的信息閉環(huán),。 雖然不同的算法有著不同的實(shí)現(xiàn)方法,,但是大部分機(jī)器學(xué)習(xí)算法基本都是由這些模塊構(gòu)成的。 03 五大學(xué)派和典型算法佩德羅·多明戈斯(Pedro Domingos)在《終極算法》中將機(jī)器學(xué)習(xí)算法分為了五大學(xué)派,,也基本涵蓋了目前的主流機(jī)器學(xué)習(xí)算法,。接下來會介紹這五個(gè)學(xué)派的典型算法。 1. 聯(lián)結(jié)學(xué)派(The connectionists)聯(lián)結(jié)學(xué)派的主要思想是通過神經(jīng)元之間的連接來推導(dǎo)知識,。聯(lián)結(jié)學(xué)派有點(diǎn)類似于大腦的逆向工程,,希望通過訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)以獲取結(jié)果,。它是目前最炙手可熱的機(jī)器學(xué)習(xí)學(xué)派,神經(jīng)網(wǎng)絡(luò)和基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)都屬于聯(lián)結(jié)學(xué)派,。 人工神經(jīng)網(wǎng)絡(luò)是一種非線性學(xué)習(xí)算法,,和生物學(xué)的神經(jīng)元類似,由多個(gè)節(jié)點(diǎn)組成,。神經(jīng)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的名字也沿用了生物學(xué)中的神經(jīng)網(wǎng)絡(luò)的概念,,同樣叫作神經(jīng)元。生物神經(jīng)元和算法神經(jīng)元的結(jié)構(gòu)如下圖所示,。 在生物的神經(jīng)網(wǎng)絡(luò)中,,多個(gè)樹突的末梢收集神經(jīng)刺激電信號,將這些信號加工成新的電信號,,通過軸突傳遞出去,。 而人工神經(jīng)網(wǎng)絡(luò)也是這樣的結(jié)構(gòu),多個(gè)參數(shù)在神經(jīng)元中加工并輸出到下一個(gè)節(jié)點(diǎn),。各個(gè)節(jié)點(diǎn)使用Sigmoid函數(shù)進(jìn)行參數(shù)處理,,如下所示: 在一個(gè)多層的神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元都通過這樣的模式,,將數(shù)據(jù)不斷傳遞下去,,并最終輸出計(jì)算的結(jié)果。如下圖所示的是一個(gè)典型的人工神經(jīng)網(wǎng)絡(luò),。 具體的優(yōu)化方法在這里不展開描述,,有興趣的讀者可以查看相關(guān)資料。 值得一提的是,,Sigmoid函數(shù)是一個(gè)在算法領(lǐng)域很常見的函數(shù),,可以將無界的變量映射到(0,1)之間,這個(gè)函數(shù)的特性是很多算法策略都會用到——神經(jīng)網(wǎng)絡(luò)中,,正是因?yàn)榻Y(jié)點(diǎn)用了這個(gè)函數(shù),,才保證了可以兼容各種類型的數(shù)據(jù)。Sigmoid函數(shù)曲線如下所示: 基于這樣的方法可以構(gòu)造出不同類型的神經(jīng)網(wǎng)絡(luò)模型,,神經(jīng)網(wǎng)絡(luò)模型因?yàn)榭梢约嫒荻喾N類型的數(shù)據(jù),,在現(xiàn)實(shí)中都有著廣泛的應(yīng)用,包括線上信息分發(fā)系統(tǒng),、圖像識別,、機(jī)器翻譯等。 當(dāng)然,,這樣的算法也有著明顯的問題——模型可解釋性差,,模型對數(shù)據(jù)量的要求比較高。因此,神經(jīng)網(wǎng)絡(luò)算法適用于有著海量數(shù)據(jù)且對算法解釋性要求不高的業(yè)務(wù),。 2. 符號學(xué)派(The symbolists)符號學(xué)派通過訓(xùn)練可解釋的規(guī)則來解決問題,。符號主義者更側(cè)重邏輯推理,用幾個(gè)過去的數(shù)據(jù)訓(xùn)練出一套規(guī)則引擎,,對未來進(jìn)行預(yù)測和判斷,。決策樹和以決策樹為內(nèi)核的很多機(jī)器學(xué)習(xí)算法都屬于符號學(xué)派。 決策樹算法是一種典型的分類方法,,是數(shù)據(jù)挖掘中常用算法之一,。在決策中利用歸納算法可以生成可讀的決策規(guī)則,這個(gè)決策規(guī)則能夠?qū)⒖赡艹霈F(xiàn)的實(shí)例都進(jìn)行分類和預(yù)測,。 決策樹算法非常接近人的決策過程,,人的很多標(biāo)準(zhǔn)化工作,其實(shí)也可以理解為生成了一個(gè)決策樹,。 以產(chǎn)品經(jīng)理面試為例來闡述決策樹的模型框架,,假設(shè)通過對話可以了解候選人的三個(gè)特征:決策能力評分、系統(tǒng)學(xué)習(xí)能力評分,、合作能力評分,,同時(shí)假設(shè)通過這三個(gè)特征即可判斷候選人是否通過。那么這個(gè)決策流程可能如下圖所示: 這是一個(gè)標(biāo)準(zhǔn)化的決策流程,,而決策樹其實(shí)就是通過利用歷史數(shù)據(jù)構(gòu)造對未來實(shí)例進(jìn)行自動化決策的方法,,核心是確定每個(gè)屬性在決策樹中的位置。 在整個(gè)決策樹的生成過程中,,從根部節(jié)點(diǎn)開始生成,每次向下分類都選擇信息增益率最大的節(jié)點(diǎn),,不斷迭代生成決策樹,。為了防止過擬合,也會采用一定的規(guī)則算法對決策樹進(jìn)行減枝,,例如規(guī)定生成子節(jié)點(diǎn)的最小信息增益率,,小于一定值不生成子節(jié)點(diǎn)。 決策樹是多元分類器常用算法之一,,很多機(jī)器學(xué)習(xí)算法都會用決策樹的模型構(gòu)建更高級的模型,。相對其他的算法模型,決策樹的決策流程更貼近決策實(shí)際情況,,決策樹形成的規(guī)則也可以幫助我們更深入地理解業(yè)務(wù),。 3. 進(jìn)化學(xué)派(The evolutionaries)進(jìn)化學(xué)派,是以遺傳學(xué)和進(jìn)化生物學(xué)的理論基礎(chǔ),,進(jìn)行模型構(gòu)建,。核心方法是構(gòu)造算法的評估標(biāo)準(zhǔn)和進(jìn)化方法,在系統(tǒng)中不斷迭代算法獲得最佳解決方案。今年興起的強(qiáng)化學(xué)習(xí)就是進(jìn)化學(xué)派的代表,。 近年來機(jī)器學(xué)習(xí)的浪潮進(jìn)入大眾視野,,和AlphaGo戰(zhàn)勝李世石和柯潔的新聞有很大地關(guān)系。很多人不知道的是——在戰(zhàn)勝了柯潔之后,,Deepmind公司推出了拋開人類經(jīng)驗(yàn)的新版本人工智能AlphaGo Zero,,這就是強(qiáng)化學(xué)習(xí)的典型應(yīng)用。 強(qiáng)化學(xué)習(xí)是系統(tǒng)用試錯(cuò)的方式進(jìn)行學(xué)習(xí),,通過不斷和環(huán)境交互訓(xùn)練策略,。在系統(tǒng)中,需要構(gòu)建出可以和系統(tǒng)不斷交互的環(huán)境,,對系統(tǒng)的每一個(gè)動作進(jìn)行評判,,系統(tǒng)根據(jù)每個(gè)動作的獎懲信號(強(qiáng)化信號),不斷調(diào)整最佳的動作策略,。下面是一個(gè)典型的信息交互圖,。 具體在圍棋場景中,對弈中每一盤棋的勝負(fù)和局勢變化都是系統(tǒng)的獎懲信號,,每一步落子都是動作,,虛擬對局中的圍棋規(guī)則就是系統(tǒng)的環(huán)境。 這種算法目前在工業(yè)界已經(jīng)有了很多應(yīng)用,,比如基于強(qiáng)化學(xué)習(xí)的推薦算法等,。在實(shí)際背景下,算法面臨的環(huán)境往往是不確定的,,不像圍棋中的規(guī)則總是固定的,。為了應(yīng)對這個(gè)問題,算法就需要將現(xiàn)實(shí)問題抽象為穩(wěn)定的虛擬環(huán)境,,也就是構(gòu)成出仿真系統(tǒng),,這也是現(xiàn)實(shí)條件下,強(qiáng)化學(xué)習(xí)算法構(gòu)建過程中最難的一步,。 仿真系統(tǒng)也不是新鮮的概念,,所有的航空航天器要上天都要測試空氣動力學(xué)性能,就會用到風(fēng)洞系統(tǒng),,風(fēng)洞就是對飛行中各種情況的仿真,。而算法系統(tǒng)需要構(gòu)造的就是這樣一個(gè)在線的風(fēng)洞。 強(qiáng)化學(xué)習(xí)目前的缺點(diǎn)也很明顯,,算法高度依賴仿真系統(tǒng)的構(gòu)建,,應(yīng)用場景有限,同時(shí)實(shí)現(xiàn)復(fù)雜且不可解釋,,還需要投入大量的資源,。 但是強(qiáng)化學(xué)習(xí)的學(xué)習(xí)過程,很像生物的進(jìn)化過程,人類本質(zhì)也是在地球這個(gè)環(huán)境中,,以生存和繁衍為目標(biāo)進(jìn)化出的高級智能,。也許強(qiáng)化學(xué)習(xí)進(jìn)一步發(fā)展后,能夠真正推進(jìn)機(jī)器學(xué)習(xí)進(jìn)入更高的層次,。 4. 貝葉斯學(xué)派(The Bayesian school of thought) 貝葉斯學(xué)派專注于研究概率推理和用貝葉斯定理解決問題,。貝葉斯定理的核心是用先驗(yàn)概率來推測后驗(yàn)概率,也就是不斷通過新的數(shù)據(jù)來更新原有的對于概率的估計(jì),。樸素貝葉斯算法就是貝葉斯學(xué)派的典型算法,,典型的應(yīng)用就是垃圾郵件過濾系統(tǒng)。 在介紹樸素貝葉斯算法之前,,先簡單介紹下貝葉斯定理,。貝葉斯定理是計(jì)算兩個(gè)隨機(jī)事件條件概率轉(zhuǎn)化方法的定理。比如對于隨機(jī)事件A和B,,貝葉斯定理的數(shù)學(xué)描述如下: 貝葉斯定理是構(gòu)造樸素貝葉斯算法的基礎(chǔ),。下面就在郵件過濾的背景下介紹這個(gè)算法: 我們?nèi)绻呀?jīng)有一批已知的垃圾郵件,就可以知道垃圾郵件的一些典型特征,。接下來如果我們先驗(yàn)地知道一封郵件包含的特征和垃圾郵件類似,,我們就可以做出推斷,這封郵件有很大概率是垃圾郵件,。 很多算法都會圍繞貝葉斯定理展開,,樸素貝葉斯是其中一個(gè)代表。貝葉斯算法也是少有的對小規(guī)模數(shù)據(jù)也可以應(yīng)用的算法,。掌握好貝葉斯定理這個(gè)工具,,對做好數(shù)據(jù)和策略相關(guān)工作,有著重要的促進(jìn)作用,。 5. 類推學(xué)派(The analogizers)類推學(xué)派的核心是最近鄰的方法,,通過相似性判斷,用近鄰的已知數(shù)據(jù),,預(yù)估未知的數(shù)據(jù)。一些傳統(tǒng)的推薦算法,,就是類推方法的典型應(yīng)用,。類推學(xué)派的一個(gè)典型算法就是隱語義模型(Latent Factor Model,LFM),,這個(gè)算法的最佳實(shí)踐也是在推薦系統(tǒng)中,。 推薦算法的起點(diǎn),就是用戶的行為數(shù)據(jù),,如果用戶和物品發(fā)生了越多的交互,,則行為越強(qiáng)。推薦算法就是基于用戶行為數(shù)據(jù)補(bǔ)全下面表格的空白。這個(gè)表格其實(shí)就是一個(gè)“用戶×物品”矩陣,。 我們在選擇物品或者內(nèi)容的時(shí)候,,是根據(jù)自己的偏好與物品或者內(nèi)容是否匹配來決定的。 就拿服裝而言,,有的人在乎顏色,,有的人在乎款式,有的人在乎調(diào)性,,有的人在乎價(jià)格,。人在選擇的時(shí)候會考慮很多因素,每個(gè)因素都有一個(gè)心理預(yù)期的偏好范圍,。下表所示就是一個(gè)“用戶×偏好”的矩陣,。 不同的物品或者內(nèi)容與這些偏好的符合程度不一樣。物品和這些偏好的符合程度也會形成一個(gè)“物品×偏好”的矩陣,,如下表所示: 總而言之,,我們需要利用“用戶×物品”矩陣,去想辦法構(gòu)建出“用戶×偏好”矩陣和“物品×偏好”矩陣,。在得到這兩個(gè)矩陣之后,,就可以使用線性加權(quán)求和的方法來計(jì)算用戶和物品的推薦分?jǐn)?shù)。 LFM就是這樣一種算法,,通過隨機(jī)梯度下降,,構(gòu)建出兩個(gè)潛在因子矩陣,并用這個(gè)矩陣計(jì)算空缺物品的推薦值,。如下所示,,是上面數(shù)據(jù)形成的推薦結(jié)果。 在原始數(shù)據(jù)中,,用戶7和用戶8比較類似,,如下表所示: 從推薦結(jié)果來看,用戶7和用戶8的推薦結(jié)果分?jǐn)?shù)也比較類似,,結(jié)果如下所示: 04 總結(jié)本文介紹了基礎(chǔ)的機(jī)器學(xué)習(xí)算法思路,,同時(shí)也介紹了幾種基本算法,算法介紹以思路為主,,如果需要進(jìn)一步學(xué)習(xí),,可以查詢公開資料。 這幾種算法比較基礎(chǔ),,在這些算法的基礎(chǔ)上,,衍生出了多種多樣的算法。在實(shí)際應(yīng)用中,,往往會將多種算法進(jìn)行組合使用,,從而發(fā)揮出更大的效果,。 機(jī)器學(xué)習(xí)算法離不開模型假設(shè),這些假設(shè)包含著一些待確定的參數(shù),。每一個(gè)假設(shè)都是對現(xiàn)實(shí)情況的抽象,,每一個(gè)參數(shù)都是對模型的理想化處理,這些假設(shè)和參數(shù)讓模型能夠成立,,也讓模型和現(xiàn)實(shí)存在差異,。 但這些“差異”的存在并不影響實(shí)際問題的解決,就像統(tǒng)計(jì)學(xué)大師喬治·博克斯說的那樣,,“所有的模型都是錯(cuò)誤的,,但是其中有些模型是有用的”。我們需要理解模型和現(xiàn)實(shí)之間差異形成的原因和影響范圍,,并據(jù)此判斷模型的適用范圍,。 作為產(chǎn)品經(jīng)理,理解模型的算法的基本原理非常必要,。只有這樣,,才能將業(yè)務(wù)理解更好地融入到算法系統(tǒng)中,否則就很容易淪為算法的人工標(biāo)注員和case收集者,。 為了能介紹機(jī)器學(xué)習(xí)的知識,,這篇文章不可避免地涉及了一些數(shù)學(xué)邏輯,也可能也會讓很多產(chǎn)品經(jīng)理感覺閱讀困難,,但這只是機(jī)器學(xué)習(xí)的冰山一角,。我們始終要選擇做對的事情,而非簡單的事情,。 產(chǎn)品經(jīng)理需要站在科技和人文的交匯點(diǎn),,那么對最新的技術(shù)有基礎(chǔ)的了解,就是產(chǎn)品經(jīng)理的必由之路,。 |
|