2013年6月7日 星期五

比算命還準的資料探勘: 從次級資料(Secondary Data)來看 Big Data

訪來客計劃是有一段很長很長的故事, 甚至這故事可以回溯到四年前之前的 "樂生療養院" 事件, 但這個以後再說, 若說是有近因是我要做 "Weblog.tw" 的臉書版之前的練習是真的, 但與其說是透過 Home Brew 來做學習, 應該說這是一個臉書上的 Data Mining 的實作, 尤其是在看到 2007~2008 年流行的 "Friend Wheel" 時, 我來想說這種計算朋友之間的 "分群" 與 "距離" 可以說是資料探勘最好的範例.

像 Friend Wheel 要畫出來不是難事, 但真的要去分析與判斷就不是件簡單的事, 這也是資料探勘中, 資料呈現 (Data Presentation) 最有趣的事, 因為有時要從 Big Data 去 Mining 出甚麼未知的可能性是相當困難的, 有時若是我們把資料視覺化 (Visualization) 有時確是 "一見即知", 而要去真的計算有時是不太可能的.

這計劃一開始時構想的很好, 若是我們能夠抓到我們朋友的好友數, 有時就可以從相同好友數來去做第一次整理, 但一開始實作時卻又不是那麼一回事, 因為朋友數本來就是可以選擇性隱藏, 因此原本規劃好的演算法就只好拋棄了, 而只好從可以抓的資料來計算, 這也是資料探勘中最常遇到的問題, 並沒有甚麼好意外的了.

畢竟資料收集 (Data Collecting) 一直是比 Data Mining 演算法還更麻煩的一件事, 所以若因此而讓我們放棄從資料來找到答案的話就太可惜了, 因此最後我們採取了另一個演算法來計算, 雖然這方法有時不見得切實際, 但也不失一種方法, 也因此從這個不得已的演算法中找到另一件有趣的事, 而這個又只能留待以後再說.

所以在當時的計劃雖然遇到措折, 但也不是不能解的時候, 勢必又必須換一條新的路, 也就是說, 當發現原本的計劃是想從朋友的分群來做 "資訊導覽" 的時間成本太高 (計算一個人的朋友族群須要好幾小時到好幾天的計算), 因此就打算分階段來進行, 這也就是 "訪來客" 的開始, 也就是 "你臉書生活的精彩度" 這件事.

因為這個計劃最原始只是想透過 "朋友關係" 來去做 "資訊分類", 因此一開始就打算 "只抓交友資料", 而其他的授權就都不去要求, 想以 "最低的必要授權" 來去完成這計劃, 所以這個 "臉書生活精彩度" 雖然不是簡單的只是計算 "好友數", 但也因為沒有透過其他的臉書活動 (Activity) 去做搜集與計算, 而是純以交友的 "模式" (Pattern) 去推估.

畢竟若我們一開始是規劃出 "透過你在臉書的活動" 來去計算 "臉書生活精彩度", 聽起來是最合理的方式, 雖然這樣也是再單純不過的事, 但事實上所須要的成本與阻力也更大, 畢竟這樣須要的授權更多, 要抓的資料也更多, 就如同前面所說的, 困難點有時不是計算資料, 而是如何去獲得資料.

這也是 "次級資料" 有趣的地方, 所謂的次級資料 (Secondary Data) 就是我們計算的結果, 並不是最原始的資料應用的目的, 但因為事出必有因, 這原始資料若是種結果的呈現, 我們可以用某種計算邏輯與方法, 分析出因子去推論出不同的結果.

(想要真的更進一步了解次級資料的, 可以到 MBA 智庫來看)

但任何計算都應該有其假設與邏輯性, 例如在這個臉書生活精彩度的定義不是在於你的好友數, 而是在於你這好友之間是否有互動 (互為好友), 也就是說若好友能夠成群的話, 代表你在臉書的交友是有其完整性的, 因此可以證明你不是到處亂加好友.

