算法知識(shí)匯總:構(gòu)成/學(xué)派/算法

2 評(píng)論 6408 瀏覽 84 收藏 22 分鐘

如果你是產(chǎn)品經(jīng)理,希望了解算法的基本知識(shí),可以考慮閱讀本文。

01 概述

機(jī)器學(xué)習(xí)(Machine Learning,ML)就是通過(guò)計(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)營(yíng)的工作都需要圍繞機(jī)器學(xué)習(xí)算法系統(tǒng)開(kāi)展,算法系統(tǒng)已經(jīng)成為很多產(chǎn)品的核心競(jìng)爭(zhēng)力。在這樣的背景下,為了更好地迭代有算法邏輯的產(chǎn)品,了解機(jī)器學(xué)習(xí)算法的基本邏輯就顯得非常必要。

機(jī)器學(xué)習(xí)首先是一個(gè)學(xué)習(xí)的過(guò)程,目前的機(jī)器學(xué)習(xí)已經(jīng)實(shí)現(xiàn)了學(xué)習(xí)的基本邏輯,可以從過(guò)去的經(jīng)驗(yàn)中抽象出一些規(guī)律,同時(shí)將這些規(guī)律應(yīng)用在未來(lái)的場(chǎng)景下。

湯姆·米切爾(Tom M.Mitchell)在他的《機(jī)器學(xué)習(xí)》一書(shū)給了機(jī)器學(xué)習(xí)一個(gè)定義:

“對(duì)于某類任務(wù)T和性能度量P,如果一個(gè)計(jì)算機(jī)程序在T上以P衡量的性能隨著經(jīng)驗(yàn)E而自我完善,那么我們稱這個(gè)計(jì)算機(jī)程序在從經(jīng)驗(yàn)E學(xué)習(xí)。”

在這個(gè)定義中可以看到機(jī)器學(xué)習(xí)的幾個(gè)關(guān)鍵點(diǎn):任務(wù)(任務(wù)T)、性能指標(biāo)(性能度量P)、歷史數(shù)據(jù)(經(jīng)驗(yàn)E)。

對(duì)于某類任務(wù),不斷從數(shù)據(jù)中學(xué)習(xí),從而優(yōu)化這個(gè)任務(wù)的性能指標(biāo),這是目前機(jī)器學(xué)習(xí)算法的核心邏輯。

02 構(gòu)成

機(jī)器學(xué)習(xí)系統(tǒng)由數(shù)據(jù)、算法模型、模型評(píng)估、計(jì)算結(jié)果組成。

機(jī)器學(xué)習(xí)系統(tǒng)的出發(fā)點(diǎn)是數(shù)據(jù),計(jì)算結(jié)果呈現(xiàn)給用戶或系統(tǒng)之后,用戶的行為數(shù)據(jù)會(huì)反饋數(shù)據(jù),這些反饋數(shù)據(jù)又會(huì)重新輸入模型中。這是機(jī)器學(xué)習(xí)的基本流程,如下圖所示:

數(shù)據(jù)是機(jī)器學(xué)習(xí)系統(tǒng)的出發(fā)點(diǎn)。機(jī)器學(xué)習(xí)系統(tǒng)能夠成立的前提,是有足夠讓系統(tǒng)做出決策的數(shù)據(jù)。

判斷一個(gè)問(wèn)題是否能用機(jī)器學(xué)習(xí)解決,就是看能否收集足量的相關(guān)數(shù)據(jù)。

比如,所有用戶對(duì)內(nèi)容的瀏覽行為數(shù)據(jù),可以對(duì)某一個(gè)特定用戶接下來(lái)的閱讀偏好做判斷。用戶的每個(gè)瀏覽和點(diǎn)擊行為數(shù)據(jù),都意味著個(gè)人偏好的表達(dá),同時(shí)其他相關(guān)用戶的行為也可以作為這個(gè)用戶行為推測(cè)的依據(jù)。構(gòu)造算法系統(tǒng)需要從多個(gè)角度判斷數(shù)據(jù)是否滿足構(gòu)建算法模型的需求。

