Sử dụng phương pháp xây dựng đồ thị khoảng cách các điểm dữ liệu theo độ sâu
Bước 1: Các dữ liệu dương (các cặp đồng nghĩa) gán cho Lớp 0 (Layer 0)
Bước 2: Tìm các dữ liệu thuộc tập chưa có nhãn có khoảng cách đến các phần tử Lớp 0 nhỏ hơn ngưỡng T cho trước, gán các phần tử tìm được thuộc Lớp 1 (Layer 1)
Bước 3: Tìm phần tử Lớp 2 tương tự bước 2 bằng việc đo khoảng cách các dữ liệu chưa có nhãn đến dữ liệu Lớp 1
Lặp cho đến khi không còn dữ liệu có nhãn hoặc số lượng Lớp đạt đến một ngưỡng xác định
Dữ liệu âm sẽ được xác định dựa vào độ sâu và quyết định bởi việc thực nghiệm thay đổi tham số
3.2. Thuật toán k-NN (Nearest Neighbour)
Giới thiệu
Thuật toán K-Nearest Neighbors k người láng giềng gần nhất (k-NN) được sử dụng rất phổ biến trong lĩnh vực khai phá dữ liệu Data Mining. k-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần xếp lớp với tất cả các đối tượng trong dữ liệu huấn luyện Training Data. Đối tượng được phân lớp dựa vào k láng giềng gần nó nhất. Với k là số nguyên dương xác định trước khi thực hiện thuật toán. Dùng khoảng cách Euclidean để tính khoảng cách giữa các đối tượng với nhau.
Ví dụ: Xét 1 láng giềng gần nhất. Gán z vào lớp c2 Xét 3 láng giềng gần nhất. Gán z vào lớp c1 Xét 5 láng giềng gần nhất. Gán z vào lớp c1 Hình 3.4. Phân lớp nhị phân sử dụng k- NN Thuật toán
1. Xác định giá trị tham số k (số láng giềng gần nhất)
2. Tính khoảng cách (Distance) giữa đối tượng cần phân lớp với các đối tượng trong dữ liệu huấn luyện training data (ta sử dụng khoảng cách Euclide, Cosine…)
3. Sắp xếp khoảng cách và xác định k láng giềng gần nhất với đối tượng cần phần lớp
4. Lấy tất cả các lớp của k láng giềng gần nhất đã xác định
5. Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng Để tìm các phần tử láng giềng gần nhất thì cần định nghĩa một độ đo, và ta sử dụng độ đo khoảng cách Euclide. Giả sử rằng có 2 phần tử dữ liệu X1=(x11, x12,…,x1n) và X2=(x2, x22,…, x2n) khi đó độ đo khoảng cách Euclide được tính bằng công thức[3]:
3.3. Thuật toán SVM (Support Vector Machines)
3.3.1. Giới thiệu
Thuật toán máy vector hỗ trợ (Support Vector Machines - SVM) được Corters và Vapnik đưa ra năm 1995 [9]. Đây là phương pháp phân lớp tuyến tính (linear classifier), nhằm mục đích xác định một siêu phẳng (hyperplane) để phân tách hai lớp của dữ liệu ví dụ: lớp các ví dụ có nhãn dương (positive) và lớp các ví dụ có nhãn âm (negative).
Ý tưởng của thuật toán: Là chuyển tập mẫu từ không gian biểu diễn Rn sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd, tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, có nghĩa là tìm ra miền phân bố của từng lớp trong không gian Rn để từ đó xác định được phân lớp của 1 mẫu cần nhận dạng.
3.3.2. Thuật toán SVM
Tính chất nổi bật của SVM là đồng thời cực tiểu lỗi phân lớp và cực đại khoảng cách lề giữa các lớp
Giả sử rằng có một số điểm dữ liệu thuộc một trong hai lớp, và mục tiêu là xác định xem dữ liệu mới thêm vào sẽ thuộc lớp nào đồng thời coi mỗi điểm dữ liệu mới thêm vào như một vector p chiều và ta muốn biết liệu có tách được những điểm đó bằng một siêu phẳng p-1 chiều hay không (được gọi là phân loại tuyến tính).
Xem dữ liệu đầu vào như hai tập vector n chiều, một SVM sẽ xây dựng một siêu phẳng riêng biệt trong không gian n chiều đó sao cho nó tối đa hóa biên lề giữa hai tập dữ liệu.
Để tính lề, hai siêu phẳng song song được xây dựng, mỗi cái nằm ở một phía của siêu phẳng phân biệt và chúng được đẩy về phía hai tập dữ liệu.
Thực tế, một phân biệt tốt sẽ thu được siêu phẳng có khoảng cách lớn nhất đến các điểm lân cận của hai lớp, vì lề càng tốt thì sai số tổng quát hóa của bộ phận phân lớp càng tốt hơn. Trong hình 3.5 thì H2 là siêu phẳng tốt
Hình 3.5. Phân lớp nhị phân sử dụng SVM
Với bộ phân lớp nhị phân
Cho tập dữ liệu học gồm n dữ liệu đã gán nhãn D={(x1, y1), (x1, y1), …, (xn, yn)} với yi {-1, 1} là một số nguyên xác định lớp của xi. Khi đó mỗi xi là một văn bản được biểu diễn dưới dạng một vector thực gồm d chiều. Bộ phân lớp tuyến tính (mô hình phân lớp) được xác định thông qua một siêu phẳng có dạng:
f(x) = w.x - b = 0
Trong đó: w là vector pháp tuyến của siêu phẳng và b đóng vai trò là tham số mô hình
Bộ phân lớp nhị phân : h: Rd { 0, 1} được xác định thông qua dấu của f(x)
h(x)
Để tìm một siêu phẳng phân cách có lề lớn nhất, xây dựng các vector hỗ trợ và siêu phẳng song song với các siêu phẳng phân cách và gần vector hỗ trợ nhất, đó là hàm:
w.x – b = 1 w.x – b = -1
Khoảng cách giữa 2 siêu phẳng là do đó cần phải cực tiểu hóa ||w|| để đảm bảo với mọi i ta có:
w.x – b > 1 cho lớp thứ nhất w.x – b <-1 cho lớp thứ hai
Hình 3.6. Biểu diễn siêu phẳng lề cực đại cho bộ phân lớp SVM nhị phân
3.4. Phương pháp hồi qui logistic
Phương pháp hồi qui Logistic [26] sử dụng cho mô hình phân lớp được xác định như sau:
1 ( / ) exp( ( , )) ( ) i i i P y x f x y Z x Z(x)= exp( i i( , )) y i f x y
Trong đó, x là cặp chuỗi đầu vào, y là dự đoán nhị phân (đồng nghĩa hay không đồng nghĩa), fi(x, y) là một nhị phân hoặc một hàm đặc trưng giá trị thực mà mô tả đặc trưng của cặp xâu, i là trọng số cho đặc trưng. Trọng số được xác định là log- likelihood của tập dữ liệu huấn luyện:
( ) ( ) 1log ( | )
n j j
j p y x
Mỗi mục của tập dữ liệu training bao gồm một cặp chuỗi và nhãn nhị phân nó cho biết cặp đó có đồng nghĩa hay không. Với một từ điển có thể tạo ra tập training theo cách:
Sinh ra tất cả các cặp chuỗi có thể.
Gán nhãn cho mỗi cặp là đồng nghĩa hay không.
Tuy nhiên, độ phức tạp của thuật toán này rất lớn O(n2) từ một từ điển có n mục từ. Tsuruoka và cộng sự đã giới thiệu một tiến trình lọc, một cặp xâu được tiến hành dự đoán là đồng nghĩa hay không chỉ khi thỏa mãn ít nhất một trong hai điều kiện sau:
Hai chuỗi có độ tương tự cao (> 0.5) về sự tương tự của các đặc trưng bigram được tính: (similarity) =
với g1, g2 là bigram trong chuỗi
Tất cả các ký tự trong xâu ngắn được bao gồm trong những xâu dài với cùng thứ tự.
Trong giai đoạn ước lượng, những cặp không qua được quá trình lọc thì giá trị tương tự sẽ được gán là 0. Mặc dù tiến trình lọc đã cắt giảm số lượng của các mẫu training tuy nhiên chi phí cho việc thực hiện training vẫn rất cao. Số lượng các mẫu huấn luyện đối với các cặp không đồng nghĩa thì cao hơn nhiều so với các cặp đồng nghĩa và chúng ta đã được thấy trong một vài nghiên cứu sơ bộ.
3.5. Độ đo đánh giá mô hình phân lớp
Sau khi xây dựng được các mô hình giải quyết bài toán phân lớp, đưa ra một câu hỏi là làm thế nào để đánh giá hiệu quả của mô hình phân lớp đó và khi sử dụng các độ đo để đánh giá làm thế nào để ước lượng được tính đáng tin cậy. Như đã giới thiệu ở
trên có rất nhiều độ đo được sử dụng để đánh giá hiệu quả các mô hình phân lớp, một số độ đo hiệu quả trong việc đánh giá phân lớp nhị phân là độ chính xác P , độ hồi tưởng R và độ đo F.
Ma trận nhầm lẫn [2]: với các giá trị thực: P là dương, N là âm và các giá trị qua phân lớp: T là đúng, F là sai.
TP là số ví dụ là dương và thuật toán xác định đúng là dương (T)
TN là số ví dụ là âm và thuật toán xác định đúng là âm (T)
FP là số ví dụ là dương mà thuật toán xác định sai giá trị thành âm (F)
FN là số ví dụ là âm mà thuật toán xác định sai giá trị thành dương (F)
Lớp dự báo
Lớp = P Lớp = N
Lớp thực sự Lớp = P TP FP
Lớp = N FN TN
Với độ chính xác được xác định là số các ví dụ dương đúng chia cho tổng tất cả các giá trị được dự báo là dương như sau:
FN TP TP P (1)
Độ hồi tưởng ρ xác định theo công thức sau:
FP TP TP R (2)
Độ hồi tưởng chính là tỉ số giữa số ví dụ được phân lớp đúng là dương trên tổng số ví dụ dương thực tế. Nghĩa là phần trăm số ví dụ dương mà bộ phân lớp xác định đúng.
Ngoài hai độ đo trên, độ đo F cũng được sử dụng để đánh giá kết quả phân lớp, gồm có độ đo F được tính theo công thức sau:
2P R F
R P
(3)
Chương 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1. Môi trường thực nghiệm và các thành phần cài đặt
4.1.1. Môi trường thực nghiệm
Bộ xử lý Intel® Core™ i5-3317U CPU @ 1.7GHz
RAM 4.00 GB
Hệ điều hành Microsoft Windows 7 64bit
Công cụ lập trình Java JDK 8 & Eclipse 4.4.1 & Maven 3.2.3
Bảng 4.1. Môi trường thực nghiệm
4.1.2. Thành phần cài đặt
Dựa trên mô hình đã được đề xuất luận văn xây dựng các thành phần thực nghiệm dựa trên nền ngôn ngữ lập trình Java. Danh sách các thành phần và thư viện nguồn mở sử dụng được mô tả như các bảng dưới đây
Package Chức năng
edu.ontology Module xử lý ontology
edu.findneg Module tìm dữ liệu âm
edu.knn Module phân lớp dữ liệu bằng phương pháp kNN
edu.liblinear Module phân lớp dữ liệu bằng hồi quy logic và SVM
edu.distance Module các độ đo khoảng cách
edu.experiments Module thực hiện các thực nghiệm
Bảng 4.2. Các gói chức năng cài đặt
Thư viện Chức năng Địa chỉ OBO-Edit Phân tích cấu trúc Ontology dạng OBO http://oboedit.org/
Simmetrics Các độ đo khoảng cách như Euclidean, Cosine,…
https://github.com/Simmetrics/si mmetrics
Liblinear Thư viện các phương pháp phân lớp hồi
quy logic và SVM http://liblinear.bwaldvogel.de/
4.2. Dữ liệu thực nghiệm
Các ontology
Trong thực nghiệm để đánh giá mô hình đề xuất luận văn sử dụng miền dữ liệu là các ontology về thực thể kiểu hình, cụ thể là ontology HPO (Human phenotype ontology) và MP (Mammalian phenotype). Dưới đây là một số kết quả thống kê trên 2 ontology trên.
HPO MP
Số lượng thuật ngữ về kiểu hình 9 900 8 800
Số lượng các thuật ngữ đồng nghĩa 15.800 23.700
Độ sâu nhất của cây 15 15
Số con lớn nhất của một nút cha 34 9
Số nút con trung bình 3 3
Bảng 4.4. Thống kê số lượng thuật ngữ HPO và MP
Qua các số liệu thống kê ta có thể thấy 2 ontology này tương quan nhau về mặt cấu trúc. Các thuật ngữ lưu dưới dạng file obo được biểu hiện theo các thuật ngữ [Term] cùng với các thông tin liên quan được lưu trữ dưới các “tag” như id, name (tên đầy đủ), is_a (trỏ đến mức cha của thuật ngữ),… Để truy xuất và xử lý các file ontology luận văn sử dụng công cụ Obo Edit (http://oboedit.org/) được phát triển bởi nhóm nghiên cứu y sinh của đại học Berkeley, Mỹ.
[Term]
id: HP:0000188
name: Short upper lip alt_id: HP:0200087
def: "`Decreased width` (PATO:0000599) of the `upper lip` (FMA:59817)." [HPO:probinson]
xref: UMLS:C1848977 "Short upper lip" is_a: HP:0000177 ! Abnormality of upper lip
Dữ liệu các cặp thuật ngữ đồng nghĩa (dữ liệu dương)
Để xây dựng tập dữ liệu huấn luyện, luận văn sử dụng tập các cặp thuật ngữ đồng nghĩa giữa 2 ontology HPO và MP được cung cấp bởi chính những người phát triển ontology HPO tạo ra. Tập dữ liệu này gồm 2511 cặp thuật ngữ đồng nghĩa (08/10/2014) được cung cấp tại địa chỉ:
http://compbio.charite.de/hudson/job/hpheo/ws/hp-mp/mp_hp-align-equiv.obo. File này cũng được lưu trữ dưới định dạng Obo và có cấu trúc như sau:
Hình 4.2. Định dạng file Obo chứa các cặp thuật ngữ đồng nghĩa HPO
Dữ liệu các cặp thuật ngữ không đồng nghĩa (dữ liệu âm)
Để đánh giá chính xác hiệu quả của mô hình được đề xuất, luận văn sử dụng thêm các dữ liệu là các cặp thuật ngữ không đồng nghĩa. Tập các cặp dữ liệu không đồng nghĩa được cung cấp bởi nhóm sinh viên NCKH phát triển [1]. Tập dữ liệu này được sinh tự động dựa trên một số luật heuristic (dựa trên kinh nghiệm) gồm 17000 cặp thuật ngữ được xem là không đồng nghĩa (Tập dữ liệu TBQ 2014)[1].
Dữ liệu chưa được gán nhãn
Mô hình đề xuất thực hiện việc tìm các cặp thuật ngữ không đồng nghĩa tự động từ các cặp thuật ngữ chưa có nhãn (chưa biết là đồng nghĩa hay không). Để xây dựng tập dữ liệu chưa có nhãn luận văn tiến hành ghép cặp các thuật ngữ của 2 ontology với nhau (hơn 87 triệu cặp) và lấy ngẫu nhiên 100.000 cặp chưa được gán nhãn, các cặp này không trùng với hai tập dữ liệu dương và âm ở trên.
4.3. Tập đặc trưng và phương pháp đánh giá mô hình đề xuất
4.3.1. Tập đặc trưng
Sử dụng một số đặc trưng để mô tả tốt nhất đặc điểm của một cặp chuỗi. Các đặc trưng có thể nắm bắt được sự tương tự giữa nhiều biến thể (ví dụ chữ viết, cú pháp và từ bổ nghĩa) được trích trong giai đoạn học mô hình. Các đặc trưng được sử dụng trong mô hình phân lớp dựa trên các đặc trưng đã khảo sát được trong tài liệu [1] gồm có:
Tên rút gọn (Acronym): Xác điịnh một đặc trưng mà có thể suy luận một chuỗi này là tên rút gọn của một chuỗi khác. Đầu tiên tách các thuật ngữ và lấy ra các chữ cái đầu của từng từ trong thuật ngữ đó sau đó so sánh tên rút gọn của 2 thuật ngữ với nhau, ví dụ tên rút gọn của thuật ngữ “Interleukin-2” là “IL-2”. Nếu tên rút gọn của 2 thuật ngữ mà giống nhau thì giá trị của đặc trưng sẽ là đúng “acronym:true”, ngược lại là sai “acronym:false”.
Độ dài chuỗi (Length): Độ dài chuỗi ảnh hưởng tới việc đối sánh các chuỗi ký tự. Chuỗi càng dài thì độ so khớp càng nhiều nhiễu. Có hai đặc trưng với độ dài chuỗi: “length:long” với các chuỗi có độ dài lớn hơn 4 (tokens), “length:short” với các chuỗi còn lại.
Cụm từ đồng nghĩa (Synonym phrases): Mỗi thuật ngữ thường có một số các cụm từ đồng nghĩa được liệt kê thông qua tag “synonym”. So sánh các cặp từ đồng nghĩa của hai thuật ngữ giúp nâng cao các đặc trưng ngữ nghĩa. Giá trị của đặc trưng này lần lượt là nhiều (lớn hơn 2) “syns:high”, bình thường “syns:medium”, và không có “syns:none”.
Xâu con chung (CommonToken): Ngoài các đặc trưng đã miêu tả ở trên chúng ta sử dụng đặc trưng xâu con chung. Đầu tiên tách các thuật ngữ bằng kí tự trắng và một vài kí tự được xác định trước (‘,’, ’/’, ‘-‘…). Duyệt qua cặp thuật ngữ, đưa những từ giống nhau trong thuật ngữ vào tập các token phổ biến, ví dụ như ta có các token phổ biến “GATA”, “binding” , “5” từ cặp thuật ngữ “GATA binding protein 5” và “GATA binding factor 5”.
Xâu con khác (DifferenceToken): Tương tự với Xâu con chung chúng ta sử dụng sự khác nhau đối xứng của hai biểu hiện thể hiện đặc trưng, ta sẽ đưa ra những từ khác nhau trong cặp thuật ngữ và đưa vào tập các token khác biệt, ví dụ “protein” và “factor” là những token khác biệt của “GATA binding protein 5” và “GATA binding factor 5”.
SoftTFIDF[21]: Mộttrong những lợi ích của sử dụng học máy là chúng ta có thể kết hợp thông tin từ các độ đo tương tự khác nhau. Độ đo được định nghĩa trong với TF (term frequency) chỉ tần suất xuất hiện của từ trong tập thuật ngữ và IDF(inverse document frequency) chỉ tần suất xuất hiện của các thuật ngữ có chứa từ đó. Nếu giá
trị softTFIDF lớn hơn ngưỡng đưa ra thì giá trị đặc trưng sẽ là cao “high” và ngược lại