而接下來應該已經有不少人去計算你的 "臉書生活精彩度" 了吧, 若你還沒去計算, 就去試試看, 而每一個人只能看到朋友的資料, 不是所有人的資料, 事實上我甚至也沒寫程式自己去看全部的資料, 畢竟我也是想讓大家選擇這樣的授權與否.

在同時, 我也放了一個彩蛋, 當時的連結叫 "很可怕不要問", 這是一個怎樣的數字呢?

既然我們可以從這些數字來知道那些好友是有意義的 (成群的), 那代表可以從其推論那些好友關係並沒有如此密切, 也就是 "你有那些好友是較為不熟識的", 也就是我當時說的:

"這個人若被不熟的朋友或是陌生人加好友, 他接受的比例, 換言之也包含他去加不熟的朋友或陌生人的機率."

所以後來稱為 "開放關係", 我想應該有人猜得出來這個是採用 "Open Relationship" 的雙關吧, 但跟真的定義中的開放關係是有其相關但不是定義.

當然這樣的計算的確是有意義性, 但也不絕對, 因為每一個人的生活模式都不太一樣, 想套用一個算式與邏輯在任何人是有其局限性與適用性, 頂多只能說這也是種 "觀點", 而不是全面性的, 換句話說, 也是種 "客觀的主觀", 畢竟這種 "指數性" (Index) 在某種觀點只是種 "Eigenvalue", 是種 "簡化" 某種 "複雜度", 當經過 "簡化" 必然會失去一些意義, 而我們在使用這種數字一定要有這種體認.

但也是因為人如此的複雜, 說要很輕易的去了解自己的生活與定位也不是那麼簡單, 所以透過這樣的 "診斷", 在某種觀點還真的是種 "算命", 因為這樣的計算有時還真的看得到原本自己看不到的東西, 但也因為這是真實的數字, 所以絕對是 "準確" 的, 所以說是 "比算命還準" 一點也不為過, 因為這是呈現你的行為, 並沒有去做任何的 "猜測", 說起來只是 "換個角度來看", 所以若是認同可以用這角度來看, 沒有不準的可能性, 真正的問題是: "這角度有意義嗎?"

換句話說, 只要能夠找得到一個合理的邏輯依據, 要從人的行為找到其模型與指數來做判斷不是不可能, 就像是我們不可能輕易知道 "你是否跟那些朋友熟不熟", 但我們就可以從模式套用來計算出一個 "很可怕不要問" 的 "開放關係指數" 結果, 只是有時也不見得有用, 尤其是找不到其關聯性的, 最後還是要從更合理的資料搜集下手.

只是若你看到這邊, 可以感受得到 Data Mining/Big Data 的可怕與局限性, 因為若是有足夠的資料, 要算出下面那些東西不是不可能的:

1. 一個人會自殺的傾向
2. 一個人會買某商品的喜好度
3. 這個價格要多少能夠越多人買或賺越多
4. 明天會去逛某商圈的人數
5. 從臉書可以算出你最合適的工作以及未來路徑
6. 再過幾分鐘你那邊就會下雨

而任何資料都是有跡可循, 可以被推算或推算出甚麼東西, 也就是說, 這種事情可以很有幫助, 但也能會很可怕, 有時在於我們怎麼用, 以及用甚麼心態去用以及被誰所用, 甚至用在警察國家或極權國家, 要算出一個人的忠誠度, 以現在技術比以前更輕而易舉, 就像是水能載舟亦能覆舟, 科技有時會讓我們生活變得更好, 也可能會害了人類, 這是我們大家都已經知道不用懷疑的.

我也只能期待未來人類能夠善用這些資料....

若上面文章真的太長了, 你看下面四句話就可了:

1. 我們有時只能從已抓的資料下手, 而不是最實際的資料
2. 這種指數的計算是簡化其複雜度, 一定會失去一些意義
3. 我們可以視其須要及適用度, 去調整演算法或資料搜集
4. 對於資料的可能性與適用性, 我們還須要一段路來學習

沒有留言:

張貼留言

熱門文章