在確定了數(shù)據(jù)可以構(gòu)建機(jī)器模型來(lái)解決業(yè)務(wù)問(wèn)題之后,就到了模型構(gòu)建階段。在算法模型的構(gòu)建中,最關(guān)鍵步驟就是將問(wèn)題抽象成機(jī)器學(xué)習(xí)能處理的標(biāo)準(zhǔn)問(wèn)題。機(jī)器學(xué)習(xí)算法一般會(huì)對(duì)實(shí)際情況做一些模型假設(shè),這些假設(shè)包含著一些待確定的參數(shù),機(jī)器學(xué)習(xí)模型就是要找到符合實(shí)際情況的模型假設(shè),并且通過(guò)算法的迭代確定出合理的參數(shù)。

在了解業(yè)務(wù)和算法的基礎(chǔ)上,模型的構(gòu)建過(guò)程會(huì)順利很多,但是在缺少評(píng)估的情況下,模型也不可能順利構(gòu)建。模型評(píng)估一方面相當(dāng)于質(zhì)量檢驗(yàn),保證模型輸出結(jié)果的質(zhì)量,防止上線之后產(chǎn)生明顯的體驗(yàn)問(wèn)題。同時(shí)模型評(píng)估中發(fā)現(xiàn)的問(wèn)題,也是模型優(yōu)化的重要依據(jù)。

在模型評(píng)估完成之后,就可以在線上給用戶輸出機(jī)器學(xué)習(xí)模型的計(jì)算結(jié)果。這些計(jì)算結(jié)果最終會(huì)在用戶的使用中得到驗(yàn)證。真實(shí)的線上數(shù)據(jù)會(huì)反映模型上線后的效果,這些線上數(shù)據(jù)也會(huì)成為后續(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í)算法。接下來(lái)會(huì)介紹這五個(gè)學(xué)派的典型算法。

1. 聯(lián)結(jié)學(xué)派(The connectionists)

聯(lián)結(jié)學(xué)派的主要思想是通過(guò)神經(jīng)元之間的連接來(lái)推導(dǎo)知識(shí)。聯(lián)結(jié)學(xué)派有點(diǎn)類似于大腦的逆向工程,希望通過(guò)訓(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è)樹(shù)突的末梢收集神經(jīng)刺激電信號(hào),將這些信號(hào)加工成新的電信號(hào),通過(guò)軸突傳遞出去。

而人工神經(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)元都通過(guò)這樣的模式,將數(shù)據(jù)不斷傳遞下去,并最終輸出計(jì)算的結(jié)果。如下圖所示的是一個(gè)典型的人工神經(jīng)網(wǎng)絡(luò)。

具體的優(yōu)化方法在這里不展開(kāi)描述,有興趣的讀者可以查看相關(guān)資料。

值得一提的是,Sigmoid函數(shù)是一個(gè)在算法領(lǐng)域很常見(jiàn)的函數(shù),可以將無(wú)界的變量映射到(0,1)之間,這個(gè)函數(shù)的特性是很多算法策略都會(huì)用到——神經(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)、圖像識(shí)別、機(jī)器翻譯等。

當(dāng)然,這樣的算法也有著明顯的問(wèn)題——模型可解釋性差,模型對(duì)數(shù)據(jù)量的要求比較高。因此,神經(jīng)網(wǎng)絡(luò)算法適用于有著海量數(shù)據(jù)且對(duì)算法解釋性要求不高的業(yè)務(wù)。

2. 符號(hào)學(xué)派(The symbolists)

符號(hào)學(xué)派通過(guò)訓(xùn)練可解釋的規(guī)則來(lái)解決問(wèn)題。符號(hào)主義者更側(cè)重邏輯推理,用幾個(gè)過(guò)去的數(shù)據(jù)訓(xùn)練出一套規(guī)則引擎,對(duì)未來(lái)進(jìn)行預(yù)測(cè)和判斷。決策樹(shù)和以決策樹(shù)為內(nèi)核的很多機(jī)器學(xué)習(xí)算法都屬于符號(hào)學(xué)派。

決策樹(shù)算法是一種典型的分類方法,是數(shù)據(jù)挖掘中常用算法之一。在決策中利用歸納算法可以生成可讀的決策規(guī)則,這個(gè)決策規(guī)則能夠?qū)⒖赡艹霈F(xiàn)的實(shí)例都進(jìn)行分類和預(yù)測(cè)。

決策樹(shù)算法非常接近人的決策過(guò)程,人的很多標(biāo)準(zhǔn)化工作,其實(shí)也可以理解為生成了一個(gè)決策樹(shù)。

