1. 程式人生 > >序列的演算法(一·a)馬爾可夫模型

序列的演算法(一·a)馬爾可夫模型

序列的世界(一.a)

序言

機器學習領域往往按照演算法的應用分為各大領域,如NLP、CV、MT等等,一些演算法往往也被打上各自應用的標籤,但其實對於演算法本身而言,只要你能按照他指定的格式輸入資料,就能夠產出相應的結果,並不是限定到某個領域,只要你能對問題抽象成演算法需要的input,就可以在這個問題上發揮演算法的價值。

在這裡我們會關注一系列輸入是「序列」的演算法,這裡的序列包括但不限於「文字序列」、「時間序列」、「行為序列」,當然在序列中最被深入研究的當屬文字了:大量的樣本、符合直覺的概念、豐富的應用場景,都對NLP的繁榮有所助益。在後面的介紹中,大家也能看到很多NLP應用廣泛的演算法,但,演算法才不會管你傳入的資料是什麼,只要是它需求的格式,它就會幫你發現總結出其中的規律。在實際的使用中,演算法是我們手中的一把錘子,但它並不是一把被打上領域標籤的錘子,只要你能把你的問題轉化成對應的釘子,你就可以使用它。

本系列對演算法的講解都會從兩篇部分予以呈現:

a. 溼貨部分要淺入淺出,形象生動,讀得明白。
b. 乾貨部分要一文以蔽之,公式羅列,看得通透;

下面是(一)的 a 部分內容

馬爾可夫模型

說到序列,除非你是學習文字處理的人,一般大家首先想到的不會是「文字序列」,而是「行為序列」,比如知名笑話中的「吃飯、睡覺、打豆豆」。
此處輸入圖片的描述
我們在生活中的一系列行為往往被抽象成了一個個行為點,你可以回憶一下你今天做了哪些事情,簡單來說大概是諸如「起床,吃早飯,刷微博,刷知乎,收快遞,吃午飯」這樣的一個序列,當然你可能說「我是同時刷微博和知乎的!」,這只是抽象粒度不同而已,完全可以把「刷微博,刷知乎」總結為一個行為點「浪費時間」嘛。
【刷微博圖】

Unigram

如何對這樣一個行為序列進行建模呢?最最簡單省事的方式就是:上面的每一件事情之間都沒啥關係,出現先後只是巧合,你完全可以突然地起床了,然後突然地吃了個早飯,接下來很有可能突然地再起一次床。
此處輸入圖片的描述
這樣的模型在序列裡有個專門的名詞叫做Unigram,你扔掉了所有序列的先後次序,最後當你需要刻畫一個人的行為時,只能得到這樣的資訊「小明平均每天刷3次微博、小紅平均每天吃4頓飯」。
此處輸入圖片的描述
作為一個資深app使用者行為分析師,你的年終報告已經可以這樣寫了:s
老闆一看妙啊!扔給業務部門一個kpi,明年以上資料統統double!!

Unigram這樣的建模方式雖然簡單,但應用非常非常非常

廣泛,類似上面這樣的年終盤點,其實就是對你行為的Unigram刻畫。在文字序列中,統計每個字母的出現次數佔比,甚至可以幫你破譯比較簡單的密碼(凱撒密碼)。

馬爾可夫鏈

你或許會覺得Unigram方式對你行為的刻畫太粗糙了,畢竟誰都知道你得先「上床」、才能有「起床」這個行為嘛;以前發生的行為對以後是有非常大的影響的:你前天上網剁了手,今天才會收到快遞;你昨晚手機沒充電,今天蹲坑才不知道幹什麼;你上週買了彩票,今天才會發現沒中獎。
【行為影響圖】
等等等等,好複雜,我怎麼知道一個行為會以怎樣的方式影響未來,畢竟蝴蝶的翅膀不是浪得虛名,那一切從簡,我們大可這樣認為:當前行為只受上一個或幾個行為的影響,雖然看起來不太靠譜,但好歹能刻畫出「上床睡覺->起床」這樣的資訊了,畢竟只要人不掛,睡著了還是起得來的。

這裡我們已經引入了一個牛逼烘烘的假設:馬爾可夫假設,就是上面標黑的那一句話,這樣一個序列我們稱之為馬爾可夫鏈。一般來說如果當前行為只受上一個的影響,我們稱之為一階馬爾可夫鏈,以此類推。
此處輸入圖片的描述
圖中的每一個箭頭都意味著一組引數,是整個模型需要去學習的,此處不細表。

接下來我們就以最簡單的一階馬爾可夫鏈來看看我們能得到什麼新東西,作為一個資深的app的使用者分析師,你又有了如下結論:
此處輸入圖片的描述
業務部門一看妙啊!趕緊跟啤酒廠合作去,kpi有望了!

隱馬爾可夫模型

這個時候有同學就說了,你這個模型也不太靠譜,我做事情都是看心情的嘛!心情好我就吃兩碗飯,說得抽象點,你的外在行為只是你內在意願的表現.

什麼意思呢:你和妹子吃完飯,想看個電影;到底去不去看電影,還是做其他事情呢?還得看妹子的意思。所以從你的心裡是想看電影來著的,但最終表現成了逛街(瞎想啥呢),實在是因為「臣妾做不到啊」。

如何刻畫這樣一個行為模式呢,我們就得在原始序列的基礎上,引入「隱變量了」,就是深藏在序列背後的……序列:
此處輸入圖片的描述
這就是傳說中的隱馬爾可夫模型了,這裡涉及的隱變數是什麼,完全由具體的問題而定:比如文字序列中每個單詞的詞性、語音序列裡背後的「音節」、姑娘跟你說「去洗澡了」背後到底是什麼意思。
此處輸入圖片的描述
作為知名app使用者分析師的你表示已經從上帝那裡購買了使用者心理活動查詢介面,通過分析有了驚人的發現:
此處輸入圖片的描述

老闆欣然起意,對產品大加修改,走上了快播的不歸路。