Thursday, January 31, 2008

[詩戀] 陳舊了的Sentimental

夜讀林文月的《寫我的書》,序言裡提到她在一個元旦假期,閒步古書店,與一本十九世紀日本詩人們的詩集相遇,將書購回之後,為了對一群不相識的異國詩人表示敬意,她選出一首詩譯成中文,題名為《陳舊了的Sentimental》。

雖然我完全不知道這位十九世紀的日本詩人的一切,但是文字是有生命的,我完全可以感受到他的「滴落不已的回憶」和「熱烈跳動的心」。


陳舊了的Sentimental/泉浩郎

心遠處的地平之極
小小的生活的過去啊......
它與現在的心仍牢牢連接著
儘可以將這麼麻煩的過去捨棄掉
卻趕不走地藏著
陳舊了的Sentimental。

我現在忽然取出西裝
走在寂寞的野徑......
外套的口袋裡
有一封未及寄出的信
如今已不想投函於將忘的人的心臟
只好珍藏在懷中
陳舊了的Sentimental喲。

在我絞痛的心象裏
將忘的人的
悲傷的心情溢漲著
滴落不已的回憶。

未及寄出的信的心喲
無人訪的青春的暗室喲
佇立路傍的徒然的感情喲
獨行於曠野
我的心熱烈跳動。


後記:
寫完後才發現,有人和我一樣地感動。

Friday, January 25, 2008

鯉魚潭,我來了...

我一向懶,連玩都懶。

每每遇到長假,一家老小興沖沖的問我有沒有計畫,有沒有準備「驚喜」送給她們(這這這不是打鴨子上架嗎?),我就只能躲躲閃閃,然後以計畫不完備,來不及訂房(訂席、訂 whatever)為理由,又推託過一次甜蜜的「請求」

這次年假,不知發了什麼神經,竟然答應帶一家老小遠征台灣東部,來個擁抱大自然之旅。因為枕邊人和同行友人的殷殷勸誘,我竟然答應她們,到鯉魚潭露營。

這完全違背我一向「吃好睡好」的高標要求,聽說友人還「自發」地為我準備了一輛腳踏車,準備來個花東小縱走。我猜我一定是瘋了...

寫這篇文章的時候,她們正在收拾行李,感受到她們的期待和興奮,我的心也開始沸騰,我要去收拾我的行李了。

鯉魚潭,...

如何評估推薦系統(一)

這是很多年前的舊文了,最近有些網友找到這篇文章,於是有了一些很有意思的對話,我記錄在下面兩篇文章,如果您有興趣,也歡迎看看這些簡短的記錄,批評指教。謝謝。


-----

任何工作,包括學術研究與商業專案,都必須有衡量成績好壞的客觀標準(metrics),我們才能據以評估工作的品質以及判斷優缺點,並進而找出改進的方向。

我們剛接觸一個新的研究對象時,或許因為缺少標的物的相關知識(所以我們才要研究呀);也可能因為缺乏經驗,不知該觀察紀錄那些資料,常常不能找到理想的計算方式與評估標準。但是隨著我們對於研究對象的所知愈來愈豐富,數學計算的工具與實體的測量工具越來越方便好用,評估量尺的可用性與實用性也隨之進化,能提供我們更多研究(或者是商業上的決策)上的輔助。

學術界開始推薦系統的研究始自上世紀90年代初,這十餘年來(今年是 2008年,自九零年代至今,接近二十年了),經過許多學者的精心灌溉,發展出許多有用(且有趣)的演算法,也發展出許多評估推薦系統的計算方式。

因為電子商務的發展,推薦系統的重要性,已經廣受經營者與研究者的肯定。因此評估推薦系統時,從商業上的基本面來考慮,就是最實用的評估標準了。換言之,我們要問的是「推薦系統」的預測有多精準?建議是否有用?提昇營業效益多少

經過學者的努力,目前廣泛被使用的評估工具有兩大類,第一類考量的是推薦系統的正確性(Accuracy),也就是計算推薦系統的預測與消費者行為的誤差有多大,誤差愈小,推薦系統的精準度愈高。

(推薦系統評估方式的分類:Accuracy and Usefulness)

正確性的評估,還可以再細分為 Prediction Accuracy 和 Decision-Support Accuracy ,前者以 MAE (Maximum Absolute Error)、RMSE (Root Mean Square Error)等常用的統計工具,計算推薦系統對消費者喜好的預測與消費者實際的喜好間的誤差平均值;而後者則以 Reversal Rate 、Precision-Recall 或 ROC curve 為主要工具。。

Prediction Accuracy 指標很容易理解,計算方式也不複雜,Netflix Prize 競賽,就是以 Prediction Accuracy 作為評定得獎與否的依據,根據競賽辦法,得獎者演算法的 RMSE 數值,需要比 Netflix 公司目前使用的推薦系統 Cinematch 低(愈低愈好)百分之十,才能獲得百萬大獎。

(MAE .vs. RMSE)

但是這種指標的缺點也正是失之於簡單,過度簡化事實。考慮一個一到十分的評分系統,試看2與36與7以及8與9 這三個例子,這三個例子的差距都是1,在計算 MAE 或 RMSE 時,結果是相同的。從實際消費行為分析來看,第一個例子的兩個數字表示預測和實際都是不會購買商品,第三個例子則是預測與實際都顯示將會購買商品,但是第二個例子中 6與7的差距代表的意義可能是從「不考慮」到「可能會買商品」。