以產(chǎn)品經(jīng)理面試為例來(lái)闡述決策樹(shù)的模型框架,假設(shè)通過(guò)對(duì)話可以了解候選人的三個(gè)特征:決策能力評(píng)分、系統(tǒng)學(xué)習(xí)能力評(píng)分、合作能力評(píng)分,同時(shí)假設(shè)通過(guò)這三個(gè)特征即可判斷候選人是否通過(guò)。那么這個(gè)決策流程可能如下圖所示:

這是一個(gè)標(biāo)準(zhǔn)化的決策流程,而決策樹(shù)其實(shí)就是通過(guò)利用歷史數(shù)據(jù)構(gòu)造對(duì)未來(lái)實(shí)例進(jìn)行自動(dòng)化決策的方法,核心是確定每個(gè)屬性在決策樹(shù)中的位置。

在整個(gè)決策樹(shù)的生成過(guò)程中,從根部節(jié)點(diǎn)開(kāi)始生成,每次向下分類都選擇信息增益率最大的節(jié)點(diǎn),不斷迭代生成決策樹(shù)。為了防止過(guò)擬合,也會(huì)采用一定的規(guī)則算法對(duì)決策樹(shù)進(jìn)行減枝,例如規(guī)定生成子節(jié)點(diǎn)的最小信息增益率,小于一定值不生成子節(jié)點(diǎn)。

決策樹(shù)是多元分類器常用算法之一,很多機(jī)器學(xué)習(xí)算法都會(huì)用決策樹(shù)的模型構(gòu)建更高級(jí)的模型。相對(duì)其他的算法模型,決策樹(shù)的決策流程更貼近決策實(shí)際情況,決策樹(shù)形成的規(guī)則也可以幫助我們更深入地理解業(yè)務(wù)。

3. 進(jìn)化學(xué)派(The evolutionaries)

進(jìn)化學(xué)派,是以遺傳學(xué)和進(jìn)化生物學(xué)的理論基礎(chǔ),進(jìn)行模型構(gòu)建。核心方法是構(gòu)造算法的評(píng)估標(biāo)準(zhǔn)和進(jìn)化方法,在系統(tǒng)中不斷迭代算法獲得最佳解決方案。今年興起的強(qiáng)化學(xué)習(xí)就是進(jìn)化學(xué)派的代表。

近年來(lái)機(jī)器學(xué)習(xí)的浪潮進(jìn)入大眾視野,和AlphaGo戰(zhàn)勝李世石和柯潔的新聞?dòng)泻艽蟮仃P(guān)系。很多人不知道的是——在戰(zhàn)勝了柯潔之后,Deepmind公司推出了拋開(kāi)人類經(jīng)驗(yàn)的新版本人工智能AlphaGo Zero,這就是強(qiáng)化學(xué)習(xí)的典型應(yīng)用。

強(qiáng)化學(xué)習(xí)是系統(tǒng)用試錯(cuò)的方式進(jìn)行學(xué)習(xí),通過(guò)不斷和環(huán)境交互訓(xùn)練策略。在系統(tǒng)中,需要構(gòu)建出可以和系統(tǒng)不斷交互的環(huán)境,對(duì)系統(tǒng)的每一個(gè)動(dòng)作進(jìn)行評(píng)判,系統(tǒng)根據(jù)每個(gè)動(dòng)作的獎(jiǎng)懲信號(hào)(強(qiáng)化信號(hào)),不斷調(diào)整最佳的動(dòng)作策略。下面是一個(gè)典型的信息交互圖。

具體在圍棋場(chǎng)景中,對(duì)弈中每一盤(pán)棋的勝負(fù)和局勢(shì)變化都是系統(tǒng)的獎(jiǎng)懲信號(hào),每一步落子都是動(dòng)作,虛擬對(duì)局中的圍棋規(guī)則就是系統(tǒng)的環(huán)境。

這種算法目前在工業(yè)界已經(jīng)有了很多應(yīng)用,比如基于強(qiáng)化學(xué)習(xí)的推薦算法等。在實(shí)際背景下,算法面臨的環(huán)境往往是不確定的,不像圍棋中的規(guī)則總是固定的。為了應(yīng)對(duì)這個(gè)問(wèn)題,算法就需要將現(xiàn)實(shí)問(wèn)題抽象為穩(wěn)定的虛擬環(huán)境,也就是構(gòu)成出仿真系統(tǒng),這也是現(xiàn)實(shí)條件下,強(qiáng)化學(xué)習(xí)算法構(gòu)建過(guò)程中最難的一步。

