今天,我意外地發現Google Calendar中搜尋公開日曆的功能被拿掉了。一開始,我只覺得訂閱的一些日曆都沒有什麼更新,於是連到Google Calendar頁面去檢查,才發現這件事。上網查了一下,原來Mozilla Taiwan討論區也有人在討論,看來真的是被拿掉了。不過,反正Web 2.0的精神就是使用者產生,山不轉路轉,所以Public Google Calendars這類網站便應運而生,暫時替代一下原本的功能。但是,這也讓我驚覺:如果有一天,我所依賴的網路服務突然消失了,怎麼辦?

這些事的確可能發生也正在發生當中,比如我所遇到的這個問題。更慘的是這位美國老兄,在無預警情況下,他的Google帳戶就被封掉了,該死的是,他把許多重要的資料都放在上面。也許,養成良好的備份習慣可以減輕這種突如其來的痛苦。但是更多時候,我們需要的是這樣的服務及功能。前兩天剛好是4/1愚人節,連噗浪也在河道上官方發表了這樣一個笑話。還好,這只是愚人節的應景把戲,否則,我們哪裡再去找另一個相同的網路服務?哪裡能擁有相同的網路社群人脈?

可能有人會認為,在這個時代,同質性的網路服務一大堆,大不了換另一個來用,我也很希望一切都能這麼美好順利。即使有同類網站,我們也必需適應新的UI;就算UI的設計大同小異,我們還要保佑擁有同樣良好的速度表現及穩定性。當然,我們要記得備份資料然後轉移到新站,如果是社群網站的話,那還得一一通知原來認識的朋友一起搬過去才行。在某些情況下,像是在一個大網站中停掉幾個小服務,除了接受,沒有其它辦法,無可奈何。

有時,我們也不能太苛責這些網路公司。畢竟,關掉沒有獲利的服務是正確的商業決策,即使這些服務真的作得很好。解決的方式,有些可以採用會員收費制,有些卻不行。端看收費會員人數是否足以支撐起開發成本,否則即使收費,仍難逃最終結束服務的下場。比如我很喜歡的Google 大眾運輸服務,我就很懷疑收費有沒有效,或是有不收費的business model?但是這類服務,也只有少數公司有能力作到,一旦哪天分析後發現沒有獲利前途,隨時停止都有可能,並且也很難找到替代網站或服務。

我想起經濟學中有所謂的公共財,這些設備通常都是由政府提供,諸如公園、各縣市立圖書館等等。因為企業很難有動機去生產這類設施,也沒有辦法從中獲利。既然硬體可以如此,軟體或是網路服務為什麼不能有類似的概念?比如我愛巴士5284就是一個很棒的例子,是由政府單位指導成立的。如果政府好好計劃,應該可以有很多很棒的官方網路服務,把資料與功能分享給所有人,而且不用擔心會突然中斷的問題。

網路的發展才剛起步,網路服務不斷地出現也不斷地消失。因為網路服務突然消失或更動而造成不便的問題,之後肯定會慢慢引起注意。我相信,這不是單靠業界的商業模式就能解決,也許將來的趨勢會朝向某些好用或重要的網路服務,也由政府機構來建立與維護。應該說,這種服務太重要也太必要了,怎麼可以交給企業呢?

從Mr.6事件談名人效應

最近,應該說其實也有一陣子了,如果有看過Mr.6的Mr.6正式回應最近在網路的一些批評(一)這篇文章,可能會覺得一頭霧水。其實這個事件說穿了,也沒有什麼,就只是一群部落客對Mr.6的意見而已。尤其是在Mr.6開了一門所謂給創業家上的程式設計課程後,就在網路上引起了一些聲音。想要比較清楚了解的話,可以看知名部落客不來恩的我們都需要重新學作「網路人」!這篇文章,裡面有列出一些相關連結,看完後應該就可以大致了解了。

我覺得不來恩的這篇文章很誠懇,但是也太過客氣了。文章中說實際上很多「網路人」並沒有因為這些不便或侵擾而得到什麼好處,真的是這樣嗎?在不來恩的另一篇文章─踢爆!台灣最值錢的前300名部落格!裡,可以看到排名前幾名的部落格是多麼有價值!其中排名在內的部落客BillyPan就在回應中說,加1個零我也不會賣…,可見在部落客的心中,價值還遠超過那個公佈數字。 誠如BillyPan所說,要花多少錢買關鍵字廣告,才能創造相同的流量。而且,這個數字還是要天天買,一直買才行