這表示:兩個 MAE 相同的系統,實際表現的差距可能很大。所以學者開始嘗試用 Reversal Rate 、Precision-Recall 或 Receiver Operating Characteristic 之類的指標,希望能將預測值與實際購買決策(買或不買)間的關聯更精確的表達出來,這就是所謂的 Decision-Support Accuracy。

Reversal Rate 的計算方式很簡單,首先選擇 High 和 Low 兩個基準數值,然後比較推薦預測與消費者所給的評分,如果消費者的評分大過 High 這個參考基準,但是推薦系統的預測是小於 Low ,我們叫這種情況是 High Reversal ;反之,則稱這種情況為 Low Reversal 。計算 Reversal Rate 可以反映這個系統產生的預測的準確程度。

Precision-Recall 的計算則是源自資訊擷取(Information Retrieval)理論,定義如下圖。在計算之前,我們要先定義什麼樣的評分是 relevant (7-10),以及何者是 irrelevant (1-6),為了計算方便,retrieved items 定義為所有物品的集合。

(Precision and Recall 的定義)

ROC (這裡沒有談政治,不要太敏感喔)是 receiver operating characteristics 的縮寫,如同 Precision-Recall 一樣,ROC 是從別的領域借鑒而來的,最早 ROC 是應用於訊號處理領域,目的是在於評估一個過濾器(information filtering system)區分訊號(signal)與雜訊(noise)的能力。

分析 ROC 曲線之前,首先要定義所謂好壞標準(relevant/irrelevant)的界線(threshold),如同計算 Precision-Recall 時一樣,relevant/ irrelevant 的定義方式是二元的,與 Reversal Rate 使用高、低( High、Low) 兩個參考數值的作法不同。有了 relevant/irrelevant 的定義之後,我們就可以做出有四個元素的 confusion matrix (消費者判定 relevant/irrelevant ,和推薦系統預測 relevant/irrelevant,剛好是四種組合)。