仿真系統(tǒng)也不是新鮮的概念,所有的航空航天器要上天都要測(cè)試空氣動(dòng)力學(xué)性能,就會(huì)用到風(fēng)洞系統(tǒng),風(fēng)洞就是對(duì)飛行中各種情況的仿真。而算法系統(tǒng)需要構(gòu)造的就是這樣一個(gè)在線的風(fēng)洞。

強(qiáng)化學(xué)習(xí)目前的缺點(diǎn)也很明顯,算法高度依賴仿真系統(tǒng)的構(gòu)建,應(yīng)用場(chǎng)景有限,同時(shí)實(shí)現(xiàn)復(fù)雜且不可解釋,還需要投入大量的資源。

但是強(qiáng)化學(xué)習(xí)的學(xué)習(xí)過(guò)程,很像生物的進(jìn)化過(guò)程,人類本質(zhì)也是在地球這個(gè)環(huán)境中,以生存和繁衍為目標(biāo)進(jìn)化出的高級(jí)智能。也許強(qiáng)化學(xué)習(xí)進(jìn)一步發(fā)展后,能夠真正推進(jìn)機(jī)器學(xué)習(xí)進(jìn)入更高的層次。

4. 貝葉斯學(xué)派(The Bayesian school of thought)

貝葉斯學(xué)派專注于研究概率推理和用貝葉斯定理解決問(wèn)題。貝葉斯定理的核心是用先驗(yàn)概率來(lái)推測(cè)后驗(yàn)概率,也就是不斷通過(guò)新的數(shù)據(jù)來(lái)更新原有的對(duì)于概率的估計(jì)。樸素貝葉斯算法就是貝葉斯學(xué)派的典型算法,典型的應(yīng)用就是垃圾郵件過(guò)濾系統(tǒng)。

在介紹樸素貝葉斯算法之前,先簡(jiǎn)單介紹下貝葉斯定理。貝葉斯定理是計(jì)算兩個(gè)隨機(jī)事件條件概率轉(zhuǎn)化方法的定理。比如對(duì)于隨機(jī)事件A和B,貝葉斯定理的數(shù)學(xué)描述如下:

貝葉斯定理是構(gòu)造樸素貝葉斯算法的基礎(chǔ)。下面就在郵件過(guò)濾的背景下介紹這個(gè)算法:

我們?nèi)绻呀?jīng)有一批已知的垃圾郵件,就可以知道垃圾郵件的一些典型特征。接下來(lái)如果我們先驗(yàn)地知道一封郵件包含的特征和垃圾郵件類似,我們就可以做出推斷,這封郵件有很大概率是垃圾郵件。

很多算法都會(huì)圍繞貝葉斯定理展開(kāi),樸素貝葉斯是其中一個(gè)代表。貝葉斯算法也是少有的對(duì)小規(guī)模數(shù)據(jù)也可以應(yīng)用的算法。掌握好貝葉斯定理這個(gè)工具,對(duì)做好數(shù)據(jù)和策略相關(guān)工作,有著重要的促進(jìn)作用。

5. 類推學(xué)派(The analogizers)

類推學(xué)派的核心是最近鄰的方法,通過(guò)相似性判斷,用近鄰的已知數(shù)據(jù),預(yù)估未知的數(shù)據(jù)。一些傳統(tǒng)的推薦算法,就是類推方法的典型應(yīng)用。類推學(xué)派的一個(gè)典型算法就是隱語(yǔ)義模型(Latent Factor Model,LFM),這個(gè)算法的最佳實(shí)踐也是在推薦系統(tǒng)中。

推薦算法的起點(diǎn),就是用戶的行為數(shù)據(jù),如果用戶和物品發(fā)生了越多的交互,則行為越強(qiáng)。推薦算法就是基于用戶行為數(shù)據(jù)補(bǔ)全下面表格的空白。這個(gè)表格其實(shí)就是一個(gè)“用戶×物品”矩陣。

我們?cè)谶x擇物品或者內(nèi)容的時(shí)候,是根據(jù)自己的偏好與物品或者內(nèi)容是否匹配來(lái)決定的。

就拿服裝而言,有的人在乎顏色,有的人在乎款式,有的人在乎調(diào)性,有的人在乎價(jià)格。人在選擇的時(shí)候會(huì)考慮很多因素,每個(gè)因素都有一個(gè)心理預(yù)期的偏好范圍。下表所示就是一個(gè)“用戶×偏好”的矩陣。

