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與相應的群眾智慧機制,在資料的產生上沒有任何改變,在資料的過濾與收集上也不會太困難。但是群眾的選擇卻很容易形成偏差,很有可能造成少數人的看法決定多數人的意見。

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

學習,並不簡單

有好陣子沒有寫blog了,其實有許多想法與學習心得想一一寫出來。不過寫文章頗花時間,這些時間拿來閱讀豈不更好?由此可以衍生出一個問題,為什麼要花時間在部落格寫文章?當然,對不同的人來說總是有不一樣的原因,但簡單來說可以用兩個字來概括─誘因。比如,互動的樂趣就是其中一個,這也是很多部落客可以一直寫下去的動力。

這一學期對我來說收獲很大,除了對機器學習相關領域與數學方面有更多的認識之外,在論文的閱讀上也逐漸能體會到比較深入的程度。也因此,我越發覺得研究實在不易;當我學習越多,我越感到認知的渺小,甚至在不同時刻對同一件事都可能有很不同的理解。這學期初開始接觸關於IE領域的知識,一開始我讀了自己老師所寫的一篇很經典的survey paper。當時對那方面完全不了解,讀起來遭遇許多困難,只能懂三成左右。後來在讀過一些相關的論文後,現在回過去看,許多以前不解之處終於比較可以體會。經過這學期的修課與論文研讀,我才開始覺得自己在實驗室相關領域比較能夠掌握。

有些時後,我也很訝異於許多同學的自信。往往,他們其實對某些理論並不是很了解,但卻可以很肯定的告訴你就是這樣。這種現像在論文報告時更明顯,我起初不太能夠體會老師在聽報告時的批評,但是隨著理解能力的提昇,我發現某些報告的確是似是而非。最主要的原因在於,對論文沒有真正的深入思考,只是在很表面的文字上作閱讀。也因此,在我聽完這些報告,反而產生許多疑惑,更不了解該論文的精義。另外一些時後,情況正好相反。台下的人跟不上台上報告者的程度,但是卻好像以為自己懂了。我曾在修課時請教過同學問題,他們的回答很篤定且帶著一點輕視,好像這問題很簡單似的。我雖然感到懷疑,但也不能肯定,後來再去找老師請教或花時間去思考後才發覺完全不是那麼一回事。

我告訴自己,確確實實地學習才有助於能力的提昇,我期許自己能持續地在各方面都不斷成長。可能需要花很多時間,但那不會白費功夫,現在回想起老師曾對我說過,我不介意你花很多時間把這個部份弄懂,更能感受到一個過來人對學習新手的懇切建議。

Blogger Templates by Blog Forum