2013年3月20日 星期三

挖掘巨量資料的秘密步驟

現在已經有太多的報導說某某公司利用使用者的行為記錄, 來算出每一個人的喜好, 並且導出商機等等新聞到處可見, 但我相信大家看再多次, 不是覺得這樣會不會太可怕了? 不然就是這好厲害阿! 這兩種答案, 不然就是兩種都有.

但事實上這件事並不神奇或可怕, 會覺得這樣是因為大部份的人不知道怎麼做, 或者是說這能夠做甚麼, 若是你知道後, 發現這跟本只是個套來套去經過計算的結果, 甚至在某方面你用手來算都可以, 只是不一樣的是人只能處理少量資料, 而電腦可以處理巨量資料, 當很多事情會有量變產生質變的時候, 威力就在此顯現, 但這些步驟, 說穿了一點都不聰明, 甚至還非常的機械化的制式.

當然我不是很好的深入淺出的作者, 所以沒辦法寫給大多數的讀者看, 而是寫給已經有一點實務經驗的人, 尤其是程式設計師或資料庫管理師等工程師, 但若沒有這技術背景, 我相信做這樣的拆解, 可以讓大家從一知半解變成知道個大概, 而透過這樣的了解, 讓大家有機會去應用是我寫這幾篇的目的.

只是還有一個前提, 就是我不會在這邊寫資料探勘的基礎, 也就是說, "請先去看本資料探勘的書", 再來看下面幾篇文章吧.

目標: 能夠知道某個特定人喜歡甚麼東西, 購買每一個商品的機率, 或者是說我們該如何推薦商品給他, 以及知道他喜歡這商品的原因?

人與商品之間的行為有下面幾種:

1. 瀏灠
2. 放入清單
3. 購買
4. 評價或評論
5. 其他

上面每一種行為都有其數量化的差異, 有些是一年幾次, 幾十次或到幾百次或更多, 而每一個行為都可能有個 "權重 (Weight)", 以及時間 (Time) 與次數 (Times) 的屬性, 甚至更有可能是一個 Vector (向量) 的指標, 例如喜好, 觀感等等, 無論是可以量化或不能量化, 這些都可以成為建立人與商品的 "關連".

所有的資料探勘系統實作都是從這些資料做轉化, 甚至是簡化, 畢竟可以運算, 以及算得出結果才是重點, 甚至是能夠算給所有消費者顧客使用才是資料探勘的精隨.

但有趣的事是很多實用的系統都很少是用單一方法去建構出來的, 畢竟除了人的行為之外, 商品有有幾個屬性:

1. 商品本質, 內容
2. 商品描述 (meta-data) 與分類
3. 最後才是商品的使用

在還沒有 Semantic Web 之前, 我們能用的就是商品的使用, 也就是我們使用者/消費者與商品/物品之間的關係, 而在有了語意網路之後, 我們就可以進一步的處理本質 (文化商品) 與描述了, 只是在這之前還要有幾個前置作業.

1. 會自動化新增關鍵字詞的表
2. 會自動化連結出語意網路的表

這兩個表若是可以扣掉前面 "會自動化新增/連結" 的話, 我相信很多人都有從很多單位去取得這樣的詞庫與關連庫, 但在實務上我們有絕大部份的狀況都是在處理運算最新的商品或議題時, 沒有一種機制能夠新增或更新的話, 幾乎是不實用的.

只是這新增/更新有時不見得是自動化, 因為自動化是件相當困難的事, 就我所知有不少在做這項業務的公司單位, 用的就是 "工人智慧", 而不是人工智慧, 但無論如何, 有了這兩個表之後, 再加上從資料探勘能夠得知的:

1. 關連分析 (一階, 或高階)
2. 群落分析 (Clustering)
3. 時間序列預測

有了上面三個很基本的工具後, 可以配合產出很多的可能性:

1. 最常見的關連購買
2. 在搜尋結果中做排序
3. 從分類結果做語意分析產出因子
4. 有了高階的關連分析可以透過配對做活動
5. 從銷售預測中作備品或庫存準備
6. 只要你想得到的