不同的物品或者內(nèi)容與這些偏好的符合程度不一樣。物品和這些偏好的符合程度也會(huì)形成一個(gè)“物品×偏好”的矩陣,如下表所示:

總而言之,我們需要利用“用戶×物品”矩陣,去想辦法構(gòu)建出“用戶×偏好”矩陣和“物品×偏好”矩陣。在得到這兩個(gè)矩陣之后,就可以使用線性加權(quán)求和的方法來(lái)計(jì)算用戶和物品的推薦分?jǐn)?shù)。

LFM就是這樣一種算法,通過(guò)隨機(jī)梯度下降,構(gòu)建出兩個(gè)潛在因子矩陣,并用這個(gè)矩陣計(jì)算空缺物品的推薦值。如下所示,是上面數(shù)據(jù)形成的推薦結(jié)果。

在原始數(shù)據(jù)中,用戶7和用戶8比較類似,如下表所示:

從推薦結(jié)果來(lái)看,用戶7和用戶8的推薦結(jié)果分?jǐn)?shù)也比較類似,結(jié)果如下所示:

04 總結(jié)

本文介紹了基礎(chǔ)的機(jī)器學(xué)習(xí)算法思路,同時(shí)也介紹了幾種基本算法,算法介紹以思路為主,如果需要進(jìn)一步學(xué)習(xí),可以查詢公開(kāi)資料。

這幾種算法比較基礎(chǔ),在這些算法的基礎(chǔ)上,衍生出了多種多樣的算法。在實(shí)際應(yīng)用中,往往會(huì)將多種算法進(jìn)行組合使用,從而發(fā)揮出更大的效果。

機(jī)器學(xué)習(xí)算法離不開(kāi)模型假設(shè),這些假設(shè)包含著一些待確定的參數(shù)。每一個(gè)假設(shè)都是對(duì)現(xiàn)實(shí)情況的抽象,每一個(gè)參數(shù)都是對(duì)模型的理想化處理,這些假設(shè)和參數(shù)讓模型能夠成立,也讓模型和現(xiàn)實(shí)存在差異。

但這些“差異”的存在并不影響實(shí)際問(wèn)題的解決,就像統(tǒng)計(jì)學(xué)大師喬治·博克斯說(shuō)的那樣,“所有的模型都是錯(cuò)誤的,但是其中有些模型是有用的”。我們需要理解模型和現(xiàn)實(shí)之間差異形成的原因和影響范圍,并據(jù)此判斷模型的適用范圍。

作為產(chǎn)品經(jīng)理,理解模型的算法的基本原理非常必要。只有這樣,才能將業(yè)務(wù)理解更好地融入到算法系統(tǒng)中,否則就很容易淪為算法的人工標(biāo)注員和case收集者。

為了能介紹機(jī)器學(xué)習(xí)的知識(shí),這篇文章不可避免地涉及了一些數(shù)學(xué)邏輯,也可能也會(huì)讓很多產(chǎn)品經(jīng)理感覺(jué)閱讀困難,但這只是機(jī)器學(xué)習(xí)的冰山一角。我們始終要選擇做對(duì)的事情,而非簡(jiǎn)單的事情。

產(chǎn)品經(jīng)理需要站在科技和人文的交匯點(diǎn),那么對(duì)最新的技術(shù)有基礎(chǔ)的了解,就是產(chǎn)品經(jīng)理的必由之路。

#專欄作家#

潘一鳴,公眾號(hào):產(chǎn)品邏輯之美,人人都是產(chǎn)品經(jīng)理專欄作家。畢業(yè)于清華大學(xué),暢銷(xiāo)書(shū)《產(chǎn)品邏輯之美》作者;先后在多家互聯(lián)網(wǎng)公司從事產(chǎn)品經(jīng)理工作,有很多復(fù)雜系統(tǒng)的構(gòu)建實(shí)踐經(jīng)驗(yàn)。

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

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 您好,文章很受益,有個(gè)疑問(wèn),類推算法中,用戶和物品之間的加權(quán)推薦值,是如何計(jì)算出來(lái)的?

    來(lái)自江蘇 回復(fù)
    1. 搜索 基于用戶的協(xié)同過(guò)濾算法,與基于物品的協(xié)同過(guò)濾算法

      來(lái)自山西 回復(fù)