這個流量還只是部落格的部份而已,真正有價值的是那個名氣!以不來恩為例,他的名氣使他在像噗浪或是推特這類網站上也有一大群的追隨者。也許有人會認為,這有什麼用呢?有,而且是非常有用!這些名人在噗浪上的一個問題,通常都會引來一大票網友的回應。這種回應給他帶來了許多便利,比如可以很快速的解決問題,甚至還可以作簡單的問卷調查,或者是其它網友可能會主動提供許多有用資訊等等。像彎彎或女王,還因為知名度,被電視媒體請去上節目、拍廣告等等。更重要的是,名人的部落格對一群人有宣傳力,如Mr.6的文章相信也對不少人產生了影響。其所開設的程式課程,也因為名人的光環,招攬了一些學員。如果不是內容太差,可能還可以得到一筆可觀的收入也說不定。

也因此,我並不是很認同這次Mr.6的回應,雖然我也固定看他的文章。我認為既然有了一定的影響力與隨之而來的一些好處,在心態上就必須要接受你也會被更多人拿來作檢驗的事實。當然,隨著名氣越大,有些部落客就幾乎與公眾人物沒有兩樣了。到了這種程度,就連個人的隱私其實都很難保持,這是公眾人物的權利也是義務,並沒有什麼好不滿的。即使不滿,現實也無法改變,大家就是會對你好奇,就越會引來更多可能的問題,也更必須注意自己的行為。

最後,我想陳幸妤到美國對記者發飆的事情,很多人都知道。我也是同樣的想法,當妳身為公眾人物的時候,面對媒體,其實沒有什麼好不滿的。如果妳投的文章,每次都可以登上自由時報的版面,這難道是一般人所能享有的特別待遇嗎?所以,在考場外碰到記者,應該也就不足為奇了,尤其是在現在這種時刻。

DEPTA論文報告後有感

這個月中,是碩二要提proposal的期限。老師丟了一篇MMDays轉載以前台大教授寫的如何寫論文:論文的起點文章給我們看,應該是希望我們可以多學習一下。這篇文章我剛好稍早前有看過,覺得寫得很好。看完後對裡面作研究的survey方式很表認同,也正打算這樣下去學習。然而,嚴格來說,我對目前要作的與Web IE相關領域的學習,從這個學期才算正式開始接觸,因此時間上變成有點緊迫。

即使進入這個Lab已經第二年了,但是第一年卻幾乎沒有修過任何與Lab研究領域有關的課程。因此今年老師回國開課,加上另一位新老師也剛好開了相關課程,我就全部都去旁聽了。若在算上自己選修的一門課,我總共上課的時間還比研一的學弟妹們多。但是大部份都是相關,並且我也很有興趣,所以雖然占了非常多時間,我還是認為值得。

可惜的是,老師回國後沒有開IE/IR的課程。這樣在Web IE這個領域就變成完全要自己閱讀摸索,可以想見的是,進展不可能太快。從一開始看老師寫的survey paper感到很吃力到後來慢慢比較可以深入了解,這中間是需要一段時間去消化與累積的。直到這學期末,我覺得差不多比較有點感覺了,想開始深入閱讀相關經典的研究論文時,提proposal的日子卻逼近了。

對我而言,要把一個proposal提出來是不容易的,至少前面的survey閱讀要作足功夫。如果不然,這樣提出來的proposal也很有問題,連我自己都不能接受。至少在相關論文的閱讀上都要有,而且還必需能夠比較分類,這都必需把paper深入閱讀並思考不可。而我目前就正是在作這個suvery與研讀的階段,雖然我很希望可以在時間內提出,但是目前實在是作不到,這是讓我感到遺憾的原因。

可能我不是最認真的,但是我是花很多時間在學習的。比如旁聽課程,有不懂的部份,我可能會自己再重看課本一遍,或是去圖書館查資料盡量找出解答。論文報告上,我盡力把整篇內容看懂,接著把我看完的內容盡量表達到別人可以聽得懂的程度。有好幾次,我星期一從台北趕來晚了一點,為了不缺席而沒聽到課程,還坐計程車趕到學校。

