Trong nghiên cứu luận văn thạc sĩ của tôi, chúng tôi tập trung vào tìm kiếm các đối tượng trên web, một hướng mới quan trọng kể từ truy hồi tài liệu truyền thống.. Tuy nhiên, khác với câ
Giới thiệu đề tài
Phát biểu bài toán
Ngày nay, cách phổ biến để tìm kiếm thông tin là sử dụng các động cơ tìm kiếm như Google, Yahoo hay Bing Tuy nhiên kết quả trả về của các động cơ tìm kiếm thông tin này chỉ là một danh sách các URL của các trang web Người sử dụng phải duyệt qua các liên kết để tìm ra thông tin họ cần Rõ ràng đây không phải là cách tốt nhất để tìm thông tin từ Internet Sẽ là tốt hơn, nếu động cơ tìm kiếm trả về kết quả trực tiếp liên quan đến câu truy vấn của người sử dụng, thay vì liên kết đến những tài liệu mà chúng có thể chứa kết quả
Chúng ta hãy xem kịch bản sau, Nam muốn theo học sau đại học ngành trí tuệ nhân tạo, vì vậy anh ta muốn biết những giáo sư nào đang nghiên cứu về lĩnh vực này để liên hệ Bài toán đặt ra là làm thế nào Nam có thể tìm kiếm danh sách các giáo sư đang nghiên cứu về trí tuệ nhân tạo Với các động cơ tìm kiếm hiện tại, bước 1, anh ta gõ vào “Artificial Intelligence Professor” Bước 2, từ kết quả trả về, anh ta cần duyệt qua các trang web để tìm tên các giáo sư Anh ta cũng có thể duyệt qua trang chủ của khoa Khoa học máy tính của các trường với hi vọng sẽ có một trang liệt kê các giáo sư theo lĩnh vực nghiên cứu hoặc tìm qua từng trang chủ của các cán bộ giảng dạy Điều này có thể là một quá trình khó nhọc
Từ những nhu cầu thực tế như thế này, ta thấy động cơ tìm kiếm tài liệu chưa đủ tốt Chúng ta muốn một phương pháp tìm kiếm hiệu quả hơn Trong ví dụ trên,
Professor là đối tượng trong câu truy vấn “Artificial Intelligence Professor” Ta muốn rằng, sau khi gõ từ khóa (“Artificial Intelligence”) và tên đối tượng (“Professor”) vào động cơ tìm kiếm đối tượng, thì kết quả trả về là tên của các giáo sư, thay vì những liên kết đến các tài liệu mà chúng chứa từ khóa “Artificial”, “Intelligence”, và “Professor”
~ 2 ~ Như ta thấy, câu truy vấn cho tìm kiếm đối tượng có hai phần: những từ khóa giống như tìm kiếm tài liệu, và những đối tượng Để phân biệt đối tượng và từ khóa, chúng tôi sử dụng ký hiệu # để chỉ đối tượng trong luận văn này Ví dụ câu truy vấn trên được viết lại là (“Artificial Intelligence #Professor”)
Tìm kiếm đối tượng làm giảm khoảng cách ngữ nghĩa giữa cái người sử dụng muốn và cái được biểu diễn bằng những từ khóa trong câu truy vấn Ta có thể mô tả câu truy vấn dễ dàng hơn, chính xác hơn, và với việc trả về kết quả trực tiếp giúp ta tiết kiệm được thời gian
Gọi ES là một giải thuật tìm kiếm đối tượng Giống như mô hình tìm kiếm tài liệu, đầu vào của giải thuật gồm có một tập các tài liệu D và câu truy vấn Q Trong đó,
D = {d 1 , d 2 , , d n }, với d i là một tài liệu giống như trong tìm kiếm tài liệu Tuy nhiên, khác với câu truy vấn trong tìm kiếm tài liệu là một tập các từ khóa, câu truy vấn Q bao gồm hai phần: đối tượng mà người sử dụng muốn tìm kiếm và từ khóa trong cùng tài liệu với đối tượng Trong ví dụ trên, thì từ khóa là “Artificial Intelligence” và đối tượng là “Professor” Những đối tượng này được định nghĩa trước cho động cơ tìm kiếm và chúng thể hiện những câu hỏi thông thường mà ta muốn truy vấn trên Web
1 George A Miller 113.8899 cs.princeton.edu/~rit/geo/
2 John McCarthy 37.3925 www-formal.stanford.edu/jmc/
3 Marvin Minsky 33.0250 web.media.mit.edu/~minsky/
4 Tom Mitchell 28.1598 cs.cmu.edu/~tom/
Hình 1-1: Kết quả tìm kiếm đối tượng
~ 3 ~ Một cách hình thức, ta có Q = , trong đó E là một tập các đối tượng và K là một tập các từ khóa Kết quả trả về của ES là những thể hiện đối tượng thỏa tiêu chí tìm kiếm và những liên kết đến những tài liệu có chứa chúng Cũng như tìm kiếm tài liệu, kết quả cũng được xếp thứ tự theo sự phù hợp của đối tượng và câu truy vấn Như thế ta có đầu ra O = {, , , }, trong đó E i là một thể hiện đối tượng và L i là tập liên kết đến các tài liệu có chứa E i Hình 1-1 là một ví dụ kết quả tìm kiếm đối tượng.
Các công trình liên quan
Như một hệ thống truy hồi thông tin thông thường, hệ thống của chúng tôi cũng dựa trên kỹ thuật rút trích thông tin (Information Extraction - IE) để rút trích đối tượng (Named-Entity Extraction) Để phù hợp với ngữ cảnh được đề cập, trong luận văn này, chúng tôi sử dụng thuật ngữ đối tượng và thực thể để thay thế lẫn nhau Trong [18] chỉ ra ba loại tài liệu mà chúng ta thường rút trích thông tin trên đó, đó là: tài liệu có cấu trúc, tài liệu bán cấu trúc, và tài liệu văn bản Dữ liệu Web được các tác giả xếp vào loại tài liệu bán cấu trúc [18] cũng trình bày rất nhiều hệ thống rút trích thông tin trên nhiều loại tài liệu Tuy nhiên, theo sự phân loại của các tác giả thì có bốn loại hệ thống rút trích thông tin cơ bản là hệ thống dựa trên luật được xây dựng thủ công, hệ thống học có giám sát, hệ thống học bán giám sát, và hệ thống học không giám sát Từ các nguyên lý này, mà các hệ thống rút trích đối tượng cũng có các kỹ thuật tương tự Trên dữ liệu Web, chúng tôi nghiên cứu những hệ thống rút trích đối tượng tiên tiến gần đây, để từ đó lựa chọn phương pháp rút trích phù hợp cho từng loại bài toán Etzioni và các cộng sự đã xây dựng hệ thống KnowItAll [11], [12], [21] để rút trích các thực thể có tên và quan hệ của chúng trên Web KnowItAll dựa trên kỹ thuật thông tin tương hỗ theo từng điểm (Pointwise Mutual Information) và truy hồi thông tin (PMI-IR) để đánh giá rằng một thực thể có tên có thể được phân vào một lớp nhất định Urbansky và các cộng sự cũng đã xây dựng hệ thống WebKnox [14], [15] để rút trích sự kiện (Fact
~ 4 ~ Extraction) và các thực thể có tên trên web WebKnox dựa trên ba kỹ thuật chính để rút trích thực thể: Phrase Extraction, Focused Crawl Extraction, và Seed Extraction
Phrase Extraction dựa trên ý tưởng của KnowItAll, chẳng hạn như “CONCEPTs such as”, “CONCEPTs like”, hay “CONCEPTs including” Focused Crawl Extraction và Seed Extraction sử dụng khái niệm XPath để tìm ra các thực thể Wang và các giáo sư tại trường đại học Carnegie Mellon University đã xây dựng hệ thống Set Expander for Any Language (SEAL) [16] để thu thập các thực thể cùng loại với một tập nhỏ các thực thể đưa vào Ví dụ khi ta đưa vào {“Ford”, “Nissan”, “Toyota”}, thì hệ thống trả về danh sách các nhà sản xuất xe hơi SEAL xây dựng đồ thị gồm có các nút là các đối tượng: thực thể mẫu (seeds), các trang web (web pages), các biên (wrappers), và các thực thể đã được rút trích (extracted entity), và các cạnh là liên hệ giữa chúng SEAL sử dụng thuật toán bước trên đồ thị (Graph Walk) để xếp hạng danh sách các thực thể được rút trích Giống như Wang, Dalvi và các giáo sư của mình xây dựng hệ thống WebSets [17] cũng để rút trích các thực thể Tuy nhiên, WebSets có thể gôm cụm các thực thể trên Web thành một lớp mới mà ta chưa biết Tồng quát hơn, Demartini và các cộng sự [28] đề ra hai kiến trúc để rút trích thực thể là dựa trên các động cơ tìm kiếm hiện tại và tự xây dựng hệ thống đánh chỉ mục thực thể
Ngoài chức năng rút trích đối tượng, xếp hạng đối tượng là công việc chính của luận văn này Vercoustre và các cộng sự đã tập trung vào xếp hạng thực thể trên Wikipedia [5] Cách tiếp cận của họ là rút trích các thực thể từ các tài liệu XML trên Wikipedia và thiết lập các độ đo xếp hạng Vercoustre chỉ tập trung vào truy hồi thông tin từ Wikipedia và do đó độ đo xếp hạng cũng bị giới hạn vào lĩnh vực cụ thể này
Không chỉ có Vercoustre và các cộng sự [5] mà xếp hạng đối tượng thu hút được sự quan tâm của nhiều nhà khoa học với các nghiên cứu xếp hạng đối tượng trên các trang web của Wikipedia [40], [41], [42], [43], [44] Đặc điểm dữ liệu Wikipedia là các trang web đều được xác định chủ đề/ thể loại (category) và trong mỗi trang có các khái niệm
~ 5 ~ (concept) được đánh dấu (tag) hay tạo liên kết tới các trang mô tả khái niệm đó Do vậy, với cấu trúc web giàu ngữ nghĩa đó, việc xếp hạng các đối tượng trên Wikipedia thường dựa trên các liên kết giữa các đối tượng (hay các khái niệm), liên kết giữa các trang web, độ tương đồng ngữ nghĩa giữa các khái niệm như được đề cập trong [41]
Một ý tưởng khác là dựa trên sự tương đồng của cấu trúc tài liệu để tìm những thực thể khi có các trang mẫu [6] tìm kiếm đối tượng theo hướng ngữ nghĩa, từ một số tài liệu mẫu nó rút trích đối tượng mẫu và đi tìm những đối tượng tương tự trong những tài liệu có cấu trúc tương tự Miền tìm kiếm còn hạn hẹp (tìm kiếm thông tin những vận động viên trong lĩnh vực bóng rổ, bóng đá, khúc côn cầu và gôn), và nó phụ thuộc vào cấu trúc tài liệu
Tìm quan hệ giữa các đối tượng là một cách tiếp cận khác, EntityEngine [33], [34] có thể trả lời những câu truy vấn như: tìm một danh sách các công ty và người sáng lập với điều kiện công ty ở thung lũng Silicon và người sáng lập tốt nghiệp trường Stanford Thông tin trên một trang không thể trả lời câu truy vấn trên, bởi vì giả sử có một trang cho biết Jerry Yang là người sáng lập Yahoo, trong khi Yahoo là một công ty ở thung lũng Silicon và Jerry Yang tốt nghiệp trường Stanford được tìm thấy ở những trang khác Tuy nhiên họ mới chạy thử nghiệm trên Wikipedia và các bằng chứng (evidence) giữa các đối tượng chỉ xét trong một câu, điều này là một hạn chế trên Web
Trong [35], Li đã sử dụng năm đặc trưng để xếp hạng thực thể: kiểu thực thể, thời gian xuất hiện thực thể, số từ khóa của thực thể, chất lượng của trang chứa thực thể, và số lượng mỗi thực thể Li cũng dùng phương pháp Support Vector Machines (SVM) để học hàm xếp hạng dựa trên năm đặc trưng này Bởi vì mỗi đặc trưng có các trọng số khác nhau, nên phương pháp học xếp hạng chứng tỏ hiệu suất tốt hơn phương pháp xếp hạng thông thường
~ 6 ~ Một nghiên cứu khác được tiến hành bởi phòng thí nghiệm cơ sở dữ liệu và hệ thống thông tin của khoa Khoa học máy tính Đại học Illinois at Urbana-Champaign
Chang và các cộng sự đã xây dựng một mô hình cho tìm kiếm và xếp hạng các đối tượng [1], [2], [4], [7], [10], [20] Truy vấn có dạng q = α(E 1 , …, E m , k 1 , …, k l ) là một hàm của các kiểu thực thể và các từ khóa thể hiện yêu cầu của người dùng tìm kiếm các loại thực thể E 1 , …, E m với ngữ cảnh các từ khóa k 1 , …, k l So với công trình của Vercoustre, mô hình của Cheng có khả năng áp dụng rộng rãi hơn Mô hình của họ được chia làm ba tầng: tầng truy nhập, tầng nhận dạng, và tầng đánh giá Độ đo xếp hạng được tính dựa trên ba tầng này Độ đo xếp hạng trong tầng truy nhập là xác suất tài liệu được chọn Độ đo trong tầng nhận dạng là xác suất câu truy vấn đúng trong tài liệu đã chọn Còn độ đo trong tầng đánh giá là xác suất của truy vấn trên mô hình ảo (hợp lại toàn bộ các tài liệu) Chang cũng xây dựng cấu trúc câu truy vấn tựa SQL [8] có tên là Content Query Language (CQL) để truy vấn đối tượng hiệu quả hơn Và dựa trên mô hình này cho phép mở rộng kiểu thực thể từ các kiểu có sẵn Ví dụ kiểu professor được định nghĩa từ kiểu person
Dựa trên khả năng áp dụng rộng rãi của mô hình EntityRank [1], [2], [4], trong luận văn này chúng tôi nghiên cứu và ứng dụng nó cho bài toán tìm kiếm giáo sư
Cơ sở lý thuyết
Sắp xếp kết quả tìm kiếm
Trong nhiều ứng dụng ta cần xếp hạng các đối tượng (đối tượng nói chung, không chỉ là thực thể) theo một tiêu chí nào đó, ví dụ như việc xếp hạng học sinh trong một lớp theo điểm trung bình, hay xếp hạng các trường đại học, … và đặc biệt là việc xếp hạng các kết quả trả về của một động cơ tìm kiếm Xếp hạng đối tượng là việc sắp xếp các đối tượng theo độ phù hợp với tiêu chí tùy vào từng ứng dụng cụ thể Do đó cần xác định hàm tính giá trị về độ phù hợp để sắp xếp các đối tượng theo tiêu chí đã đặt ra, và hàm đó được gọi là hàm tính hạng (Ranking Function - RF) Mỗi khi nói tới xếp hạng đối tượng chúng ta quan tâm tới hàm tính hạng cho đối tượng
Một điển hình của bài toán xếp hạng là việc xếp hạng các kết quả trả về của động cơ tìm kiếm Trong các động cơ tìm kiếm thông thường (như Google, Yahoo, hay Bing) độ quan trọng hay còn gọi hạng trang là đại lượng cơ sở để xếp hạng Giá trị này được xác định dựa vào việc phân tích đồ thị liên kết giữa các trang web Với tập các tài liệu D = {d 1 , …, d n }, khi có truy vấn q của người dùng, động cơ tìm kiếm cần tìm những tài liệu trong D phù hợp với truy vấn q, và sau đó sắp xếp các tài liệu theo độ phù hợp với truy vấn và có độ quan trọng giảm dần Đó là quá trình xếp hạng và hàm tính hạng là hàm kết hợp của giá trị độ tương tự giữa tài liệu với truy vấn similarity(q, d i ) và hạng trang để thành chỉ số xếp hạng được Arvind Arasu và các tác giả đề cập tới trong [36] Việc xác định hàm tính hạng đóng vai trò quan trọng và quyết định đối với chất lượng của một động cơ tìm kiếm
Từ những năm 98, Cohen [37] đã đưa ra nhận định rằng có nhiều ứng dụng cần sắp xếp các đối tượng hơn là cần phân lớp chúng Mọi ứng dụng mà kết quả trả về cho người dùng là một danh sách các đối tượng cần được sắp xếp, xếp hạng giúp người
~ 8 ~ dùng nhanh chóng tiếp cận với kết quả gần với yêu cầu của mình nhất có thể Thực tế chúng ta gặp rất nhiều các bảng xếp hạng như ví dụ ở trên Điều đó cho thấy, xếp hạng là một bài toán quan trọng và có ý nghĩa
Tuy nhiên khái niệm xếp hạng (ranking) ra đời ban đầu với định hướng xếp hạng các đối tượng trên Web - cụ thể là các trang web Các trang web cần được sắp xếp theo độ quan trọng giảm dần Giá trị độ quan trọng đó được gọi là hạng trang và PageRank [38] là phương pháp tính hạng trang web đầu tiên, nó tính hạng trang cho các trang web dựa vào việc phân tích mối liên kết giữa các trang web trong đồ thị Web
Page và các đồng tác giả [38] đã đưa ra ý tưởng: độ quan trọng của một trang chịu ảnh hưởng của độ quan trọng từ các trang liên kết đến nó Và công thức tính PageRank cho một trang 𝑢, gọi là 𝜋 𝑢 được tính như sau:
Với 𝐵 𝐼 (𝑢) là tập hợp các trang có liên kết đến trang 𝑢
Và 𝑁 𝑖 là số trang liên kết ra từ trang i
Gọi A là một ma trận vuông với số hàng và số cột tương ứng là số trang web n
Trong đó các phần tử a ij được định nghĩa như sau:
Biểu diễn đồ thị Web bởi ma trận chuyển vị P = A T , trong đó công thức 2.1 được viết lại dưới dạng ma trận:
Trong đó: 𝜋 = (𝜋 1 , 𝜋 2 , … 𝜋 𝑛 ) là véc tơ hạng các trang web, với thành phần 𝜋 𝑖 là hạng của trang i
Từ công thức 2.2 cho thấy véc tơ hạng trang 𝜋 chính là véc tơ riêng của ma trận chuyển P tương ứng với giá trị riêng 𝜆 = 1
Do tính chất của chuỗi Markov, để tính véc tơ riêng của P thuật toán giả thiết rằng đồ thị các trang web là liên thông, tức là với cặp hai trang web i, j bất kì luôn có đường đi từ i tới j và ngược lại Tuy nhiên thực tế trên World Wide Web (WWW) vẫn tồn tại không ít các trang web không có liên kết đến hoặc liên kết ra nên việc giả thiết đồ thị Web liên thông là không hợp lý Và trong ma trận P vẫn tồn tại hàng chỉ toàn số 0, nên không tồn tại một phân phối xác suất dừng ổn định của P hay chính là véc tơ hạng trang Vì vậy cần phải biến đổi ma trận P thành P’ sao cho phù hợp Định nghĩa véc tơ v, được chuẩn hóa 𝑣 = 1, xác định xác suất phân phối với 𝑣 𝑖 là xác suất trang web i được gọi đến ở lần duyệt web đầu tiên Véc tơ v có vai trò trong việc hướng kết quả PageRank theo chủ đề, lĩnh vực mong muốn Khi không xét đến ngữ cảnh đó có thể chọn 𝑣 𝑖 = 1
Gọi d là véc tơ 𝑛 × 1 xác định các trang không có liên kết ra (dangling nút trên đồ thị Web):
Ma trận P’ được xác định:
~ 10 ~ Khi thay đổi ma trận P như vậy tức thêm các liên kết ảo từ các dangling nút tới tất cả các nút khác trong đồ thị Web theo phân phối xác suất v Điều đó giúp tránh việc khi duyệt các trang không có liên kết ra sẽ không duyệt tiếp được Để đảm bảo phân phối dừng ổn định (duy nhất), chuỗi Markov tương ứng với quá trình duyệt Web của người dùng cần có tính chất ergodic, tức từ một trang web người dùng có thể chuyển tới một trang bất kì khác Do vậy ma trận Markov 𝑃 được xác định như sau:
Trong đó: 𝐽 = [1] 𝑛×1 𝑣 và 𝛼: là hệ số hãm
𝛼 thường được chọn giá trị 0.85, với ý nghĩa tại mỗi bước duyệt Web người dùng có thể chuyển tới một trang trong các liên kết ra từ trang hiện tại với xác suất 𝛼 và chuyển tới các trang khác trong đồ thị Web với xác suất 1 − 𝛼 theo phân phối v
Khi đó, thay vì tính véc tơ riêng của ma trận P ta tính véc tơ riêng 𝜋 của ma trận 𝑃 : 𝜋 = 𝜋𝑃
Theo tính chất của chuỗi Markov, tổng các thành phần của véc tơ 𝜋 bằng 1:
Vậy véc tơ hạng trang chính là véc tơ riêng của ma trận 𝑃
Các độ đo hiệu quả xếp hạng Để đánh giá chất lượng một xếp hạng, các độ đo thông dụng trong máy học như độ chính xác (precision), độ đầy đủ (recall), độ trung bình hài hòa F (harmonic mean)
~ 11 ~ được sử dụng [27] Xếp hạng yêu cầu các đối tượng “đúng” (phù hợp tiêu chí) cần đuợc xếp ở các vị trí đầu tiên của bảng xếp hạng càng tốt
Giả sử ta có 5 đối tượng tương ứng là: a, b, c, d, e
Trong đó a , b , c là các đối tượng phù hợp và d, e là các đối tượng không phù hợp
Một xếp hạng của các đối tượng cần đánh giá là: c , a , d, b , e
Các độ đo về độ chính xác của xếp hạng thuờng được sử dụng: Độ chính xác mức K: P@K Độ chính xác xếp hạng ở mức K - Precision@K (P@K) là độ chính xác của K đối tượng đầu bảng xếp hạng Ta gọi Match@K là số đối tượng đúng ở K vị trí đầu tiên của bảng xếp hạng, thì khi đó độ chính xác mức K được định nghĩa như sau
Với ví dụ trên ta có: P@3 = 2/3; P@4 = 3/4; P@5 = 3/5 Độ chính xác trung bình: MAP Độ chính xác trung bình cho một truy vấn là giá trị trung bình của các P@K tại các mức K có đối tượng đúng Gọi I(K) là hàm xác định đối tượng ở vị trí hạng K nếu đúng I(K) = 1 và ngược lại I(K) = 0 Khi đó độ chính xác trung bình của một xếp hạng cho một truy vấn được xác định như sau
Với n là số đối tượng được xét
~ 12 ~ Độ chính xác trung bình cho một tập các truy vấn là giá trị trung bình của các
AP trên các truy vấn Gọi m là số truy vấn thì độ chính xác trung bình cho m xếp hạng được tính như sau
Với ví dụ trên ta có:
Thứ hạng nghịch đảo trung bình: MRR
Xác định vị trí hạng của đối tượng đúng đầu tiên trong bảng xếp hạng là r, khi đó thứ hạng nghịch đảo là RR = 1/r Với ví dụ trên, ta có RR = 1/1
Thứ hạng nghịch đảo trung bình là giá trị trung bình thứ hạng nghịch đảo RR của tất cả các truy vấn/ hay xếp hạng đang xét
Rút trích thực thể có tên
Thuật ngữ "thực thể có tên" được đặt ra tại Hội thảo hiểu thông điệp lần thứ sáu (Message Understanding Conferences - MUC-6) (R Grishman & Sundheim 1996)
[39] Vào thời điểm đó, MUC tập trung vào nhiệm vụ rút trích thông tin có cấu trúc từ văn bản phi cấu trúc, chẳng hạn như các bài báo Trong việc xác định nhiệm vụ, người ta nhận thấy cần thiết để nhận ra các đơn vị thông tin như tên, gồm có person, organization và location, và các biểu thức số như time, date, money và percent expressions
~ 13 ~ Trong khi các hệ thống nhận dạng thực thể có tên lúc đầu sử dụng các thuật toán dựa trên luật được xây dựng thủ công, thì các hệ thống hiện đại dựa trên các kỹ thuật máy học
Trong [39] cho thấy nhận dạng thực thể có tên đã được nghiên cứu trên nhiều ngôn ngữ, nhiều thể loại văn bản (textual genre) thuộc nhiều lĩnh vực (domain), cũng như trên nhiều loại thực thể
Lúc đầu vấn đề nhận dạng thực thể có tên như là nhận ra "tên riêng" nói chung
(ví dụ, S Coates-Stephens 1992, C Thielen 1995) Nhìn chung, có ba loại thực thể được nghiên cứu là: tên của person, location và organization Những loại này được gọi là "enamex" kể từ MUC-6 Loại location được làm mịn hơn thành những loại con như city, state, country, … (M Fleischman 2001, S Lee & Geunbae Lee 2005) Tương tự như vậy, loại person được chia thành: politician và entertainer xuất hiện trong công việc của M Fleischman và Hovy (2002) Loại person là khá phổ biến và được sử dụng ít nhất một lần ban đầu bởi O Bodenreider và Zweigenbaum (2000) kết hợp nó với các gợi ý khác để rút trích các tên thuốc và bệnh tật (Ví dụ: "bệnh Parkinson") Trong chương trình ACE (G Doddington et al 2004), loại facility xếp gộp thực thể của các loại location và organization Loại GPE được sử dụng để đại diện cho một vị trí trong đó có một chính phủ, chẳng hạn như một thành phố hoặc một quốc gia
Loại miscellaneous được sử dụng trong hội nghị CONLL (E Tjong Kim Sang
2002, E Tjong Kim Sang & De Meulder 2003), bao gồm các tên riêng ngoài
"enamex" Lớp này đôi khi bổ sung thêm loại product (ví dụ, E Bick 2004) "Timex"
(một thuật ngữ khác được đặt ra trong MUC) có các loại date và time và "numex" có các loại money và percent cũng khá chiếm ưu thế trong nghiên cứu Từ năm 2003, một cộng đồng tên là TIMEX2 (L Ferro et al.2005) đề xuất một tiêu chuẩn cho các chú thích và chuẩn hóa biểu thức thời gian (temporal expressions) Cuối cùng, các loại biên đôi khi xử lý cho các nhu cầu cụ thể như film và scientist (O Etzioni et al 2005), email
~ 14 ~ address và phone number (I Witten et al 1999, D Maynard et al 2001), research area và project name (J Zhu et al 2005), book title (S Brin năm 1998, I Witten et al 1999), job title (W Cohen & Sarawagi năm 2004) và brand (E Bick 2004)
Một quan tâm gần đây trong tin sinh học, với sự có sẵn của kho ngữ liệu GENIA (T Ohta et al 2002) đã dẫn đến nhiều nghiên cứu dành riêng cho các loại như protein, DNA, RNA, cell line và cell type (ví dụ, D Shen et al 2003, B Settles 2004) cũng như những nghiên cứu chỉ nhận dạng protein (Y Tsuruoka & Tsujii 2003) Công trình liên quan bao gồm tên drug (T Rindfleisch et al 2000) và tên chemical (M
Một số công việc gần đây không giới hạn các loại có thể rút trích và được gọi là nhận dạng thực thể "miền mở" (open domain) (E Alfonseca & Manandhar 2002, R
Evans 2003) Trong nghiên cứu loại này, S Sekine và Nobata (2004) định nghĩa một hệ thống phân cấp thực thể có tên bao gồm nhiều loại con, chẳng hạn như museum, river, airport, và mở rộng các loại, chẳng hạn như product và event, cũng như substance, animal, religion hoặc color Nó cố gắng bao phủ những loại tên thường xuất hiện và tham chiếu đến (rigid designators) xuất hiện trong một tờ báo Số lượng các loại khoảng 200, và họ đang xác định các thuộc tính phổ biến cho mỗi thể loại để làm cho nó thành một bản thể học (ontology)
Khả năng nhận dạng thực thể dựa trên những luật nhận dạng và phân lớp bằng cách kết hợp các đặc trưng với sự phù hợp và không phù hợp của các mẩu Các nghiên cứu trước đây chủ yếu dựa trên luật được xây dựng thủ công, gần đây người ta sử dụng phương pháp học có giám sát (Supervised Machine Learning - SL) để tự động tạo ra các luật từ tập các mẩu huấn luyện Điều này được thấy rõ trong cộng đồng nghiên cứu, bởi thực tế trong MUC-7 có tới năm trong tám hệ thống dựa trên luật, trong khi có tới mười sáu hệ thống đã được trình bày tại CONLL-2003, một diễn đàn dành cho kỹ thuật máy học Khi mẩu huấn luyện không có sẵn, luật thủ công vẫn là kỹ thuật ưa thích, như
~ 15 ~ chỉ ra trong S Sekine và Nobata (2004), những người phát triển hệ thống NER cho 200 loại thực thể Ý tưởng của học có giám sát là nghiên cứu các đặc trưng của những mẫu phù hợp và không phù hợp của NE trong một tập lớn các tài liệu được chú thích và các luật được thiết kế để rút trích các thể hiện của loại thực thể đã cho Điểm yếu của SL là yêu cầu một kho ngữ liệu được chú thích lớn Điều này dẫn đến hai phương pháp máy học thay thế: học bán giám sát (Semi-Supervised Learning - SSL) và học không có giám sát (Unsupervised Learning - UL) Những kỹ thuật này được trình bày trong các mục sau
Học có giám sát để nhận dạng thực thể là kỹ thuật chiếm ưu thế hiện nay Kỹ thuật SL bao gồm mô hình Markov ẩn (Hidden Markov Models - HMM) (D Bikel et al 1997), Cây quyết định (Decision Trees - S Sekine 1998), Mô hình cực đại hóa Entropy (Maximum Entropy Models - ME) (A Borthwick 1998), Support Vector Machines (SVM) (M Asahara & Matsumoto 2003), và Conditional Random Fields (CRF) (A
McCallum & Li 2003) Đây là tất cả các biến thể của cách tiếp cận SL chúng thường bao gồm một hệ thống đọc một kho ngữ liệu lớn được chú thích, nhớ danh sách các thực thể, và tạo ra những luật khử nhập nhằng dựa vào các đặc trưng phân biệt
Một phương pháp SL cơ bản thường được đề xuất bao gồm các từ được gán nhãn của một kho ngữ liệu kiểm tra khi chúng được chú thích là các thực thể trong kho ngữ liệu huấn luyện Hiệu suất của hệ thống cơ bản phụ thuộc vào tỉ lệ “vocabulary transfer”, đó là phần trăm của từ, không lặp lại, xuất hiện trong cả kho ngữ liệu huấn luyện và kho ngữ liệu kiểm tra D Palmer và Day (1997) tính tỉ lệ “vocabulary transfer” trên dữ liệu huấn luyện của MUC-6 Theo họ tỉ lệ “vocabulary transfer” là 21%, với 42% tên của location được lặp lại nhưng chỉ có 17% tên organization và 13%
~ 16 ~ tên person được lặp lại Tỉ lệ “vocabulary transfer” là một chỉ số tốt của độ đo khả năng tìm hết (recall – số lượng thực thể được xác định trên tổng số của các thực thể) của hệ thống cơ bản nhưng là một độ đo không khả quan vì một số các thực thể thường xuyên lặp lại trong tài liệu A Mikheev et al (1999) tính toán một cách chính xác độ đo recall của hệ thống cơ bản trên kho ngữ liệu MUC-7 Theo họ độ đo recall là 76% cho các location, 49% cho các organization và 26% đối với person với độ chính xác từ 70% đến 90% Whitelaw và Patrick (2003) báo cáo kết quả phù hợp cho lớp enamex trên MUC-7 Tổng hợp ba loại enamex với nhau, độ chính xác của nhận dạng là 76% và độ đo recall là 48%
Thuật ngữ "bán giám sát" (hay là "giám sát yếu") là tương đối gần đây Kỹ thuật chính của SSL được gọi là "bootstrapping" và liên quan đến một mức độ nhỏ của giám sát, chẳng hạn như một tập hợp các hạt giống, để bắt đầu quá trình học tập Ví dụ, một hệ thống nhằm mục đích "tên bệnh" có thể yêu cầu người dùng cung cấp một số lượng nhỏ tên ví dụ Sau đó, hệ thống tìm kiếm các câu có chứa các tên này và cố gắng xác định một số đầu mối ngữ cảnh chung trong các ví dụ Sau đó, hệ thống cố gắng tìm những thể hiện khác của tên bệnh xuất hiện trong ngữ cảnh tương tự Quá trình học tập lại được áp dụng cho các ví dụ mới được tìm thấy, để phát hiện thêm những ngữ cảnh phù hợp mới Bằng cách lặp lại quá trình này, một số lượng lớn các tên bệnh và một số lượng lớn các ngữ cảnh sẽ được thu thập Các thí nghiệm gần đây trong học bán giám sát để nhận dạng thực thể (Nadeau et al 2006) cho thấy hiệu suất có thể cạnh tranh với phương pháp tiếp cận học có giám sát cơ sở Sau đây là một số ví dụ về phương pháp tiếp cận SSL
Mô hình EntityRank
Động cơ tìm kiếm đối tượng
Người dùng thường tìm kiếm thông tin về đối tượng nào đó, ví dụ như khi sử dụng truy vấn “Artificial Intelligence Professor”, người dùng muốn tìm các đối tượng
Professor, người nghiên cứu về trí tuệ nhân tạo Và các động cơ tìm kiếm hiện nay
(như Google, Yahoo, Bing) bằng cách so sánh văn bản (text) trên từng trang web với truy vấn và trả về cho người dùng địa chỉ các trang web mà chúng có chứa các từ khóa trong truy vấn Do vậy người dùng không trực tiếp nhận được thông tin mong muốn mà phải duyệt qua nội dung các trang web trả về đó và không chắc chắn có được thông tin mong muốn ở những kết quả đầu tiên Đó là nhược điểm của các động cơ tìm kiếm này, chúng không hiểu mục đích tìm kiếm của người dùng, và tìm kiếm trên các trang web độc lập chỉ dựa vào các từ khóa
~ 22 ~ Theo [1] động cơ tìm kiếm đối tượng hướng người dùng tốt hơn, cho phép chỉ ra trong truy vấn đối tượng mà người dùng muốn tìm Và kết quả trả về của động cơ tìm kiếm là các thực thể của đối tượng cần tìm, mỗi thực thể được xác định không chỉ xét trên một trang độc lập mà có thể được tổng hợp qua nhiều trang web Ví dụ động cơ tìm kiếm đối tượng của dự án WISDM 1 của nhóm T Cheng, X Yan, và K Chang Với truy vấn thông thường q = “amazon customer service phone” tức người dùng đang cần tìm số điện thoại của dịch vụ hỗ trợ khách hàng của Amazon.com Khi đó truy vấn của người dùng tương ứng trong động cơ tìm kiếm đối tượng WISDM là q = “amazon customer service #phone”, chỉ rõ đối tượng muốn tìm “phone” và ngữ cảnh xuất hiện của đối tượng “amazon customer service” Kết quả trả về của động cơ tìm kiếm là các số điện thoại, và với mỗi số điện thoại có danh sách các địa chỉ web tương ứng chứa thông tin điện thoại đó như bảng 3.1
Bảng 3-1: Kết quả tìm kiếm số điện thoại
Rank Phone number Score Urls
1 800-201-7575 0.9 amazon.com/support.htm myblog.org/shopping 2 800-988-0886 0.8 dell.com/supportors 3 800-342-5283 0.6 xyz.com
Sơ đồ Hình 3-2 cho ta thấy sự khác biệt cơ bản giữa động cơ tìm kiếm thông thường với động cơ tìm kiếm đối tượng Động cơ tìm kiếm đối tượng đã xem không gian Web không chỉ là tập các trang web chứa các từ khóa như động cơ tìm kiếm thông thường mà còn là tập các đối tượng hay các kiểu thực thể E = {E 1 , E 2 , …, E n } như ở
1 http://falcon4.cs.uiuc.edu:8080/EntityRank/
Hình 3-1: Đồ thị Web với khung nhìn thực thể
Hình 3-2: Mô hình tìm kiếm truyền thống và tìm kiếm đối tượng
Hình 3-1 Mỗi đối tượng E i có các thực thể e i tương ứng được rút trích ra từ các trang web, ví dụ đối tượng giáo sư #professor có các thực thể {“Oussama Khatib”, “Andrew
Ng”, “Daphne Koller”,… } trong một trang web như ở Hình 3-5 Khi đó ngoài các chỉ mục (index) cho các từ khóa, động cơ tìm kiếm đối tượng còn có các chỉ mục cho các kiểu thực thể Bài toán tìm kiếm đối tượng được phát biểu trong [2] như sau:
Giả thiết: Có tập các tài liệu D = {d 1 , d 2 , , d n } và các kiểu thực thể E = {E 1 ,
Đầu vào: Truy vấn q = α(E 1 , …, E m , k 1 , …, k l ) là một hàm của các kiểu thực thể và các từ khóa thể hiện yêu cầu của người dùng tìm kiếm các loại thực thể E 1 ,
E 2 , …, E m với ngữ cảnh các từ khóa k 1 , k 2 , …, k l
Đầu ra: Danh sách đã xếp hạng của các bộ t = (e 1 , e 2 , …, e m )
Hình 3-3: Kiến trúc hệ thống EntityRank
~ 25 ~ T Cheng, X Yan, và K Chang tại SIGMOD’07 [4] đã đưa ra kiến trúc cơ bản của hệ thống tìm kiếm đối tượng như Hình 3-3 Hệ thống bao gồm hai thành phần là xử lý ngoại tuyến (offline) và xử lý trực tuyến (online) Thành phần xử lý ngoại tuyến gồm có rút trích đối tượng và tạo các chỉ mục cho các từ khóa và các đối tượng (khối được bao nét đứt) Trong khi thành phần xử lý trực tuyến gồm có truy xuất đối tượng và xếp hạng đối tượng (khối được bao nét liền, Ranking Model, trong Hình 3-3)
Entity Extraction: Mô đun này thực hiện việc rút trích các đối tượng từ các trang tài liệu được lấy về
Indexing: Mô đun này sử dụng kỹ thuật đánh chỉ mục ngược (Inverted index) để tạo các chỉ mục cho các từ khóa và các đối tượng được trả về từ mô đun rút trích ở trên
Ranking: Xếp hạng các đối tượng, với hai bước chính: cục bộ (locally), và toàn cục (globally) Như kiến trúc được đề cập ở phần trên do T Cheng, X Yan, và K
Chang [4] đưa ra, mô đun xếp hạng gồm có hai thành phần chính là xử lý truy vấn cục bộ (local) và xử lý truy vấn toàn cục (global)
1 Xử lý cục bộ: Từ chỉ mục ngược của tất cả các thực thể thuộc kiểu E i và từ khóa k j , mô đun thực hiện phép nối trên tài liệu để tìm các tài liệu chứa các thực thể thuộc E i , và các từ khóa k j thỏa mãn hàm α Trọng số cục bộ (local score) được xác định dựa vào độ tin cậy của đối tượng được rút trích và mối quan hệ ngữ cảnh giữa các đối tượng đó với các từ khóa trong từng tài liệu
2 Xử lý toàn cục: Mô đun thực hiện nhận truy vấn người dùng, gửi truy vấn cho mô đun xử lý cục bộ, sau đó đợi kết quả trả về từ mô đun xử lý cục bộ Sau khi nhận được tất cả các trọng số cục bộ, mô đun tiến hành tổng hợp trọng số cho từng bộ thực thể t, kết hợp trọng số cục bộ với trọng số xác định cho t trên toàn tập tài liệu để có giá trị Score cuối cùng cho xếp hạng
~ 26 ~ Trong giới hạn của luận văn này, chúng tôi tập trung phân tích thành phần xếp hạng Vấn đề xếp hạng đối tượng được phân tích ở phần tiếp theo và mô hình được áp dụng vào bài toán xếp hạng đối tượng giáo sư được đề cập.
Xếp hạng đối tượng
Động cơ tìm kiếm đối tượng trả về cho người dùng kết quả là danh sách các đối tượng Không chỉ tìm được đối tượng mà vấn đề của động cơ tìm kiếm là những đối tượng phù hợp nhất với truy vấn cần được đưa lên từ những kết quả đầu tiên trả về cho người dùng Do đó xếp hạng đối tượng là vấn đề quan trọng, cốt lõi của động cơ tìm kiếm đối tượng
Giả thiết chúng ta có tập tài liệu D = {d 1 , d 2 , …, d n }, tập các kiểu thực thể E {E 1 , E 2 , …, E N }, truy vấn q = α(E 1 , …, E m , k 1 ,…, k l ) với k j là các từ khóa, và bộ các thực thể t = (e 1 , e 2 , …, e m ) Khi đó độ phù hợp của t đối với truy vấn q trên tập tài liệu
Với 𝑝 𝑞 𝑡 |𝑑 là xác suất xảy ra quan hệ α của t trên tài liệu d
Giá trị của 𝑆𝑐𝑜𝑟𝑒 𝑞 𝑡 được dùng để xếp hạng các bộ kết quả trả về, do đó việc xác định hàm 𝑆𝑐𝑜𝑟𝑒 𝑞 𝑡 là vấn đề quan trọng chúng ta quan tâm
Những đặc trưng của tìm kiếm đối tượng có ảnh hưởng tới giá trị xếp hạng 𝑆𝑐𝑜𝑟𝑒 𝑞 𝑡 đã được đưa ra trong [2] như sau
R-Contextual: Xác suất liên kết giữa các đối tượng và các từ khóa phụ thuộc vào các ngữ cảnh khác nhau và ảnh hưởng bởi hai yếu tố chính:
Pattern: Từ khóa và đối tượng có thể liên kết với nhau theo các mẫu, ví dụ tên công ty phải đứng trước số điện thoại của công ty
Proximity: Từ khóa và đối tượng có thể xuất hiện nhiều lần trong trang web và không giống nhau, khi chúng càng gần nhau thì mối quan hệ càng có ý nghĩa cao hơn
R-Holistic: Một đối tượng có thể xuất hiện cùng với từ khóa nhiều lần trong một trang, do đó cần ước lượng tìm liên kết phù hợp nhất
R-Uncertainty: Việc rút trích đối tượng không chính xác tuyệt đối, do đó cần có giá trị độ tin cậy tương ứng cho mỗi đối tượng
R-Associative: Cần phân biệt liên kết giữa từ khóa và đối tượng là liên kết mang ý nghĩa thực hay chỉ là sự xuất hiện ngẫu nhiên giữa chúng Do đó cần có kiểm định để loại bỏ những liên kết ngẫu nhiên
R-Discriminative: Các đối tượng trên các trang phổ biến hơn sẽ được đánh giá cao hơn so với trên trang ít phổ biến hơn
Từ những phân tích về động cơ tìm kiếm đối tượng, nhóm tác giả Tao Cheng [2] đã đưa ra mô hình EntityRank như Hình 3-4 Mô hình gồm có ba tầng là truy nhập toàn cục (Global Access), nhận dạng cục bộ (Local Recognition), và đánh giá (Validation)
Hình 3-5: Nhận dạng đối tượng professor
Tầng truy nhập Để đảm bảo tính chất “R-Discriminative” của tìm kiếm đối tượng, nhiệm vụ của mô đun này xác định trọng số toàn cục p(d), là khả năng để một tài liệu d được quan sát, xét tới Trong ngữ cảnh động cơ tìm kiếm với các tài liệu web, giá trị này là độ phổ biến của trang web, hay chính là độ quan trọng của trang web - hạng trang Và do đó tác giả Tao Cheng đã chọn PageRank (PR) [38] để xác định: p(d) = PR[d] Ta có:
Với mỗi tài liệu d được xét ở tầng truy nhập, trọng số cục bộ - xác suất xuất hiện của từng bộ thực thể t = (e 1 ,…, e m ) với các từ khóa k = {k 1 ,…, k l } trong tài liệu đó được xác định bởi 𝑝 𝑞 𝑡 |𝑑 Gọi 𝛾 = (o 1 , …, o n ) là một quan sát (xuất hiện) của q(t) = α( e 1 ,…, e m , k 1 ,…, k l ) trên d (có n = m + l) Ví dụ: trong Hình 3-5 với E = {#professor}, k
= {“artificial”, “intelligence”, “professor”}, q = {“artificial intelligence professor”
#professor} thì ta có một quan sát 𝛾 = (o 1 , o 2 , o 3 , o 4 ) Trong mỗi tài liệu có thể có nhiều quan sát 𝛾 (tính chất R-Holistic) và do đó 𝑝 𝑞 𝑡 |𝑑 cần được ước lượng trên tất cả các quan sát 𝛾 đó, [2] đưa ra công thức ước lượng:
Với 𝑝(𝛼 𝛾 ) là xác suất/ khả năng mà một quan sát 𝛾 phù hợp với hàm ngữ cảnh α Tuy nhiên khi được rút trích từ tài liệu d, các quan sát o i biểu diễn một thực thể e i là một thể hiện của kiểu E i và được xác định với một xác suất p(e i ∈ E i |d) (tính chất R-Uncertainty) Giá trị này do mô đun rút trích xác định, và lưu lại trong khi đánh chỉ mục nên có thể được xác định một cách đơn giản bằng e i conf Vì vậy, ta có:
Thay vào công thức 3.3 suy ra:
Theo tính chất R-Contextual, độ phù hợp của 𝛾 trong ngữ cảnh α phụ thuộc vào hai yếu tố: độ phù hợp mẫu (pattern) gọi là α B và độ gần nhau (proximity) giữa đối tượng và từ khóa gọi là α P Do đó ta có:
α B là hàm lô-gic trả về giá trị 0 hoặc 1, cho biết quan sát 𝛾 với các o i có thỏa mãn ràng buộc về mẫu không Ví dụ mẫu phrase(o 1 ,…, o m ) yêu cầu các o i phải xuất hiện đúng thứ tự như xác định
α p là xác suất quan sát 𝛾 phù hợp với t trong cửa sổ quan sát s Để đơn giản, trong [2] các tác giả đã sử dụng mô hình Span Proximity để ước lượng xác suất này, và đưa ra công thức: 𝛼 𝑃 𝛾 = 𝑝 𝑠|𝛾
Thay vào công thức 3.5 ta được:
(3.6) Vậy công thức 𝑆𝑐𝑜𝑟𝑒 𝑞 𝑡 được xác định:
Phía bên phải của mô hình EntityRank (Hình 3-4) gọi là một quan sát ảo, tập dữ liệu D’ được lấy ngẫu nhiên từ D để làm đối chứng so sánh những nhận định trên D
Tầng đánh giá kiểm định giả thuyết thống kê, với giả thuyết không H 0 (null hypothesis) và G-test theo [3] để đánh giá độ tin cậy thông tin nhận được từ D
Giả thuyết không: giả thiết rằng liên kết giữa các đối tượng, từ khóa trong t (e 1 , …, e m , k 1 ,…, k l ) xảy ra ngẫu nhiên Tập D’ được lấy ngẫu nhiên từ tập D, D’ cần
“giống” với D ngoại trừ trong D’ liên kết của các từ khóa và các đối tượng hoàn toàn là ngẫu nhiên Xây dựng tập D’ từ D bằng việc tạo các tài liệu d’ ngẫu nhiên Đưa ngẫu nhiên các đối tượng và từ khóa vào d’, mỗi đối tượng, từ khóa được đưa vào độc lập, với xác suất giống như xác suất xuất hiện của chúng trong D Do đó mối liên hệ giữa đối tượng và từ khóa là ngẫu nhiên, nhưng vẫn đảm bảo xác suất quan sát một từ khóa, hay đối tượng trong D’ cũng giống như trong D:
Do đặc điểm của D’ trên nên giá trị trung bình của độ tin cậy của tất cả các đối tượng e j trong D cũng là độ tin cậy của các đối tượng e j (xác suất e j là một thể hiện kiểu E j ) trong D’: 𝑒 𝑗 𝑐𝑜𝑛𝑓 Và ta có nếu q(t) không xuất hiện trong d’ thì 𝑝 𝑞 𝑡 |𝑑′ 0, ngược lại nếu q(t) d’ thì 𝑝 𝑞 𝑡 |𝑑′ là như nhau với mọi d’ Do đó:
Hệ thống tìm kiếm giáo sư
Kiến trúc hệ thống
Hệ thống tìm kiếm giáo sư được chúng tôi thiết kế trên cơ sở mô hình EntityRank [1], [2], [4] Khác với Cheng [4] dùng xử lý song song để hiện thực hệ thống, trong thời gian có hạn của luận văn, chúng tôi thiết kế hệ thống chạy trên máy tính đơn như Hình 4-1
Câu truy vấn mà người sử dụng đưa vào có dạng q = (context #professor) Ví dụ: Q1 = (artificial intelligence professor #professor), tìm các giáo sư nghiên cứu về trí tuệ nhân tạo Q2 = (turing award professor #professor), tìm các giáo sư đoạt giải
Kết quả trả về là một danh sách tên các giáo sư đã được xếp hạng theo độ phù hợp giảm dần với câu truy vấn
Như một hệ thống truy hồi thông tin thông thường, hệ thống cũng có mô đun làm nhiệm vụ đi thu thập các trang web theo mong muốn trên môi trường Web gọi là Data Collector Sau khi các trang web đã được tải về, mô đun Entity Extractor tiến hành nhận dạng các đối tượng giáo sư trên các trang này Mô đun chỉ ra vị trí của đối tượng trong tài liệu, độ tin cậy của đối tượng thuộc về lớp giáo sư (ở đây chúng tôi nhận dạng đối tượng thuộc về lớp person, và thực hiện các ràng buộc khi truy vấn để đối tượng là giáo sư) Từ đó chúng ta có được các trang web đã được chú giải để làm đầu vào cho mô đun Extraction Storage Mô đun Extraction Storage dùng các kỹ thuật đánh chỉ mục để tạo chỉ mục cho từ khóa và các đối tượng Từ các chỉ mục này, mô đun Query Engine tạo tương tác của người dùng với hệ thống đó là thực hiện truy vấn của người dùng và trả về kết quả đã được xếp hạng
Hình 4-1: Kiến trúc hệ thống tìm kiếm giáo sư
Hiện thực hệ thống
Trình thu thập dữ liệu Data Collector dùng thu thập các trang web Trong luận văn này chúng tôi sử dụng phần mềm nguồn mở Apache Nutch 1 để thu thập dữ liệu
Tiến hành chạy Nutch trong 36 giờ để thu thập các trang web từ các website sau:
~ 36 ~ (1) http://www.eecs.mit.edu/
(2) http://www.cs.cmu.edu/
Chúng tôi thu được 40,979 trang web
Trình rút trích đối tượng Entity Extractor rút trích các thuộc tính của đối tượng trong tài liệu
Name: tên đối tượng cũng là định danh đối tượng (e i id)
Position: vị trí của đối tượng trong tài liệu (e i pos)
Conf: độ tin cậy của đối tượng (e i conf)
Trong luận văn này chúng tôi sử dụng phần mềm nguồn mở Apache OpenNLP 1 để rút trích các thuộc tính của đối tượng trong tài liệu Với dữ liệu ở trên chúng tôi rút trích được 310,586 thực thể person
Trình lưu giữ thông tin rút trích Extraction Storage tổ chức lưu trữ thông tin rút trích hiệu quả để phục vụ cho động cơ truy vấn Chúng tôi sử dụng phần mềm nguồn mở Apache Lucene 2 để đánh chỉ mục thông tin đã được rút trích Hình 4-2 là chỉ mục cho từ khóa của một tài liệu Với chỉ mục này thì khi ta có một tập các từ khóa, ta sẽ tìm nhanh những tài liệu nào chứa các từ khóa này Đối với đối tượng chúng tôi đánh chỉ mục như Hình 4-3, trong đó mỗi mục là một đối tượng giáo sư
Hình 4-2: Đánh chỉ mục cho từ khóa
1 http://incubator.apache.org/opennlp/
Hình 4-3: Đánh chỉ mục cho thực thể person Động cơ truy vấn Query Engine nhận vào câu truy vấn và thực hiện tìm kiếm person, xếp hạng và trả về danh sách tên các giáo sư đã được xếp hạng theo độ phù hợp giảm dần với câu truy vấn
Các thông số xếp hạng trong mô hình ở chương 3 được tính như sau
Chúng tôi sử dụng LinkRank của một trang web trong Apache Nutch làm PageRank cho một tài liệu d
Chúng tôi sử dụng công thức tính proximity trong [34] để tính độ phù hợp của quan sát γ
Trong đó 𝑡𝑜𝑘𝑒𝑛 𝑒 là số token biểu diễn thực thể e, 𝑐 là số token của cụm từ c
Trong bài toán này c là một từ khóa nên 𝑐 = 1 Và 𝑠𝑐𝑜𝑝𝑒 𝛾 là chiều dài cửa sổ nhỏ nhất bao lấy quan sát γ
Ví dụ: Xét câu truy vấn Q = (Stanford graduate # person) và một quan sát s: Jerry Yang graduated from Stanford University … Ta có e = “Jerry Yang” nên 𝑡𝑜𝑘𝑒𝑛 𝑒 ~ 38 ~ 2, c 1 = “Stanford” và c 2 = “graduate” Cửa sổ quan sát bắt đầu từ “Jerry” đến
“Stanford” nên 𝑠𝑐𝑜𝑝𝑒 𝛾 = 5 Vậy ta có proximity của quan sát γ là:
Giải thuật để tìm kiếm đối tượng giáo sư được chúng tôi hiện thực như trong Hình 4-4 Đầu vào: L(E): danh sách thực thể person theo thứ tự docID
L(k j ): danh sách tài liệu có chứa từ khóa k j theo thứ tự docID q = (k 1 , …, k l , professor, #professor) Đầu ra: danh sách thực thể person
1: Load inverted lists: L(E), L(k 1 ), …, L(k l ) ; /* intersecting lists by document number */
2: For each doc d in the intersection of all lists 3: For each instantiated tuple t in document d
5: For each instantiated tuple t in the whole process 6: calculate p(q(t)|D) = p(q(t)|d)p(d) 𝑑 ; 7: calculate Score(q(t)) = p(q(t)|D) log p(q(t)|D′) p(q(t)|D)
8: Sort tuple t lists by Score(q(t)) 9: Return tuple t lists
Hình 4-4: Giải thuật tìm kiếm đối tượng giáo sư
Kết quả thực nghiệm
Đánh giá kết quả
Để đánh giá hiệu quả của một hệ thống truy hồi thông tin, chúng ta cần có ba thành phần sau [27]: tập các tài liệu, tập các truy vấn, và tập các đáp án phù hợp hay không phù hợp của mỗi tài liệu cho mỗi câu truy vấn Đối với một tập dữ liệu kiểm tra chuẩn, sự phù hợp hay không phù hợp của một tài liệu đối với mỗi câu truy vấn được xây dựng trước Điều này đòi hỏi nhiều công sức khi tập dữ liệu kiểm tra lớn hay khi số câu truy vấn nhiều Đối với bài toán tìm kiếm giáo sư, theo kiến thức tốt nhất của chúng tôi cho đến lúc này chưa có một tập dữ liệu kiểm tra chuẩn nào được xây dựng Đó cũng là khó khăn mà khi Tao Cheng [1], [2], [4], [7], [10], [20] đánh giá hiệu quả hệ thống tìm kiếm số điện thoại và email gặp phải Để vượt qua, Cheng dùng hai phương pháp xấp xỉ để ước lượng kết quả trả về
Phương pháp thứ nhất, bằng cách thủ công Cheng dò qua các kết quả trả về của giải thuật EntityRank để lấy kết quả phù hợp đầu tiên Sau đó Cheng tìm xem kết quả này xuất hiện ở thứ hạng nào trong những giải thuật khác Từ đó Cheng tính được giá trị 𝑀𝑅𝑅 dùng để so sánh Theo Cheng, mặc dù phương pháp này có tính thiên vị giải thuật EntityRank, nhưng cũng một cách trực giác để so sánh thứ hạng của kết quả phù hợp giữa EntityRank với các giải thuật khác
Phương pháp thứ hai, Cheng kiểm tra 10 kết quả trả về đầu tiên của mỗi giải thuật một cách thủ công Nếu kết quả phù hợp đầu tiên nằm trong top mười, thì thứ hạng được dùng để tính 𝑀𝑅𝑅, ngược lại thứ hạng của kết quả phù hợp đầu tiên là 10
Trực giác để sử dụng phương pháp này là đối với người sử dụng thường thì 10 kết quả trả về đầu tiên là quan trọng Phương pháp này được Cheng sử dụng để tính giá trị 𝑀𝑅𝑅
~ 40 ~ Dựa trên ý tưởng của Cheng, chúng tôi cũng ước lượng rằng 10 kết quả trả về đầu tiên là quan trọng đối với người sử dụng Từ đó chúng tôi sử dụng các độ đo trong truy hồi thông tin để đo hiệu quả của hệ thống tìm kiếm giáo sư Cụ thể trong luận văn này, chúng tôi sử dụng độ đo MRR và MAP để đánh giá hệ thống
Chúng tôi xây dựng tập các truy vấn để tiến hành thực nghiệm dựa trên hai miền tìm kiếm là tìm các giáo sư theo lĩnh vực nghiên cứu và tìm các giáo sư có một giải thưởng nào đó Tương ứng, hai mẫu truy vấn được định nghĩa như sau
Tìm giáo sư theo lĩnh vực nghiên cứu
Câu truy vấn cho loại này có dạng q = (research area professor #professor)
Chúng tôi chọn năm lĩnh vực nghiên cứu trong ngành khoa học máy tính để thực hiện truy vấn là Database Systems, Artificial Intelligence, Computer Architecture, Computer Graphics, và Natural Language Processing
Q5 = (natural language processing professor #professor) Tìm giáo sư có giải thưởng
Câu truy vấn cho loại này có dạng q = (award professor #professor) Chúng tôi chọn năm giải thưởng trong ngành khoa học máy tính để thực hiện truy vấn là Turing Award, John Von Neumann Medal, IJCAI Award, Computer Pioneer Award, và ACM Fellow
Q7 = (john von neumann medal professor #professor)
Q9 = (computer pioneer award professor #professor)
Chúng tôi tiến hành thí nghiệm với hai mẫu truy vấn trên và chọn 10 kết quả trả về đầu tiên cho từng câu truy vấn để đánh giá Bằng cách kiểm tra thủ công từng kết quả trả về để xem có phù hợp hay không phù hợp với câu truy vấn, từ đó chúng tôi tính các độ đo và kết quả đạt được như trong Bảng 5-1
Bảng 5-1: Kết quả đánh giá hệ thống tìm kiếm giáo sư
Mẫu truy vấn MRR MAP
Tìm giáo sư theo lĩnh vực nghiên cứu 1.000 0.924 Tìm giáo sư có giải thưởng 0.840 0.584 Để tăng thêm độ tin cậy của hệ thống, chúng tôi xây dựng tập truy vấn lớn hơn để tiến hành thí nghiệm Trong lần thí nghiệm này chúng tôi chỉ đo MRR để kiểm tra xem kết quả đúng trả về đầu tiên có được xếp vào những vị trí đầu hay không Tập truy vấn được chúng tôi xây dựng như sau
Tìm giáo sư theo lĩnh vực nghiên cứu
RAQ1 = (algorithms and complexity professor #professor)
RAQ2 = (computational biology professor #professor)
RAQ3 = (computational neuroscience professor #professor)
RAQ4 = (human-computer interaction professor #professor)
RAQ5 = (large-scale distributed systems professor #professor)
RAQ6 = (machine learning professor #professor)
RAQ7 = (mobile and pervasive computing professor #professor)
RAQ8 = (security and privacy professor #professor)
RAQ9 = (machine translation professor #professor)
RAQ10 = (information retrieval professor #professor)
RAQ11 = (computational cognitive science professor #professor)
RAQ12 = (computational genomics professor #professor)
RAQ13 = (decentralized information professor #professor)
RAQ14 = (evolutionary design and optimization professor #professor)
RAQ15 = (medical vision professor #professor)
RAQ16 = (stochastic systems professor #professor)
RAQ17 = (advanced network architecture professor #professor)
RAQ18 = (computer systems security professor #professor)
RAQ19 = (cryptography and information security professor #professor)
RAQ20 = (parallel and distributed operating systems professor #professor)
RAQ21 = (programming languages and software engineering professor
RAQ22 = (programming methodology professor #professor)
RAQ23 = (user interface design professor #professor)
RAQ24 = (quantum information science professor #professor) Tìm giáo sư có giải thưởng
AQ1 = (acm sigplan award professor #professor)
AQ2 = (acm software system award professor #professor)
AQ3 = (chi academy professor #professor)
AQ4 = (acm knuth prize professor #professor)
AQ5 = (sigcomm award professor #professor)
AQ6 = (sigmod award professor #professor)
AQ7 = (sigir award professor #professor)
AQ8 = (vldb award professor #professor)
AQ9 = (acm sigcse award professor #professor)
AQ10 = (aaai fellow professor #professor)
AQ11 = (ieee fellow professor #professor)
AQ12 = (gửdel prize professor #professor)
AQ13 = (gordon bell prize professor #professor)
AQ14 = (grace murray hopper award professor #professor)
AQ15 = (acm doctoral dissertation award professor #professor)
Aq16 = (national academy of engineering member professor #professor)
AQ17 = (national academy of sciences member professor #professor)
AQ18 = (national science foundation career award professor #professor)
AQ19 = (american academy of arts and sciences fellow professor #professor)
AQ20 = (sloan research fellowship professor #professor)
Phần lớn kết quả đúng đầu tiên nằm ở vị trí đầu đối với tìm theo lĩnh vực nghiên cứu, tuy nhiên có vài truy vấn chúng xuất hiện ở vị trí 2, 3, 4 đối với tìm theo giải thưởng Kết quả đánh giá thí nghiệm như trong Bảng 5-2
Bảng 5-2: Kết quả đánh giá MRR của hệ thống tìm kiếm giáo sư
Tìm giáo sư theo lĩnh vực nghiên cứu 0.769 Tìm giáo sư có giải thưởng 0.659
Nhận xét kết quả
Hệ thống tìm kiếm giáo sư của chúng tôi không tiến hành thí nghiệm trên một tập dữ liệu kiểm tra chuẩn nào nên khó có thể so sánh với một hệ thống nào khác Tuy
~ 44 ~ vậy, chúng tôi cũng đối chiếu kết quả đánh giá với một số hệ thống tìm kiếm đối tượng khác để xem xét các yếu tố ảnh hưởng tới hệ thống tìm kiếm đối tượng
Hệ thống tìm kiếm số điện thoại và email của Tao Cheng [1], [2], [4], [7], [10], [20] có giá trị MRR trung bình là 0.65, trong khi hệ thống của chúng tôi có giá trị MRR từ 0.659 đến 0.769 Cheng thí nghiệm trên tập dữ liệu WebBase Project, tập dữ liệu lớn nên mật độ đối tượng thưa, điều này có thể làm giảm độ chính xác của tìm kiếm đối tượng
Hệ thống của P Li [35], tìm các đối tượng liên quan đến hóa học và giáo dục, có giá trị MAP trung bình là 0.25 Phương pháp của P Li không dựa vào đối tượng cụ thể nào nên không tận dụng sự chính xác trong rút trích đối tượng
Một hệ thống khác được X Li và các cộng sự xây dựng để tìm kiếm các đối tượng trên Wikipedia bao gồm Award, City, Club, Company, Film, Novel, Person, Player, Song, và University MAP có giá trị khoảng 0.748 - 0.894 Độ chính xác cao bởi vì việc rút trích đối tượng trên Wikipedia là chính xác, văn bản các trang Wikipedia chuẩn hơn và giàu ngữ nghĩa hơn các trang web thông thường Bên cạnh đó, X Li sử dụng liên kết quan hệ giữa các đối tượng đã làm tăng thêm khả năng chính xác
Với những hiểu biết trên, chúng tôi hi vọng sẽ cải tiến hệ thống bằng cách kết hợp nhiều hơn các đặc trưng và tăng độ chính xác bằng các liên kết quan hệ giữa các đối tượng