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 倍, 我在兩個月以前自己從無到有又自己跑一次, 以前須要半年的現在只要半個多月就夠了, 想想時代還真可怕阿.

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

沒有留言:

張貼留言

熱門文章