Học cấu trúc mạng logic Markov có thể từ một mạng rỗng hoặc từ một cơ sở tri thức đã tồn tại. Chúng ta xây dựng bắt đầu bằng việc thêm tất cả các mệnh đề đơn vị (các vị từ đơn) vào mạng logic Markov. Trọng số của các mệnh đề đơn này có thể thu đƣợc từ các phân phối biên của các vị từ[12].
Các vấn đề của việc học cấu trúc bao gồm chọn cách ƣớc lƣợng, các tính toán xây dựng mệnh đề, chiến lƣợc tìm kiếm và các phƣơng pháp làm cho nhanh hơn.
Các đo lƣờng ƣớc lƣợng
Nếu ta ƣớc lƣợng hàm khả năng pseudo-log-likelihood [17] thì sẽ cho các trọng số không phù hợp tới các vị từ có số lƣợng các tham biến nhiều nhất. Vì vậy ta định nghĩa một phƣơng pháp khác là dùng hàm khả năng pseudo-log-likelihood theo trọng số (the weighted pseudo-log-likelihood - WPLL)
Trong đó:
là các vị từ trong logic tân từ cấp một. là số lƣợng các vị từ nền của vị từ .
là giá trị chân lý (0 hoặc 1) của vị từ nền thứ của vị từ . là trọng số của vị từ .
Một vấn đề khá quan trọng khi ƣớc lƣợng các mệnh đề sử dụng WPLL để tối ƣu các trọng số cần đƣợc tính toán cho mỗi mệnh đề. Điều này có thể làm tới hàng
40
nghìn hay hàng triệu lần và sẽ làm cho thuật toán rất chậm. Việc học cấu trúc có thể sử dụng bằng kỹ thuật khá hiệu quả đó là kỹ thuật tối ƣu số bậc hai với bộ nhớ hạn chế (limited memory BFGS) đƣợc coi là phƣơng pháp hiệu quả nhất hiện nay.
Thuật toán 4 Phác thảo ý tƣởng thuật toán [12]
function FindBestClauses (MLN) Tạo các mệnh đề ứng viên
For each mệnh đề ứng viên c
Tính toán độ tăng trong WPLL (sử dụng L-BFGS) Khi thêm c vào MLN.
return k mệnh đề với độ tăng là lớn nhất.
Các phép toán xây dựng mệnh đề
Khi học một mạng logic Markov từ tập các mệnh đề đơn vị, phép toán tự nhiên để sử dụng là thêm một literal vào một mệnh đề.
Khi lọc một cơ sở tri thức đƣợc xử lý bằng tay, mục tiêu là để sửa những lỗi đƣợc làm bởi các chuyên gia. Các phép toán sửa lỗi là thêm và xóa các literal từ một mệnh đề.
Chúng ta có thể sửa các lỗi bằng cách thay đổi của các literal (chẳng hạn nếu phủ định thì chuyển sang khẳng định và ngƣợc lại).
Để điều chỉnh kích thƣớc của không gian tìm kiếm, ta đặt một giới hạn trên số lƣợng các biến riêng biệt trong một mệnh đề.
Chiến lƣợc tìm kiếm
Ta cài đặt hai chiến lƣợc tìm kiếm, một chiến lƣợc nhanh hơn, một chiến lƣợc đầy đủ hơn[11].
Cách tiếp cận đầu tiên sẽ thêm các mệnh đề vào mạng logic Markov một lần ở cùng một thời điểm, sử dụng tìm kiếm theo chùm (beam search)1 tìm mệnh đề tốt nhất để thêm: Bắt đầu với các mệnh đề đơn vị, thực hiện thêm
41
và xóa các literal, áp dụng các phép toán tới các mệnh đề đó và lặp cho đến khi không có một mệnh đề mới nào cải thiện đƣợc WPLL. Mệnh đề đƣợc chọn mệnh đề với mức WPLL cao nhất.
Cách tiếp cận thứ hai thêm mệnh đề ở cùng một thời điểm vào mạng logic Markov. Đối lập với tìm kiếm theo chùm, thêm mệnh đề tốt nhất với bất kỳ độ dài đƣợc tìm thấy, thì tiếp cận này thêm tất cả các mệnh đề cho là tốt có độ dài trƣớc khi thử ở các mệnh đề có độ dài . Ta gọi nó là thuật toán tìm kiếm ngắn nhất trƣớc tiên (shortest-first search).
Thuật toán 5 Học cấu trúc MLN [12]
function StructLearn(R,MLN,DB)
inputs: R, tập các vị từ
MLN, Mạng logic Markov DB, cơ sở dữ liệu quan hệ
output: MLN đã đƣợc thay đổi
Thêm tất cả các mệnh đề đơn vị từ R vào MLN
for each mệnh đề không đơn vị c trong MLN
Thử tất cả các mệnh đề là kết nối của các dấu (phủ định hay khẳng định) của các literal trong c và giữ một mệnh đề cho WPLL (MLN, DB) cao nhất.
Clauses0 {Tất cả các mệnh đề trong MLN}
LearnWeights (MLN, DB)
Score WPLL (MLN, DB)
repeat
42
if Clauses
Thêm Clauses vào MLN
LearnWeights (MLN, DB)
Score WPLL (MLN, DB)
until
Thuật toán 6 Tìm kiếm theo chùm (bearn search) [12]
function FindBestClauses (R, MLN, Score, Clauses0, DB)
inputs: R, tập các vị từ
MLN, mạng logic Markov
Score, WPLL của MLN
Clauses0, một tập các mệnh đề
DB, cơ sở dữ liệu quan hệ output: BestClause, mệnh đề đƣợc thêm vào MLN
BestClause
BestGain
Beam Clauses0
Lƣu trọng số của các mệnh đề trong MLN
repeat
Candidates CreateCandidateClauses (Beam, R)
for each mệnh đề Candidates
43
LearnWeights(MLN, DB)
Gain(c) WPLL (MLN, DB) – Score
Xóa c từ MLN
Khôi phục lại các trọng số của các mệnh đề trong MLN
Beam {b mệnh đề c Candidates với số cao nhất
Gain(c) > 0 và Weight(c) > epsilon >0 } if Gain (mệnh đề tốt nhất c*trong Beam)> BestGain
BestClause c*
BestGain Gain(c*)
until Beam =0 hoặc BestGain không thay đổi trong hai lần gặp. return BestClause
Thuật toán 7: Tìm kiếm ngắn nhất trƣớc tiên [12]
function FindBestClauses (R, MLN, Score, DB)
inputs: R, tập các vị từ
MLN, mạng logic Markov
Score, WPLL của MLN
Clauses0, một tập các mệnh đề
DB, cơ sở dữ liệu quan hệ
output: BestClauses, tập các mệnh đề đƣợc thêm vào MLN Lƣu trọng số của các mệnh đề trong MLN
Nếu đây là lần đầu tiên FindBestClauses đƣợc gọi
44
repeat
if hay đây không phải lần gặp đầu tiên
if không có mệnh đề trong Candidates có độ dài <1 mà không đƣợc mở rộng lúc trƣớc
Clauses {Mệnh đề có độ dài trong MLN mà không đƣợc mở rộng lúc trƣớc} {s mệnh đề tốt nhất có độ dài trong Candidates không đƣợc mở rộng lúc trƣớc}
Candidates Candidates CreateCandidateClauses(Clauses,R)
for each mệnh đề chƣa đƣợc xét Thêm c vào MLN
LearnWeights(MLN, DB)
Gain(c) WPLL(MLN, DB) – Score
Xóa c từ MLN
Khôi phục lại các trọng số của các mệnh đề trong MLN Candidates {b mệnh đề tốt nhất trong Candidates} until hoặc có một mệnh đề với Gain(c) >0 và Weight(c) > >0 .
BestClauses {k mệnh đề với Gain(c)>0 và Weight(c) > >0
}.
Candidates : Candidates/BestClauses
45
Các kỹ thuật tăng tốc độ
Những thuật toán ở trên có thể rất chậm đặc biệt là trong miền rộng lớn. Tuy nhiên ta có thể làm tăng tốc độ của chúng bằng cách kết nối các kỹ thuật dƣới đây:
Áp
dụng tính toán của hàm hợp lý logarit pseudo (pseudo-loglikelihood) và véc tơ gradient của nó vào WPLL. Ở phƣơng trình 2.13 ta có thể bỏ qua tất cả các mệnh đề mà không xuất hiện để tính toán trong phƣơng trình đó.
Khi
học trọng số để đánh giá các mệnh đề ứng viên, ta sử dụng giới hạn hội tụ không chặt (looer convergence threshold) và số lƣợng tối đa các tính toán L-BFGS.
Nếu
hầu hết các trọng số của các mệnh đề không thay đổi đáng kể, thì cũng làm hầu hết các hàm hợp lý logarit điều kiện (conditional log-likelihoods-CLLs) ( ) của các vị từ nền không thay đổi đáng kể. Và ta lợi dụng điều này bằng việc lƣu CLL của các vị từ nền đƣợc chọn mẫu, và chỉ tính toán nó nếu trọng số của một vị từ làm nó thay đổi quá ngƣỡng . Khi một CLL thay đổi, ta trừ giá trị cũ của nó từ tổng WPLL và thêm một CLL mới. Tính toán của véc tơ gradient của WPLL cũng đƣợc tối ƣu tƣơng tự.
Chún
g ta sử dụng thứ tự từ điển trên các mệnh đề để ngăn ngừa việc tính toán lại các mệnh đề mà đồng nhất về cú pháp. Và ta cũng lƣu trữ các mệnh đề mới đƣợc tạo trong mỗi lần tìm kiếm tránh việc tính toán lại chúng trong các bƣớc tìm kiếm về sau.
46
CHƢƠNG 3. ỨNG DỤNG MẠNG LOGIC MARKOV
TRONG BÀI TOÁN GÁN NHÃN VAI NGHĨA 3.1 Bài toán gán nhãn vai nghĩa
- Định nghĩa: Gán nhãn vai nghĩa là việc xác định vai trò các từ tham gia vào
hoạt động của động từ chính trong câu. Vai nghĩa thƣờng có:
- Vai tác thể (Agent, viết tắt là Agt): Biểu thị ngƣời hay động vật gây ra một hành động, tác động nào đó. Ví dụ: TôiAgt đánh nó.
- Vai chủ sở hữu (Possessor, viết tắt là Poss): Biểu thị chủ sở hữu của sự vật. Ví dụ: TôiPoss còn tiền.
- Vai bị thể (Patient, viết tắt là Pa): Biểu thị ngƣời hoặc vật chịu sự tác động. Ví dụ: Tôi đánh nóPa.
- Vai tiếp thể (Recipient, viết tắt là Rec): Biểu thị ngƣời tiếp nhận trong hành động trao tặng. Ví dụ: Tôi tặng mẹRec
- v.v…
Trong luận văn này mới chỉ dừng lại ở quá trình gán nhãn cho vai tác thể gán “A0” và vai bị thể gán “A1” trong câu tiếng Việt.