Với sự bùng nổ thông tin trên WWW ngày nay, việc đòi hỏi luôn có câu trả lời chính xác khi tìm kiếm thông tin trên đó là không thực tế. Vấn đề này liên quan đến khoảng cách ngữ nghĩa giữa các khái niệm, quan hệ, và thuộc tính, và điều này đã thu hút nhiều nỗ lực nghiên cứu. Về khoảng cách ngữ nghĩa giữa các kiểu khái niệm và quan hệ, các phương pháp trước đây có thể được phân loại theo hai hướng tiếp cận chính là dựa trên kho ngữ liệu hoặc dựa trên Ontology. Trong cách tiếp cận thứ nhất, khoảng cách ngữ nghĩa giữa các từ biểu diễn các khái niệm và quan hệ được xác định theo ngữ cảnh xuất hiện của chúng trong một kho ngữ liệu. Trong cách tiếp cận thứ hai, nó được xác định dựa trên một mạng ngữ nghĩa của các từ. Tuy nhiên, vì các phương pháp này phụ thuộc vào sự xuất hiện và nghĩa thực sự của các từ, nên chúng không áp dụng được cho các nhãn kiểu chỉ mang tính định danh.
Trong đề tài này, vì cơ sở tri thức của VN-KIM được xây dựng trên một Ontology, chúng tôi biến đổi công thức tính khoảng cách ngữ nghĩa dựa trên Ontology giữa các từ trong [63] cho các nhãn kiểu khái niệm và quan hệ. Thay vì tính các xác suất xuất hiện của các từ trong một kho ngữ liệu theo phương pháp đó, chúng tôi rút ra các xác suất xuất hiện của các kiểu khái niệm và quan hệ từ số lượng các thực thể thuộc các kiểu này trong cơ sở
Kết quả trả về Câu truy vấn
SeRQL
tri thức của VN-KIM. Chúng tôi gọi phương pháp đề xuất này là dựa trên dân số (Population-Based)
Đối với các giá trị thuộc tính, trong đề tài này chúng tôi quan tâm đến các tên thực thể biểu diễn bằng các chuỗi kí tự. Trong thực tế, khi truy vấn, người sử dụng thường không nhớ chính xác hoặc nhập vào chính xác tên của thực thể cần tìm, gây nên sự sai lệch giữa câu truy vấn và câu trả lời. Trong [8], các tác giả đã mở rộng phương pháp TF-IDF với so trùng mờ giữa các từ khoá, gọi là Soft TF-IDF, để định nghĩa khoảng cách ngữ nghĩa giữa tên thực thể. Tuy nhiên, trong đánh giá IDF, ý nghĩa của một từ khoá đối với các tên thực thể thuộc một lớp cụ thể chưa được xét đến. Vì vậy, chúng tôi đề xuất phương pháp Soft TF-IDF nhạy cảm với lớp (Class-Sensitive).
Ngoài ra, chúng tôi cũng lưu ý là, trong khi các độ đo đối xứng như độ tương tự đã được bàn bạc nhiều, các nghiên cứu về độ đo bất đối xứng có vẻ còn ít. Nói riêng, người ta có thể muốn đo mức độ một đồ thị truy vấn bao phủ một đồ thị trả lời. Trong [3], mặc dù sử dụng thuật ngữ “similarity” mặc định là đối xứng, các tác giả đã biện luận rằng nó nên bất đối xứng. Trong đề tài này, cả hai độ so trùng mà chúng tôi định nghĩa cho kiểu và tên thực thể đều bất đối xứng.
Về mặt hiện thực, việc xây dựng một hệ thống truy hồi gần đúng các đồ thị tri thức ngay từ đầu là một kỳ công. Do đó, chúng tôi chọn cách tiếp cận biến đổi truy vấn. Cụ thể là chúng tôi tận dụng cơ sở hạ tầng của Sesame và SeRQL để quản trị và so trùng chính xác các đồ thị tri thức. Tức là, tri thức được lưu trữ như các đồ thị RDF trong Sesame. Một đồ thị truy vấn trước hết sẽ được tổng quát hoá lên một mức để truy hồi các đồ thị RDF thông qua SeRQL. Sau đó, các đồ thị trả lời chính xác đối với truy vấn biến đổi đó mới được so trùng với truy vấn gốc để trả về độ tương tự hoặc bao phủ giữa chúng.
Độ bao phủ giữa các kiểu thực thể
Độ tương tự giữa các biểu thức như từ, khái niệm, hay quan hệ, đo mức độ gần nhau về ngữ nghĩa hoặc ý nghĩa của chúng. Trong cách tiếp cận dựa trên kho ngữ liệu, còn gọi là nghèo tri thức (Knowledge-Poor), quan hệ giữa các từ trong một kho ngữ liệu được xem xét. Giả thiết chính của cách tiếp cận này là các từ tương tự nhau được sử dụng trong các ngữ cảnh tương tự nhau, và các ngữ cảnh tương tự nhau sử dụng các từ tương tự nhau. Vì
vậy, một phân bố về sự đồng xuất hiện của các từ có thể được dùng để tính độ tương tự giữa chúng ([28], [45]). Ưu điểm của cách tiếp cận này là nó không đòi hỏi tri thức miền.
Tuy nhiên, cũng vì vậy mà nó bỏ sót sự thừa kế về ngữ nghĩa của các từ trong ngôn ngữ tự nhiên.
Trong khi đó, ở cách tiếp cận dựa trên Ontology, còn gọi là giàu tri thức (Knowledge-Rich), ngữ nghĩa định trước của các khái niệm, mà cụ thể là một hệ phân loại, được tính đến bằng việc xây dựng các tài nguyên từ vựng thành các đồ thị định hướng hoặc mạng. Sau đó, độ tương tự giữa các khái niệm được tính dựa trên các tính chất của các đường dẫn nối liền chúng. Vì vậy, cách tiếp cận này dễ hiểu bằng trực giác. Nó cũng có thể được phân loại chi tiết hơn là dựa trên từ điển hay dựa trên hệ phân loại.
Trong các phương pháp dựa trên từ điển, một từ điển đơn ngữ được chuyển thành một mạng bằng cách tạo một nút cho mỗi từ chính, và các cạnh cho các quan hệ giữa một từ chính với các từ trong định nghĩa của nó. Độ tương tự của các từ sẽ được tính bằng cách lan truyền khởi động trên mạng này ([55], [71]). Còn phương pháp đơn giản nhất dựa trên hệ phân loại tính độ tương tự giữa hai khái niệm trên cơ sở của số cạnh nằm trên đường dẫn ngắn nhất nối liền chúng trong một hệ phân loại, như WordNet ([79], [136]). Trong [54], các tác giả đề nghị là một khái niệm sẽ gần về ngữ nghĩa với một khái niệm khác, nếu đường dẫn nối liền chúng không quá dài và không thay đổi hướng nhiều. Tuy nhiên, khoảng cách vật lý theo cây đó không luôn phản ánh đúng khoảng cách ngữ nghĩa thật sự.
Không như các phương pháp dựa trên cạnh nói trên, phương pháp dựa trên nút trong [118] kết hợp các cách tiếp cận dựa trên Ontology và dựa trên kho ngữ liệu để đo độ tương tự giữa một cặp khái niệm c1vàc2bằng mức độ chúng chia sẻ thông tin chung.
Thông tin chia sẻ này được định nghĩa là lượng tin của lớp trên chung nhỏ nhất, ký hiệu là c1 ∨ c2, bao phủ cả c1 và c2:
SimR(c1, c2) = − logPr(c1 ∨ c2) (Pt. 5.2.1)
với Pr(c) là xác suất xuất hiện của từ biểu diễn khái niệm c trong kho ngữ liệu đang dùng.
Nhược điểm của phương pháp này là nhiều cặp khái niệm sẽ có cùng độ tương tự nếu chúng có cùng lớp trên chung nhỏ nhất.
Để khắc phục hạn chế của [118], các tác giả của [63] dùng cả hai độ đo dựa trên cạnh và dựa trên nút, giả sử rằng khoảng cách ngữ nghĩa của liên kết nối liền một khái niệm con c với khái niệm cha của nó Par(c) là lượng tin của c không nằm trong Par(c).
Nói một cách hình thức:
Pr(c ∧ Par(c))
DistJC(c, Par(c)) = − logPr(c | Par(c)) = − log ⎯⎯⎯⎯⎯⎯⎯ (Pt. 5.2.2) Pr(Par(c))
Vì c ∧ Par(c) = c, nên:
Pr(c)
DistJC(c, Par(c)) = − log ⎯⎯⎯⎯⎯ = − logPr(c) + logPr(Par(c)) (Pt. 5.2.3) Pr(Par(c))
với − logPr(c) biểu diễn lượng tin của khái niệm c.
Biết được khoảng cách ngữ nghĩa từ một nút đến nút cha của nó, khoảng cách ngữ nghĩa giữa hai nút bất kỳ trong một hệ phân cấp được tính bằng tổng khoảng cách của đường dẫn ngắn nhất nối liền chúng:
DistJC(c1, c2) = ∑ DistJC(c, Par(c)) (Pt. 5.2.4)
c∈Path(c1, c2)\{c1 ∨ c2}
với c∈Path(c1, c2)\{c1 ∨ c2} là tập tất cả khái niệm nằm dọc theo đường dẫn nối liền c1 và c2 ngoại trừ c1 ∨ c2. Sau khi loại bỏ các hạng thức đối dấu, ta nhận được:
DistJC(c1, c2) = DistJC(c1, c1 ∨ c2) + DistJC(c2, c1 ∨ c2)
= − (logPr(c1) + logPr(c2)) + 2logPr(c1 ∨ c2) (Pt. 5.2.5) Độ đo đề nghị trong [84] dùng cùng các phần tử như trong DistJC(), nhưng theo một công thức khác. Tuy nhiên, như đánh giá trong [14], phương pháp Jiang-Conrath nói chung là tốt nhất trong số các phương pháp giới thiệu ở trên.
Các phương pháp nói trên đo độ tương giữa các từ thật sự. Trong phương pháp Jiang-Conrath chẳng hạn, lượng tin của một khái niệm được tính toán thông qua xác suất xuất hiện của từ biểu diễn khái niệm đó trong kho ngữ liệu. Tuy nhiên, một từ biểu diễn một kiểu trong một hệ phân cấp có khi chỉ là một định danh cho kiểu đó, chứ không nhất thiết liên quan đến một kho ngữ liệu hay có một ý nghĩa nào. Do đó, thay vì dùng xác suất xuất hiện của các nhãn kiểu, chúng tôi đề xuất dùng xác suất xuất hiện của các thực thể.
Tức là, chúng tôi định nghĩa:
Pr(t) = Pop(t)/N (Pt 5.2.6)
với Pop(t) là số thực thể thuộc kiểu t và N là tổng số thực thể trong cơ sở tri thức đang có.
Biến đổi Pt. 5.2.5, ta có:
Dist(t1, t2) = − (log(Pop(t1)/N) + log(Pop(t2)/N)) + 2log(Pop(t1 ∨ t2)/N)
= − (logPop(t1) + logPop(t2)) + 2log(Pop(t1 ∨ t2)) (Pt. 5.2.7) Độ tương tự giữa hai kiểu khái niệm có thể được định nghĩa bằng nghịch đảo của khoảng cách ngữ nghĩa của chúng, và co giãn vào khoảng [0, 1], như sau:
1
Sim(t1, t2) = ⎯⎯⎯⎯⎯⎯⎯ (Pt. 5.2.8)
1 + Dist(t1, t2)
Độ đo dựa trên số lượng thực thể này cũng áp dụng được cho khoảng cách ngữ nghĩa giữa hai kiểu quan hệ trong một hệ phân cấp, trong đó số lượng thực thể của một kiểu quan hệ là tổng số nhóm thực thể tham gia vào quan hệ thuộc kiểu đó.
Ngoài lý do là các nhãn kiểu có khi chỉ mang tính định danh, ví dụ sau cho thấy một ý nghĩa khác và tính hợp lý của độ đo dựa trên số lượng thực thể mà chúng tôi đề xuất ở đây. Đó là, ở một nơi có nhiều xe gắn máy như ở Việt Nam, khoảng cách giữa khái niệm
“phương tiện di chuyển” và “xe gắn máy” sẽ gần hơn so với ở một nơi có ít xe gắn máy như ở Mỹ. Tức là, khoảng cách ngữ nghĩa giữa các kiểu phụ thuộc vào số lượng thực thể của chúng.
Tiếp theo, có thể thấy rằng tất cả các độ đo nói trên là đối xứng, cho cả từ và kiểu thực thể, vì thật ra chúng là độ tương tự. Ví dụ, độ tương tự giữa một phương tiện di chuyển trong câu truy vấn “Tìm một phương tiện di chuyển” và một xe ô-tô trong câu trả lời “Một xe ô-tô cụ thể” bằng với độ tương tự giữa một xe ô-tô trong câu truy vấn “Tìm một xe ô-tô” và một phương tiện di chuyển trong câu trả lời “Một phương tiện di chuyển cụ thể”, và đều bằng độ tương tự giữa hai kiểu khái niệm “phương tiện di chuyển” và “xe ô-tô”.
Tuy nhiên, trong thực tế, xét trên quan hệ bao phủ (Subsumption), câu trả lời trong trường hợp trước là hoàn toàn thoả mãn, vì mọi xe ô-tô đều là phương tiện di chuyển, trong khi đó câu trả lời trong trường hợp sau chỉ là gần đúng, đối với các câu truy vấn.
Một cách tổng quát, người ta có thể muốn đo mức độ câu truy vấn bao phủ câu trả lời.
Như vậy, khác với hàm tương tự, hàm bao phủ là bất đối xứng. Nói cách khác, độ tương tự dựa trên các khoảng cách ngữ nghĩa không định hướng, còn độ bao phủ dựa trên các khoảng cách ngữ nghĩa có định hướng. Pt. 5.2.2 ở trên gợi ý cho một định nghĩa về khoảng cách bao phủ từ kiểu t1 đến kiểu t2 như sau:
Pr(t1 ∧ t2)
DistS(t1 → t2) = − logPr(t1 | t2) = − log ⎯⎯⎯⎯⎯⎯ (Pt. 5.2.9) Pr(t2)
với t1 ∧ t2 ký hiệu lớp dưới chung lớn nhất của t1 và t2, và Pr(t) được định nghĩa như trong Pt. 5.2.6 cho kiểu t.
Tiếp theo, độ bao phủ của một kiểu t1 trên một kiểu t2 có thể được định nghĩa là nghịch đảo của khoảng cách ngữ nghĩa có định hướng từ t1 đến t2, và co giãn vào khoảng [0, 1], như sau:
1
Sub(t1 → t2) = ⎯⎯⎯⎯⎯⎯⎯⎯ (Pt. 5.2.10)
1 + DistS(t1 → t2)
Định nghĩa này phù hợp với trực giác trong các trường hợp đặc biệt sau:
1. Nếu t1 là kiểu trên của t2, tức là t1 ∧ t2 = t2, thì Sub(t1 → t2) = 1 còn Sub(t2 → t1) < 1.
2. Nếu t1 và t2 tách rời nhau, tức là t1 ∧ t2 = ∅, thì Sub(t1 → t2) = Sub(t2 → t1) = 0.
Hình 5.2.1 minh họa sự khác nhau giữa các độ đo tương tự và bao phủ.
Hình 5.2.1 Độ bao phủ so với độ tương tự
Độ bao phủ giữa các tên thực thể
Do các tên thực thể được biểu diễn bằng các chuỗi kí tự, các độ đo so trùng trên chuỗi kí tự có thể áp dụng để so trùng tên thực thể. Các phương pháp so trùng chuỗi kí tự trước đây có thể phân loại là dựa trên kí tự hoặc dựa trên Token. Trong các phương pháp dựa trên kí tự, khoảng cách giữa hai chuỗi kí tự được định nghĩa là chi phí tối thiểu để chuyển một chuỗi kí tự thành chuỗi còn lại, sử dụng các thao tác soạn thảo như sao chép, chèn vào, thay thế, và xoá bỏ. Các phương pháp khác nhau qui định các trọng số khác nhau cho các thao tác này.
Độ đo của Levenshtein là một độ đo đơn giản trong đó chi phí cho mỗi thao tác chèn vào, thay thế, và xoá bỏ được định nghĩa bằng 1, còn của thao tác sao chép là 0 ([82]). Độ
t1 ∨ t2
t1 ∧ t2
t1 t2
Sim(t1, t2)
Sub(t1 → t2) Sub(t2 → t1)
đo này được mở rộng trong [92] với các chi phí khác nhau cho các thao tác chèn vào, thay thế, và xoá bỏ. Trong [48] và [121], các tác giả cũng sử dụng khoảng cách soạn thảo cho so trùng chuỗi kí tự, nhưng định nghĩa các chi phí khác nhau cho thao tác chèn vào các vị trí khác nhau trong một chuỗi kí tự. Trong [89], các tác giả so trùng hai chuỗi kí tự một cách đệ qui theo các phần con của chúng, rồi kết hợp độ so trùng giữa các phần con đó lại thành độ so trùng giữa hai chuỗi kí tự gốc.
Trong khi đó, độ đo của Jaro ([61], [62]) dựa trên số lượng và vị trí của các kí tự chung giữa hai chuỗi. Một kí tự thuộc một chuỗi được xem là chung với một kí tự thuộc chuỗi còn lại, nếu chúng giống nhau và các vị trí tương đối của chúng trong hai chuỗi đủ gần. Chuỗi chung giữa hai chuỗi khi đó bao gồm các kí tự chung này. Độ so trùng chuỗi được định nghĩa trên số lượng các vị trí nơi các kí tự trong hai chuỗi là khác nhau, và các chiều dài của hai chuỗi và chuỗi chung giữa chúng. Trong [135], tác giả sửa đổi độ đo của Jaro bằng việc tính đến phần tiền tố chung giữa hai chuỗi. Như phân tích trong [29], các độ đo của Jaro và Jaro-Winkler tốt cho các chuỗi kí tự ngắn.
Với các độ đo dựa trên Token, thứ tự của các Token trong một chuỗi là không quan trọng. Ví dụ, “Huỳnh Tấn Đạt” và “Đạt Tấn Huỳnh” được xem là như nhau. Tức là, các độ đo này dựa trên số lượng Token chung giữa hai chuỗi. Một phương pháp đơn giản theo cách tiếp cận này đã được đề ra trong [60], theo đó độ tương tự giữa hai chuỗi được định nghĩa là tỉ số giữa số lượng Token chung và tổng số Token trong hai chuỗi.
Như đề nghị trong [8], một chuỗi kí tự có thể xem là một tài liệu gồm các từ khoá hay Token, và như vậy, theo quan điểm của truy hồi thông tin, so trùng hai chuỗi trở thành so trùng hai tài liệu. Trong mô hình Vector ([119], [130]), một tài liệu được biểu diễm bằng một Vector trên một tập từ khoá chỉ mục, trong đó trọng số của từ khoá chỉ mục tương ứng với mỗi chiều là một giá trị trong khoảng [0, 1]. Gọi Vector biểu diễn tài liệu d là (w1d, w2d,…, wtd) và Vector cho tài liệu q là (w1q, w2q,…, wtq). Độ tương tự giữa d và q được định nghĩa là Cosine của góc giữa hai Vector biểu diễn d và q, tức là:
∑i=1,twid × wiq
sim(d, q) = ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ (Pt. 5.2.11)
(∑i=1,twid2 × ∑i=1,twiq2)1/2
Các trọng số từ khoá chỉ mục được dẫn ra như sau. Gọi N là tổng số tài liệu trong hệ thống, ni là số lượng tài liệu trong đó từ khoá ki xuất hiện, và freqid là tần suất thô của ki, tức là số lần ki xuất hiện trong d. Tần suất chuẩn hoá của ki trong d được định nghĩa bằng:
tfid = log(freqid + 1) (Pt. 5.2.12)
Tần suất tài liệu nghịch đảo cho ki được định nghĩa bằng:
idfi = log(N/ ni) (Pt. 5.2.13)
Trong khi tfid đo mức độ xuất hiện của ki trong d, idfi đo ý nghĩa của sự xuất hiện của ki
trong một tài liệu; ki xuất hiện trong càng nhiều tài liệu, thì sự xuất hiện của ki càng ít ý nghĩa. Vì vậy trọng số của ki đối với d được định nghĩa bằng :
wid = tfid × idfi (Pt. 5.2.14)
Ngày nay mô hình Vector phổ biến vì những lý do sau: (1) độ đo so trùng bán phần của nó cho phép có và xếp hạng các câu trả lời gần đúng; (2) việc đánh giá các trọng số từ khoá chỉ mục của nó cải thiện hiệu quả truy hồi thông tin; và (3) nó đơn giản và nhanh.
Theo [8], TF-IDF là phương pháp dựa trên Token tốt nhất cho so trùng chuỗi kí tự.
Một nhược điểm chung của tất cả các phương pháp nói trên là các độ đo đó đều là độ tương tự và do đó đối xứng. Trong khi đó, như đã phân tích trong trường hợp so trùng kiểu thực thể, chúng nên là bất đối xứng. Thật vậy, giả sử nếu muốn tìm một người có tên
“Đạt” và trong cơ sở tri thức có một người tên “Huỳnh Tấn Đạt”, thì “Huỳnh Tấn Đạt”
nên được trả về như một câu trả lời hoàn toàn thỏa mãn. Tuy nhiên, nếu câu truy vấn là
“Huỳnh Tấn Đạt”, thì “Đạt” chỉ là một câu trả lời gần đúng.
Do đó trong [8], các tác giả đã sửa đổi phương pháp TF-IDF như sau. Gọi S là một chuỗi truy vấn và T là một chuỗi sự kiện, và CLOSE(θ, S, T) = {u∈S | ∃v∈T: sim'(u, v) >
θ}, với sim'(u, v) độ tương tự thứ cấp giữa u và v. Với mỗi u∈CLOSE(θ, S, T), đặt N(u, T)
= maxv∈T sim'(u, v). Khi đó, độ so trùng Soft TF-IDF, hay độ bao phủ, từ S đến T được định nghĩa bằng:
∑ki∈CLOSE(θ, S, T) wiS × wiT × N(ki, T)
Sub(S → T) = ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ (Pt. 5.2.15)
(∑i=1,twid2 × ∑i=1,twiq2)1/2