當然上面說得很簡單, 好像是三兩天就可以開發出來的東西, 但事實上單單一個 "會自動化連結出語意網路的表", 我記得當時就弄了兩三個月才弄出來, 當然現在再弄一次就只須要兩三天到兩三個星期了, 畢竟有經驗跟沒有經驗還是差很多的.

記得我在 5 年多前寫過 Data Mining 是一個須要跟效率挑戰的高度技術的事, 但現在的機器已經比 5 年前快 5 倍了,  加上資料庫的多樣性, 雲端系統的完善, 讓寫這樣的系統跟之前簡單不只 5 倍, 我在兩個月以前自己從無到有又自己跑一次, 以前須要半年的現在只要半個多月就夠了, 想想時代還真可怕阿.

所以說, 在這樣成熟的時機而言, 導入真正的巨量資料探勘已經不是預算的問題, 也不是技術的問題, 而是心態的問題了, 你準備好了嗎?

2013年3月4日 星期一

我在說謊: 壞人最不該唸的一本書, 但也是好人最該唸的一本書

雖然說, 唸不到三分之一, 我就已經有如標題的想法, 但當放下這本書 (事實上是 ipad) 時, 不會因為已經確定這結論而覺得輕鬆很多, 取而代之的是更強的感覺, ....... 如同作者自序中的最後一句話: "至於要如何使用這些資訊,就取決於你自己了。"

這本書是 "Trust Me, I am Lying", 也就是 "我在說謊".....

若要說, 這本書是本可以讓有能力判斷的人, 看完後更容易去判斷事情的真假, 但相對的就是讓壞人利用這本書的方法, 更容易去操作別人, 而你要成為那一種人, 就只在一念之間, 雖然事實上大部份的人都是在其中, 只是比例不一樣罷了.

這本書雖然講的是美國的部落格文化, 這跟台灣是有一定的差別, 但這本書主要講的是如何操作玩弄新聞, 這個在台灣並不多見, 甚至在某方面台灣部落客玩得起的人相當有限, 可能手指頭就可以數的出來, 只是台灣很多大眾媒體直接省略很多步驟就開始 "操弄新聞", 畢竟台灣並不存在 "地方新聞" 與 "全國新聞" 這種層級的差異.

反到是更類似的是台灣 "鄉民" 文化被一些廠商去操弄的血淋淋, 倒是十分貼切, 畢竟操作模式即使不一樣, 但操作者總是存在在任何地方, 只要能夠因此獲利, 或是是獲得名聲, 那不會有人去走捷徑. 所以你看完這本書, 回想一下台灣的許多事情, 會不會有覺得似曾相識呢?

事實上我更相信作者會寫這本書, 說是他要 Confession 反省自白, 還不如他已經 Level Up 升級, 現在無論是更好或更壞, 這些方法已經對他用不太上了, 所以在也不希望自己再用或不希望別人再用的情形下寫出這本如此 "入骨" 的書, 這對大眾也是個好事阿.

有時我很慶幸我雖然是在網路媒體業, 也接過這樣許多類似的案子, 因為身為一個分析者及技術顧問, 都可以用不在其職閃過這些事, 但我知道有太多人面臨這樣的決擇時選了 "比較簡單的 Easy Way", 那是甚麼樣的路大家都知道, 我很少看到有人走 "Too Damn Hard" 的路, 這也是為甚麼我一直想幫助大家把這條路變得沒有那麼 "Hard 困難" 的原因.

這本書講的方法, 80% 在台灣還是相當的 "實用", 至少方法必須不一樣, 只是這本書不是甚麼社會學批判的書, 說穿了就是把作者做過的事用方法論的整理出來, 並沒有刻意的作解釋與觀察, 所以若能夠在之前多唸幾本有關網路的社會學會更容易上手.

我看完這本書還有一個很大的感慨是這本書沒有著墨的:

"事實上大多數的部落客都是很有正義感的, 只是出名的總是那些假藉正義的名號去煽動群眾的那些人"

這倒底是部落客的問題, 還是讀者的問題呢? 只是這又是另一個問題了, 雖然這才是真正的問題.

Anyway, 你已經決定好該不該去唸這本書了嗎?

編按: 最後書名是叫 "被新聞出賣的世界:「相信我,我在說謊」,一個媒體操縱者的告白", http://www.books.com.tw/exep/prod/booksfile.php?item=0010576995

熱門文章