不過,最近在報告DEPTA這篇paper時,針對某些情況的case,有跟老師討論了一下。最後快結束時,老師說我的投影片似乎沒提到一些比較細節的部份,像是Tree Edit Distance等。我當時並沒表達好我的意思,可能讓老師以為我不懂這部份所以沒放進投影片。老師告訴我:不能因為你不懂那部份,你就不把它們放到投影片裡。這句話讓我感到失望,至今仍存著很無奈的感覺。我只是很單純的覺得,在paper裡只是作一個概念性的介紹,在過程中就已經有包含到這樣的意味了。所以我不是很清處,為什麼特別用一小段來講Tree Edit Distance,也覺得不是很必須要特地提出講。

李開復先生曾說過一句我很喜歡的話:或許我可能表達不好,但是我絕對不能容忍別人認為我沒有思想。我自問我不是逃避問題的人,否則我也不會把報告DEPTA時覺得不是很了解的case拿出來提;我自問在學習的求知欲上是很渴望的,否則也不用課堂上有問題,課堂後還到前面去問老師或是再去圖書館查書。而我會把Web IE相關的經典論文拿來作報告,也正是希望老師在我報告的時後可以驗證一下我理解上是不是有錯誤。因為我希望,讀完一篇論文是扎扎實實的,而不是應付了事的。

最後,我還是很感謝老師。因為在報告中老師給我的指導,讓我回去想了一個晚上後,終於知道應該可以怎麼解決。我真誠的希望,我能夠至少把一個議題有比較完整的了解,在我畢業之後。

12/11 論文報告─FivaTech

這一次閱讀的論文是以前Lab中博班學長與老師所發表的,論文題目是FivaTech:Page-Level Web Data Extraction from Template Pages。目前Lab中的研究還有使用到以本篇論文技術為基礎的系統,但是仍然有些問題需要解決。如果這個系統能夠維護好並擴展改進的話,對未來網頁資料擷取的許多應用相信將很有幫助。

由於往相關領域閱讀論文,因此理所當然的要先了解自己Lab有在使用的系統。另一方面,也正好給大家介紹本篇論文所採用的技術。我第一次看這篇論文時,看的是只有6頁的版本,幾乎很多地方都不能了解。在看了以前學長在相關領域方面的一些研究論文之後,加上老師給了我另一個34頁比較詳盡的版本,多看幾次才總算比較清處的了解整篇論文在講什麼。

最早Web IE採用的是supervised的方式,必須依靠人工標註才能產生擷取資料的規則。後來Dynamic Web的研究往Template-based的推論方向發展,產生了一些unsupervised方式的論文。FivaTech就是其中之一,它可以透過多個擁有相同Template的頁面來推論出其結構,也因此把這樣的方法歸類為Page-Level。

FivaTech以多個網頁作輸入,最後產生共同的Template、Schema及個別的擷取資料。Template及Schema是以樹狀表示,與網頁的DOM Tree形成較一致的表現,其核心過程主要分成兩個較大的部份:Tree Merging以及Schema Detection。Tree Merging部份又可細分出四個小部份:Peer Node Recognition、Multiple String Alignment、Tandem Repeat Mining及Optional Merging,經過這四個步驟後會形成所謂的Pattern Tree,接著利用它來作下一階段的Schema Detection。

Peer Node Recognition主要是用來決定輸入的Tree中第1層(假設root為第0層)Node間的相似程度,相似程度大於某個門檻值以上則給定相同的代表符號(比如用英文字母a、b、c...等),相同代表符號的node則屬於peer node。peer node辯識的準確性可以說是最為關鑑,在同一個DOM Tree中,peer node代表了資料樣式的重覆,可能是data rich區域;在不同DOM Tree中,peer node的意義可以用來推斷Page間共同的Template。不過在論文中並沒有提到門檻值應該設多少,而這個門檻值怎樣設可以產生最好的結果?是否可以適用在所有情況?是我感到比較疑問的地方。因為peer node的判斷直接就影響了後面的所有步驟,只要稍有不同,產生的結果可能就差很多。

決定出peer node後,下一步就是Peer Matrix Alignment。這個階段的工作就是把不同Tree的第1層node依序並排,然後取出每一行(同一個Tree)中兩個相同符號的node(peer node)間距離最大的值,裡面的最大值定義為span。接著對於span值大於0的符號node,盡量將其每一行的距離調整成span的值(最大可能循環長度);剩下部份則盡量把相同的符號在每一列間對齊,node往下移動調整過程中空出的位置可以看成是missing data。要補充說明的部份是,對齊除了可以是相同符號(空出的部份不算),也可以是不同的文字node。