(資料來源: An Introduction to ROC Analysis

在繪製 ROC 平面時,我們只需要使用 FP ( false positive)和 TP(true positive)兩個數據, 比對每個物品的推薦預測與消費者的實際反應,我們可以得到 FP 和 TP 在所有物品中的比率(TPR and FPR),因此 FPR 和 TPR 的範圍是從 0 到 1 之間。

將 FPR 當作二維平面的 X 軸,TPR 當作 Y 軸,某個推薦系統的 (fpr, tpr)就是 ROC 平面中的(x,y),因此我們可以很容易地將這個點在座標平面上標示出來。如果改變 relevant/irrelevant 的界線(threshold)數值的定義,就可以得到很多組 (x,y) 數值,將這些點標出來,我們可以在平面中畫出一條曲線,這就是所謂的 ROC 曲線 (ROC Curve)。

分析 ROC 曲線敏感度的方法,就是計算曲線下的面積 (AUC:area under curve), AUC 愈大,表示系統能夠挑出愈多的好的品項,接受較少的不良品項。

已經有學者證明,大部分狀況下, 計算 ROC 和 Precision-Recall 時,會得到相同的 confusion matrix ,而且從其中一個曲線,可以推演出另外一種曲線的狀況。不過 PR 比較適合資料分佈高度不平均(highly-skewed)的情況,因此在實務上,演算法設計與系統評估方式的規劃,要視資料特性作修正。

推薦系統的預測準確度,當然是評估推薦系統的重要指標,但是「準確度」不是唯一的量尺,如果推薦系統所產生的預測與推薦和暢銷名單(best seller)一樣,固然 accuracy 的績效可以得到高分,但是我們只需要一份銷售排行榜就好了,何必大費周章地研究、開發推薦系統。所以另外一個量尺,「有效性」就格外值得我們留意了。

去年我在談推薦系統與長尾的時候曾經提到,推薦系統研究的開路先鋒 Paul Resnick 授, 曾經評論 discoveryreinforcement 是推薦系統最重要的兩個目的:
There are actually two effects that we should expect from recommenders. One is discovery-- once one person discovers an item, some other people with similar tastes who would not have found that item do find it. The other is reinforcement-- an item that many people have sampled will be more likely to get recommended.
本文所分析的各項 accuracy 指標,都是檢驗推薦系統在 reinforcement 方面的績效,下次我們將聚焦在 discovery 上,看看評估推薦系統的另外一個量尺-usefulness。

參考資料:

[1] T. Fawcett, "An introduction to roc analysis," Pattern Recognition Letters, vol. 27, no. 8, pp. 861-874, June 2006. [Online]. Available: http://portal.acm.org/citation.cfm?id=1159475

[2] J. L. Herlocker, J. A. Konstan, L. G. Terveen, and J. T. Riedl, "Evaluating collaborative filtering recommender systems," ACM Trans. Inf. Syst., vol. 22, no. 1, pp. 5-53, January 2004. [Online]. Available: http://portal.acm.org/citation.cfm?id=963772

[3] B. M. Sarwar, J. A. Konstan, A. Borchers, J. Herlocker, B. Miller, and J. Riedl, "Using filtering agents to improve prediction quality in the grouplens research collaborative filtering system," in CSCW '98: Proceedings of the 1998 ACM conference on Computer supported cooperative work. New York, NY, USA: ACM, 1998, pp. 345-354. [Online]. Available: http://portal.acm.org/citation.cfm?id=289509

Thursday, January 24, 2008

她說:「你配不上我」

或許是我太多心,總覺得今日(2008/1/24)聯合報副刊登出的「擬未婚妻之言」不像是待婚少女的心事,反而像是一篇政治寓言。

不管作者的真正寓意是什麼,這首詩的最後一句說得真好,現在的你是配不上我的...


但此刻我想告訴你的是

我自己一向美麗一向清澈

如果你這輩子想跟我一起活

你得注意要把自己提高一點才配得上我

你得注意要把自己提高一點才配得上我


Monday, January 21, 2008

CiteULike 介面更新

或許已經是舊聞(sigh)了,CiteULike 變更了每則文章資料的詳細資訊顯示方式以及操作介面比較清,新的介面比較清比較清爽,畫面比較簡潔。

最明顯的改變就是Copy-and-Pasteable Citation 直接顯示在文章標題的下方,不再以子單元的方式獨立顯示。但是為了簡潔,似乎犧牲了少許說明的清晰與可讀性,比如說「 Post this article to your Library」的超連結直接放在文章標題和引用文字的下方,但是要將滑鼠移到[Copy]的上方,才知道這就是以前的 Post this article to your Library ,是美中不足的地方。

不過使用一兩次就習慣了,不是太大的問題。下圖是最新的介面,一目了然非常清楚。

Saturday, January 19, 2008

[詩戀] 舉杯的理由

我不善飲,但是喜歡酒上心頭微醺的感覺,所以偶爾睡前會喝一兩杯烈酒,看點閒書再就寢。

喝酒前,有時喜歡給自己找個名目,「醉鄉路穩宜頻到」太頹廢,完成一件工作則冠冕堂皇理直氣壯得多;心情不好時,「方知一杯酒,猶勝百家書」是舉杯的好理由;開卷有益,讀讀騷人墨客的風流,「酒發雄談,劍增奇氣,詩吐驚人語」則是另一個喝酒的好理由。

Cheers !

念奴嬌 / 高啟

策勳萬里,笑書生骨相,有誰曾許。壯志平生還自負,羞比紛紛兒女。酒發雄談,劍增奇氣,詩吐驚人語。風雲無便,未容黃鵠輕舉。

何事匹馬塵埃,東西南北,十載猶羈旅。只恐陳登容易笑,負卻故園雞黍。笛裡關山,樽前日月,回首空凝佇。吾今未老,不須清淚如雨。

would-be-funny-if-it-wasn't-so-sad attempt

總是會有些人(人們),想法與眾人不同,有時候我們叫這種想法是「創意」,有時候美其名曰「眾人皆醉伊獨醒」,但是有時候我們只能稱之為 would-be-funny-if-it-wasn't-so-sad...

Who owns "Cyberlaw"?

一位在美國華盛頓特區執業的律師 Eric Menhart 去年(2007)向美國的專利局申請 Cyberlaw 這個字眼的商標(federal trademark),申請的業務涵蓋範圍包括(資料來源:Technology & Marketing Law Blog):
Legal document preparation and research services for attorneys; Legal research; Legal services; Legal services, namely, preparation of applications for trademark registration; Consulting and legal services in the field of privacy and security laws, regulations, and requirements; Expert witness services in legal matters in the field of intellectual property and information technology; Providing a website that features information on the development of international law, regulations, legal policies, and legal practices in a manner that promotes global governance by all types of organizations; Reviewing standards and practices to assure compliance with intellectual property and information technology laws and regulations; Attorney services; Litigation services; Legal services, namely, trademark maintenance services; Copyright management; Copyright management consultation; Registration of domain names for identification of users on a global computer network; Arbitration; Arbitration services; Consultation in the field of data theft and identity theft; Intellectual property consultation; Intellectual property watch services; Licensing of advertising slogans and cartoon characters; Licensing of computer software; Licensing of intellectual property; Litigation consultancy; Mediation; Patent licensing; Preparing and filing incorporation papers; Providing information relating to legal affairs
你猜這項申請通過的機會有多大?

10 萬美金的搜尋引擎

新加坡的 Agency for Science, Technology and Research (科學技術研究局)日前公佈將提供十萬美金舉辦一個搜尋引擎競賽,依照新聞稿的說法,參賽的搜尋引擎,不僅要能作一般的文字搜尋,還要能在多媒體檔案中找出關鍵字,PHYSORG.COM 公佈的原文如下:
Contestants are required to create a search engine that can identify search terms found not only in text within websites, but in music and video files as well.

The competition is aimed at creating a search engine that works across all multi-media platforms, especially Web 2.0 and user-generated content websites such as Facebook and YouTube, the agency said.
比起 Netflix 的大手筆(一百萬美金耶),十萬元實在是太少了...

Friday, January 18, 2008

What is a Blog?

如果你在 YouTube 上搜尋 "What is a Blog",你會得到超過四千個搜尋結果,裡面有教學(Tutorial)影帶,也有許多業內、外名人(有名的標準是你是否認識主角)接受訪問即席回答的剪影,但是最有意思的是我在 Data Mining Research 看到的這個,影片的主角不是人,是....

Thursday, January 17, 2008

Data 和 Algorithm 應該放在一起比較嗎?

Data or Algorithms ? 今夜,你想用那一道?

最近又看到有人討論資料(如果你比較習慣數據這個詞彙,請自行在腦裡替換)和演算法熟重的話題,作者在文章的首段說:「Obviously the two have a symbiotic relationship to be valuable together. If you can have both you’ll take it, but what if you had to choose?」,邀請讀者和他一起玩頭腦體操,討論這個話題。

作者在文章中簡要地說明他的想法,令人欣慰的是,作者最終沒有和稀泥的給了「都重要」的不負責任結論,而是明確的告訴讀者他的 gut instinct 認為資料(數據;Data)是唯一可以長久保持企業競爭力的要素(至少有觀點、有結論)。

在我看來,Data 和 Algorithm 不應該是放在天平兩邊比較的元素,這兩者的確是有非常強烈的 symbolic relationship,所以常常在思考時,同時被提出討論。但是資料和演算法間的關係,並不是互斥、獨立的,這個問題如果被化約成詢問觀眾今晚想吃那一道料理的料理東西軍 pk 題,結果一定是慘不忍睹,沒完沒了的。

就像你問一個職業運動員,如果想獲得冠軍(保持企業競爭力),力量與技巧(數據與演算法)何種重要?如果這個可憐的運動員,只能選擇其中一樣 (what if you had to choose),結果是這個運動員沒有機會進入決賽。

因為技巧是為了「控制」力量、「強化」力量而存在,如果沒有力量,連基本的存在問題都無法應付了,更別談什麼競爭力,或者從競賽中奪取金牌。

所有 Data Mining 的書籍文獻都清楚明白的告訴我們,資料挖掘的目的是從大量的數據(資料)中找出對企業競爭力有用的知識(從 information 到 knowledge ),如果我只能從手裡的資料庫(數據)和分析技巧(演算法)兩者中二擇一,結局就是退回到沒有資料挖掘這門學問之前的時空裡。

所以這個 what if you had to choose 的設問,實在是近乎無理,似乎是為了確保辯論存在而硬套的問題。

雖然我不完全同意 you had to choose 的討論方式,但是從本文,以及隨後的讀者回應中,我們還是可以看到一些亮點,值得深思與借鏡。尤其是從經濟學的角度來看問題的方式,值得琢磨;而討論問題的思辨方式,也是值得我們學習借鏡的。綜合本文和讀者的回應,以下幾點特別值得注意:
  • 如果我們以供需理論來分析這兩者的重要性,比較數據和演算法,那一種比較容易取得?那一種比較稀有 (scarcity)?
  • 有人認為數據(資料)具有遞增的邊際效用,越多資料,可能發掘出更多的有用資訊,帶給我們越多的驚喜。
  • 也有讀者認為資料是快速貶值的資產 - So I would consider data (or data streams) to be a quickly-depreciating asset. If the data is worth more initially than the analysis, at some point it won’t be.
  • 我們永遠能用最低(或者說最合算)的價格「買到」優秀的人力, true or false?
  • 總之,很難說是否有一個放諸四海皆準的答案 ,有位留言的讀者說: I don't know if there's a general “which is better" answer.
  • 不過,作者的結論是:The more I think about, my gut instinct says that data is the only way to keep a lasting competitive advantage.

Wednesday, January 16, 2008

Support them in your heart !

如果你(妳)和我一樣,是個咖啡愛好者,你一定知道「肯亞 AA」代表的意義,一個網路上直銷咖啡豆的商家,用「甘甜,含有豐富果香味,濃純度佳,適合中深度烘焙,尾韻平衡持久,杯底餘香」這樣的句子,來形容這種咖啡豆的風味。

但是你(妳)知道,生產這種頂級咖啡豆的國家,最近發生了什麼事情嗎?去年底的(2007/12/27)的大選之後,肯亞國內兩個最大的種族團體 Luo 和 Kikuyu,為了「選舉不公的真相」(這世上只有權謀,只有利益,那裡會有真相呢?)爆發了流血的種族衝突事件。依照路透社的報導,到本週一(2008/1/14)為止,死亡人數已經超過六百了。

不管所謂的專業新聞媒體說些什麼,請看看這兩篇部落格文章:「鮮艷的 chery 與恐懼並存的肯亞」和「We Got Out of Kenya, But What About the People Who Live There?」吧,讓他們告訴你,在地球的另外一端,究竟發生了什麼?
In a crisis like this, in a country like Kenya, any small token of support can work wonders. Even if you don’t support Kenya with your wallet, support it in your heart. Think of the highly-educated, industrious people of Kenya, half of whom are twenty years of age or younger, and of the hopes, security, and actual prospects that they have lost in the last two weeks. Imagine yourself, or your child, in a similar situation, and ask yourself what you would do. And what you would want others to do to help you through this time.

Whether you send a prayer or a wish or an even more tangible form of support, put yourself in their shoes. Use the freedom that you have—so similar to that which the people of Kenya truly believed was theirs—to wish the people of Kenya the safety and strength to survive what is likely to be a very hard times ahead.
再說一遍也不嫌多:對於這地球上所有受苦的人們, even you don't support them with you wallet, support them in your heart

兩萬兩千伏特

看了iWoz,終於明白一個殘酷的事實,原來天才的成長過程,是那麼驚悚。我必須承認,自己不是天才的料,對於沃茲嘲笑搞軟體的人這件事,我也不知道該說什麼好....


iWoz的圖像 <<第86頁>>

有一次我被電視機的兩萬兩千伏特電壓電到,當場彈開五英呎。哇!不過,我發誓,像我們這種搞硬體的人對這種事早已習以為常。我們在成長過程中,並不像其他人這麼怕電擊。


我設計了一個輪盤電擊器。四個人把拇指伸出來,按在電擊器上,輪盤轉動時伴隨著音樂和閃光,然後輪盤轉動速度會逐漸慢下來,直到其中一人遭到電擊。搞硬體的人都會玩類似遊戲,而搞軟體的人都太膽小了。

Monday, January 14, 2008

午後的星巴克

送別

這張照片來自一個用攝影作品說故事的部落格 ,作者還有一個以阿拉伯地區文字(我看不懂這種文字,如果資訊不正確,請讀者見諒,也請懂得這種文字的方家指正)書寫的文字部落格。

第一次看到照片,就忍不住心頭激動,看到小女孩的眼神,眼角就不由得溼潤起來,那時的第一個反應就是想讓每個人都看見這張照片。但是因為擔心處理不好有侵權嫌疑,忍了兩天,最後想到用 kwout 的服務來呈現,我想這是目前我想到比較週到的作法吧(雖然這樣的作法並不完美,也不見得是最正確的,點擊下面的照片,可以看到解析度更好的照片,或者直接到作者的部落格看更多作者想說的故事)。


Conventioal Wisdom 的陷阱

蘋果橘子經濟學今天差點鬧了個大笑話,在念蘋果橘子經濟學的時候,作者在第三章 ─為何毒販還和母親住在一起 ─ 提到問問題的方法的第一步就是確認問了好問題,並且說從大眾所相信的想法,也就是傳統智慧著手,於不疑處有疑,是個不錯的起點。因為如果你問的是大家真的在意的事,又找出讓人意外的答案─也就是說能推翻傳統觀點─情況就精彩了

作者又說所謂的傳統觀點(conventional wisdom),是著名經濟學家 John Kenneth Galbraith (一般譯作高伯瑞或蓋博瑞斯)在他的著作中所創。我腦子裡轟然一響,以為看到一件不可思議的謬誤。

我一直以為 conventional wisdom 這個詞就和 cliche 一樣,是個歷史悠久的詞,是在語言的長河中自然流淌出的鑽石,經過許許多多無名先人的琢磨,自然而然生成的智慧結晶,怎麼可能是近人所創?我幾乎要懷疑選擇這本書消磨時間是不是正確了?

上網查證之後,發現我犯了很嚴重的「想當然耳」的錯誤,在維基百科的解釋裡,斬釘截鐵的說 conventional wisdom 這個詞彙,是 Galbraith 在他的著作 The Affluent Society 裡提出來的,是指廣被多數人所接受的想法或意見 ─ ideas or explanations that are generally accepted as true。

在耐著性子多翻閱了幾頁搜尋結果後,更發現有不少部落格作者,提到高伯瑞與這個詞的淵源。

這時候,我只想到紅樓夢賈政的那句話:『
無知的蠢物! 你只知朱樓畫棟,惡賴富麗為佳,那裡知道這清幽氣象。終是不讀書之過!』

回到蘋果橘子經濟學,究竟傳統觀點和問個好問題有什麼關連,蘋果橘子經濟學的作者引述蓋博瑞斯的話,說明傳統觀點為什麼是接納新思想的障礙:
他指出:『我們總是把方便的事權充真理,要不然就是最符合個人利益或福祉的事,或是可以免掉我們辛苦努力或諸多不便的事。我們也非常歡迎最能提升自尊的事。』他也指出,經濟與社會行為『都很複雜,要瞭解其中氣質很傷腦筋,因此我們緊抓住足以代表自己理解程度的某些理念,好像那是救命的浮木。』
因此,作者解釋說:
在蓋博瑞斯眼中,傳統觀點必定簡單方便,讓人舒服、放心─只不過未必真實。當然說傳統觀點全部錯誤絕對言過其實,只不過觀察傳統觀點在哪些地方最容易出錯─比如注意某些思想所露出過於草率或自我中心的蛛絲馬跡─倒是提出問題的適當起點。
有件事倒要好生琢磨,今日所犯的錯,是否也是我心中所認可的 conventional wisdom 在作祟呢?

Tuesday, January 8, 2008

不動筆墨不讀書

在網路上看到「不動筆墨不讀書」的說法,心裡不由悚然一驚。

通常人對於自己缺少,或是作不到的事物,特別有感覺,無疑這句話,正是我的痛腳、心頭的隱傷。

以前的讀書人,特別喜歡作筆記、札記,學問精深的人,連札記都可以出好幾十卷書,讓後代的學者們,忙上一輩子。對於這些有學問的前人,我是深深佩服的,不僅敬佩他們的淵博,也佩服他們對於作讀書筆記這件事的執著,可以一輩子貫徹到底,或許這就是他們之所以學問有成的緣故吧。

前人飽含智慧的訓示,我是直到這兩年才深有體會,馬齒徒長,記憶力漸漸不如年輕時牢靠,偏偏我這幾年必須動筆的,從用過即丟的電子郵件、部門備忘錄,轉變成不可無一字無來歷的學術性文字,這可吃足了苦頭。每回折騰一陣子,就發誓要好好作筆記,但是每回結束一個工作,大口喘氣之餘,又把適才的誓言拋諸身外。

所以關於讀書筆記這回事,我仍然想得多、做的少,書房角落裡隨意拋置,只寫了兩三行字的筆記本,完全說明了這件事實。時代變了,作筆記的工具當然也要與時俱進,所以電腦裡安裝試用了各式作筆記的專用軟體,不管是 OneNote、 EverNote 、MyNotesKeeper 還是 xxxNote ,最後都是只記了一則沒有文法,沒有意義的測試文字。

事實擺在眼前,瀟灑救不了我,今後務必要老老實實作筆記,勤動筆墨也勤讀書,才能不誤人誤己

這是2008年的第一個心願,也是今年最重要的一件事

[詩戀] 方知一杯酒,猶勝百家書

不想說什麼了,讀詩吧:


 
閒居/高適

柳色驚心事
春風厭索居

方知一杯酒
猶勝百家書


Monday, January 7, 2008

Google favors recent contents ?

It was January 1st, 2008, then. Google Operating System pointed out that there's an interesting change in Google's search result - the preference in favoring recent contents. TechCrunch immediately published the post "The Google Algorithm Is Changing" highlighting the discovery of "update on algorithm".

If you're tired of reading the articles filled with the similar sentences describing the changes made by Google and comments on the impacts caused by the update. Try the video released by WebProNews. If a picture paints a thousand words, what about a video?



It's not quite clear that when Google changed their algorithm and how it will change the world. After reading TechCrunch's post, I turned off my laptop and went out for a walk with my daughters.

Sunday, January 6, 2008

The "dangers" of blogging

現在是說實話時間,男性的部落客(博客)們要小心了,一位在矽谷很活躍的投資者 Yossi Vardi 發表了一篇演講,他說除了 Global Warning ,我們也要關注 Local Warning 問題 ─ 小心,The future of your gene is in danger !

Yossi 苦口婆心地告訴聽眾:
it's time again to talk about some inconvenient truth,

a truth that everyone is concerned about, but nobody is willing to talk about,

somebody
HAS to take the lead...
想瞭解真相,請線上觀賞下面的影片,或是下載演講影片,再慢慢欣賞。 Have Fun !



Friday, January 4, 2008

推薦系統的分類(2008 Edition)

去年下半年我寫了一系列文章介紹推薦系統(Recommender System)的運作和各方面的影響,在檢視 FeedBurner 的點閱資料之後,發現推薦系統的分類是去年被點閱次數最多的文章。

但是重新審視這篇文章,發現有許多含混不清,甚至有些文字可能會產生誤導,不禁大為赧然,冷汗直流。趁著08年開春,重新改寫這篇文章,希望能讓推薦系統的輪廓更清楚具體,更易於理解,也少一些錯誤。

Netflix Prize 滿週年了這篇文章裡我介紹了一個數學模型,以量化(消費者以數字表達喜好商品的程度)消費者行為的切入角度,描述推薦系統的運作機制。

雖然以數學模型來定義(或者說描述)研究對象的特性與運作方式,是許多學者很喜歡用的手法,但是這樣的方式對於一般的讀者而言,畢竟缺少了點人味兒。接下來,我們試著理清「推薦系統是怎麼運作的」、「究竟有多少種推薦系統」,讓推薦系統這個東西更具體一點,更有人味一點。

所以,本文我要談談推薦系統的分類(Taxonomy)。

消費者的角度:Personalization, Social, Item, Hybrid....

ReadWrite/Web 的專欄作者Alex Iksold 在07年初發表的 The Art, Science and Business of Recommendation Enginesn Engines 裡,以消費者使用服務的觀察角度,將推薦系統分為四類:個人化推薦同儕式推薦產品導向推薦以及綜合前述三種技術的綜合推薦。這種分類方式,和學術界以使用資料的方式為切入角度的分類法,有令人驚訝的對應關係。
The main approaches fall into the following categories:
  • Personalized recommendation - recommend things based on the individual's past behavior
  • Social recommendation - recommend things based on the past behavior of similar users
  • Item recommendation - recommend things based on the thing itself
  • A combination of the three approaches above

這篇文章有簡體中譯版,有興趣的讀者,可以到譯言去找這篇文章來看,文章的標題是「网站推荐机制中的艺术、科学与商务问题」。Beyond Search 也有關於這篇文章的精彩說明,建議大家也可以看看 Beyond Search 的文章(可惜這個部落格好一陣子沒有新作了)。

學術界的分類

每種分類方式,都有各自的思考邏輯與侷限,也都可能有模糊和不能明確區分的盲點,不同的分類方式之間,也未必有清楚明確的對應關係,這是這無礙於我們對事物本質的理解,重點在於弄清楚分類的思考邏輯與切入方式。

在這裡,我們用一種直覺的方式,以研究者切入推薦系統研究的歷史進程,來看推薦系統的分類與演化,個人覺得是個不錯的閱讀策略。

當研究者和企業經營者開始進行推薦系統的開發研究時,首先看手上有多少資源可以使用,所以先嘗試從消費者的個人資料和過去的消費紀錄,推估消費者對於不同產品的反應,做出推薦系統的先驅產品。

這種方式,過去的學者叫做 Content-based approach 推薦策略, Alex 將之稱呼為個人化推薦。因為是以消費者個人的資料作為推理基礎,稱做個人化推薦並無不當,不過相較於今日用戶在網路上能見到的各式花俏的個人化服務,此處所謂的個人化,可能會讓用戶有點失望,略嫌陽春了點(grin)。


(典型的 content-based recommendation - Amazon.com has new recommendations for you based on items you purchased or told us you own. )

Content-based 策略優點是直覺、易於理解,但是缺點也很明顯。因為這種策略用白話來說,就是蒐集一大堆關鍵字(關鍵字當然越多越好),然後以資料挖掘(Data Mining)技術在關鍵字中間找出關係(大家是不是嗅到一點關聯法則的味道了?)。

有時候,有些與消費者有關的敏感資料,是很難蒐集到的,尤其在日益重視消費者隱私的今日,這是一個很麻煩的議題。其次,以這種策略建立的系統在遇到新會員、新產品項目時,就無所適從了,道理很簡單,沒有見過的關鍵字,系統不可能知道怎麼辦的(有人叫這種狀況 cold start)。

所以研究人員嘗試將視野放到所有會員、產品的資料庫,彙總眾人的消費習慣,得到預估的數學模型,作為推薦系統的基礎,這樣的策略,被研究者稱為 Collaborative filtering(簡稱 CF) ,因為是運用眾人的消費習慣做推理基礎,不是用個人(individual)的資料作為推薦引擎的燃料,所以用 collaborative 這個字眼。

不過 CF 的設計策略,又有兩種不同的切入角度,第一種是分析整體用戶資料,用各種計算方式找出計算不同消費者「背景」、「品味」、「行為」是否相似的數學模型,針對特定消費者,我們找出與之「相似的消費者」,使用這些背景「相似度」的用戶的行為,來預測特定消費者面對不同產品的喜好。過去研究者稱呼這種作法是 User based CF,這就是 Alex 所稱的 Social Recommendation 。

有一點要特別提醒諸君,此 social 和現在甚囂塵上的 social network 不一樣,千萬不要誤會了。我們到目前為止,所討論的推薦機制,基礎是量化後的銷售資料和消費者背景資料,不是基於交談、互動等等真正意義上的社群行為。雖然因為 Digg 和 Del.icio.us 服務的崛起,讓 Social Filtering 這個研究課題也走進舞台,步入聚光燈下,但是目前的研究成果,與 CF 領域的成熟度還是不能相比的。

(上圖左方是 Anobii 的例子,以產品特性去找出類似產品,典型的 Item-Based Approach ,右邊則是典型的 User-Based Approach , 這個作法的典型呈現就像這個範例 - 其他購買 XXX 產品的顧客,都買了 YYY,所以我們向您推薦 YYY)

CF 的第二種策略,和第一種很相似,只是轉個角度,從產品的相似度切入,這就是 Alex所稱呼的 Item recommendation,學者則稱呼這種方式叫做 Item-based CF。著名的 Amazon.com ,就自行開發了 Item-to-Item 模式的演算法(請參考拙作[1,2]的介紹),作為其推薦系統的核心構成元件之一。這是目前在業界很受歡迎的策略,因為使用者的資料可能很難取得,但是產品販賣者應該擁有完整而詳細(這是我們對賣方的基本假設,如果賣東西的人,手邊沒有足夠好的產品資料,那就沒戲了)的產品資料,所以用 item-based 策略分析交易(transaction)資料和產品規格資料,可以玩出不少花樣。這是 Amazon 的選擇,也是得到 2007 年 Netflix Prize 年度獎金BellKor 團隊的選擇。

如上圖所示,CF 的兩個策略,分別從用戶和產品兩個角度切入

不論是以消費者個人歷史資料為計算基礎,或者以眾人的口味來推斷個人的喜好,都有其侷限,所以不論是學界還是產業界,都嘗試將以上的技術結合在一起,這就是 Alex Iksold 所說的 Combination of three approaches above,學界一般稱呼這種作法為 hybrid approach。我們在 Alex 的文章裡可以看到,Amazon 既運用了 Personalization (content-based)的技術,也使用了 Items Recommendation ( Item-based collaborative filtering),這就是一個典型的綜合(hybrid)式推薦系統。

以上的脈絡其實很清楚,從消費者個人的資料入手,發現不足後,然後開發運用所有消費者資料的方法,繼而整合之前所開發的技術,這就是所謂的綜合(hybrid)策略。 Alex Iksold 的說明,用一般(非技術背景)讀者更易理解的文字,說明推薦系統的運作和分類,將這個思考脈絡,作了更佳的包裝。

如我在上文的說明,分類方式並不是唯一的, Beyond Search 的作者,以演算法的角度,作了更細的分類。2007年五月/六月份的 IEEE Intelligent Systems 雜誌,Guest Editor 做的導言,和另外一篇文章 Comparing Recommendation Strategies in a Commercial Context ,也有不同的分類陳述,精神大致相同,但是都有微小差異。總之,掌握自己的理解脈絡是最重要的。

演算法有多重要

不管如何分類,我們知道演算法(Algorithm)是推薦系統的核心,但是演算法如何能保證推薦系統的成功?

Collaborative Filtering 的模型裡,最困難的是相似度(Similarity Measure)的計算,能夠精確有效的計算產品間或消費者之間的相似程度,才能保障接下來的預測和推理是有效的。眾多學者為了克服這個挑戰,應用來自不同領域的數學背景知識,開發出許多相似度函數模型。但是有了這些精緻而複雜的數學公式,是否就能建設一個有效的推薦系統。

相似度的計算,其基礎不僅在於數學功力的精深,因為數學模型的目的是用建構出來的數字「逼近」現實發生的狀況,必然有其不足和限制。真正影響這個函數表現的,還是在於「事實」的根據 ─ 原始資料庫的品質。因此,有幾個關鍵問題是我們所必須關心的,比如說:
  • 資料庫的資料是如何收集的?
  • 資料的深度和廣度如何?
  • 內容的正確性和時效性如何評估?如何保障?
  • 每個欄位的意義為何?
  • 是否有人能精確解讀為何這些欄位能描述消費者(或是產品)的特性?
  • 很多產品有不同的包裝版本,甚至同樣的版本,也可能在資料庫裡有兩筆以上資料(想像一下書籍的普及版、精裝本、典藏版, etc),我們如何知道這些都是同一個產品?(這在業界叫做 item authority)
  • 為什麼我們要關心這些或那些欄位?
  • 那些資料欄位對我們沒有意義,不需關注?
所以,要建設一個成功的推薦系統,最重要的前提,是確定我們有一個有效的、有意義的資料庫,還要有一個(或一組)真正懂得產業 know-how 和資料庫技術的專家,才能正確、有效的運用我們已知的演算法,將之效用發揮到最大。而這一點,恰是許多產業界專案失敗的真正原因?

Google 的研發部門主管(Director, R&D),也是人工智慧領域的大師級學者 ─ Peter Norvig ,有回演講提到這個議題,他的看法是 Worry about the data before you worry about the algorithm

Rather than argue about whether this algorithm is better than that algorithm, all you have to do is get ten times more training data. A..........

Worry about the data first before you worry about the algorithm.
請容許我如此解讀,優秀的演算法,需要大量資料(大陸那邊習慣說海量數據)來澆灌,離開真實世界的演算法,終究如鏡花水月,作不得真所以成功的推薦系統,成功的基礎是充足、有效的資料,和真正懂得產業門道的分析師

Wednesday, January 2, 2008

[詩戀] 鄭愁予/定

看到鄭愁予落籍定居金門的消息,不由得想起高中時,瘋狂的讀著愁予的詩,為著「誰傳下詩人這行業/黃昏裡掛起一盞燈」而感動的竟夜不眠。

因為家中變故,我的青春期過得並不輕鬆,只有大量瘋狂的,幾乎是囫圇吞棗式的閱讀,才能讓我躲到一個安全的,能夠感受到希望的象牙塔裡。

那時,和我感情最深相交最篤,一起瘋狂的愛著閱讀的同學,則鍾愛余光中的詩,連國文課的作業都以模仿天狼星風格的詩作交差。我則對於鄭愁予的詩作格外心儀,但是我一直只是個讀者,沒有試著跨過那條線(也許我試過,只是發現自己辦不到)。

後來的故事很老套,一點都不出奇。就像陶淵明的詩,「誤入塵網中,一去三十年(有那麼久嗎?)」,我們選擇不同的道路,各自用自己的姿勢,走到中年之前的邊緣。

那個沒有作成詩人的同學,後來唸了法律,先是考上檢察官,然後做了律師,現在是個大忙人。我則唸了數學,然後進入資訊界,瞎攪和了十來年,發現自己的身體不堪負荷,健康狀況弄得一塌糊塗,最後選擇回到學校,進入另外一個大家公認的象牙塔。

這兩年,在校園裡沉潛,找回年輕時閱讀的悸動,所以念起各種「閒書」格外起勁。只是每當被問起論文的進度,那種「不務正業」被抓包質疑時的赧然,與年輕時的感覺竟然一模一樣(一笑)。無論如何,對於鄭先生的人和詩,我都是心懷感恩的。

或許是巧合,從年輕到現在,鄭先生的詩作中,最有印象,一直還能背誦的詩,竟然是


我將使時間在我的生命裡退役
對諸神或是對魔鬼我將宣佈和平了

讓眼之劍光徐徐入韜
對星天 或是對海 對一往的恨事兒 我瞑目

宇宙也遺忘我 遺去一切 靜靜地
我更長於永恆 小於一粒微塵

如果我的心是一朵蓮花

~ 林徽因 · 馬雁散文集 · 蓮燈 ~ 馬雁 在她的散文《高貴一種,有詩為證》裡,提到「十多年前,還不知道林女士的八卦及成就前,在期刊上讀到別人引用的《蓮燈》」 覺得非常喜歡,比之卞之琳、徐志摩,別說是毫不遜色,簡直是勝出一籌。前面的韻腳和平仄的處理顯然高於戴...