在對齊步驟過後,可以得到一個Node List用來代表不同Page間的共同樣式(Pattern)。接下來就可以對此List作Pattern Mining的運算,將重覆的pattern壓縮起來。最後再根據不同的node在所有DOM Tree中的occurrence vector概念,由vector不一致(值不全為1)的node決定出哪些node是optional(不一定會有的資料),這個過程稱為Optional Node Merging

以上四個步驟從root往下一層層的作下去,最後將會形成一棵fixed/variant Pattern Tree。由此再將tree中的每個node分類並決定其order,則可以得出最終的Schema格式。至於Template的產生部份,先以規則決定出參考點(用來當作template間的分界),再依此劃分出各個小範圍的Template,最後產生出與Schema相對應的一整組Template的表示法。這部份規則就不再說明,有興趣的話請參考投影片。

最後是本次報告論文的投影片:


Semantic Web─從Web 2.0到Web 3.0之路?

今年11月號的科學人雜誌中文版有一篇文章很吸引我,文章的標題是─新興學門:資訊網科學(Web Science)。翻了一下,發現裡面就提到了Semantic Web的研究與應用情境,效果非常強大且完美。最近,在科學人雜誌網站上看到Web 2.0下一步:從群眾智慧到人工智慧這篇文章,讓我對機器與人類在Web上將資訊收集與整合的效用這類問題上,又開始思考了起來。

起初,我對Semantic Web的認識也不深,只大略知道最基本的條件是,在網頁上放進一些所謂的meta data。meta data簡單來講,就是描述或說明資料的資料,而這些描述或說明不僅僅是人類看得懂,還必須是機器可讀的。這樣的好處在於,透過meta data我們便可以賦予資料某些語意;透過這些語意,機器便有可能去作推論。最簡單的例子之一,像是Google Scocial Graph API所支援的XFN描述,就可以很容易的推論關係。

後來,拜這學期Web 2.0課程之賜,對Semantic Web有比較綜合性的介紹,才知道原來對資料作語義上的描述還有很大的學問,並不簡單。這些描述對推論的限制與設計的彈性有直接的關係,由此逐漸發展出了RDF、RDFs以及OWL這些metadata data model。在RDF中,透過一條條的陳述(statement)建構起語意網絡,而每條陳述(statement)由主體(subject)、謂詞(predicate)以及客體(object)三個元素組成。主體(subject)或客體(object)代表Web上的某個resource,藉由URI可以達到唯一性的辨識功能而不會產生混淆。謂詞(predicate)則是用來關聯主體(subject)與客體(object),也可以稱為屬性(property)。RDFs進一步引入了物件的概念,使得語義的表現上更契合於真實世界的情境。OWL則加入了更多的限制與物件間關係的描述如disjunction,可以更有利於語義的萃煉。

在過去Web 1.0的時代,如果要擷取或搜尋網路上的資訊,利用Search Engine的IE(Information Extraction)與IR(Information Retrival)技術似乎是唯一比較可行的方法;到了當今Web 2.0概念當道的時代,可以經由RSS快速的匯集想看的資訊於一處,也可以像Social Bookmark網站一樣採用群眾智慧的過濾機制(推文與收藏)與分類方式(tag)取得資訊,或是從社群關係連結的角度對資料作分析;在邁向未來Web 3.0的趨勢上,也許會在以Semantic Web建設的基礎上,再度利用人工智慧、Data Mining的方式作自動化的資料分析。

不過,Semantic Web的語義描述設計可能需要專門人員,並配合相關領域知識才能建構得好,這恐怕是廣泛存在的一個最大挑戰。然而,這是無可奈何的必須成本。把簡單的工作放在資料產生,把困難的資料收集交給機器去作;或是在資料產生的過程中分擔一點成本,讓資料收集與推論上可以輕鬆一點。我原來很看好Web 2.0與相應的群眾智慧機制,在資料的產生上沒有任何改變,在資料的過濾與收集上也不會太困難。但是群眾的選擇卻很容易形成偏差,很有可能造成少數人的看法決定多數人的意見。

掌握越多資訊才能在競爭下越有利,各種方式的進展,都可以再深思與討論。未來,我們能把資料應用分析到怎樣的程度呢?

Blogger Templates by Blog Forum