CRF là mô hình dựa trên xác xuất điều kiện, thường được sử dụng trong gán nhãn và phân tích dữ liệu tuần tự ví dụ ký tự, ngôn ngữ tự nhiên.. Điều này cho phép CRF có thể định nghĩa phân
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI TIỂU LUẬN MÔN MÁY HỌC VÀ ỨNG DỤNG
TÊN ĐỀ TÀI:
TÌM HIỂU CONDITIONAL RANDOM FIELDS
VÀ GIỚI THIỆU CÔNG CỤ CRF+ + TRONG BÀI TOÁN TRÍCH
CHỌN THÔNG TIN
Giảng viên hướng dẫn: PGS TS Vũ Thanh Nguyên
Họ tên học viên: Đặng Thị Mỹ Hạnh
Mã số học viên: CH1301012
Trang 2CHƯƠNG 1 TÌM HIỂU CONDITIONAL RANDOM FIELDS (CRF)
1 Nguồn gốc
CRF được giới thiệu vào những năm 2001 bởi Lafferty và các đồng nghiệp [14] [11] CRF là mô hình dựa trên xác xuất điều kiện, thường được sử dụng trong gán nhãn và phân tích dữ liệu tuần tự ví dụ ký tự, ngôn ngữ tự nhiên Khác với mô hình MEMM (Mô hình Markov cực đại hóa Entropy – Maximum Entropy Markov Model), CRF là mô hình đồ thị vô hướng Điều này cho phép CRF có thể định nghĩa phân phối xác suất của toàn bộ chuỗi trạng thái với điều kiện biết chuỗi quan sát cho trước thay vì phân phối trên mỗi trạng thái với điều kiện biết trạng thái trước đó và quan sát hiện tại như trong mô hình MEMM Chính những tính chất này của CRF mà mô hình này giải quyết được vấn đề “label bias” - gán nhãn
2 Định nghĩa
2.1 Định nghĩa trường ngẫu nhiên
Cho một đồ thị vô hướng không có chu trình G(V,E), ở đây V là tập các đỉnh của đồ thị và E là tập các cạnh vô hướng nối các đỉnh của đồ thị nếu thỏa mãn: P(vi | Yvj, vi≠ vj ) = P(vi | Yvk, vi≈ vk ) thì V gọi là trường ngẫu nhiên
Hình: Một trường ngẫu nhiên
P(Y5 | YYi) = P(Y5 | Y4, Y6) Vậy Y= {Y5 , Y4 , Y6} là trường ngẫu nhiên
2.2 Trường ngẫu nhiên có điều kiện - CRF
- Trường ngẫu nhiên có điều kiện được phát biểu như sau: X là biến ngẫu nhiên nhận giá trị là chuỗi dữ liệu cần phải gán nhãn Y là biến ngẫu nhiên nhận giá trị là chuỗi nhãn tương ứng Mỗi thành phần Yi của Y là một biến ngẫu nhiên nhận giá trị trong tập hữu hạn các trạng thái S Các đỉnh V biểu diễn các thành
Trang 3phần của biến ngẫu nhiên Ysao cho tồn tại ánh xạ một - một giữa các đỉnh và một thành phần Yv của Y
- Hay CRFs là mô hình trạng thái tuyến tính vô hướng (máy trạng thái hữu hạn được huấn luyện có điều kiện) và tuân theo tính chất Markov thứ nhất
+ Gọi o = (o 1 , o 2 , …, o T) là một chuỗi dữ liệu quan sát cần được gán nhãn
Gọi S là tập trạng thái, mỗi trạng thái liên kết với một nhãn Đặt s = (s 1 , s 2 ,…, s T) là một chuỗi trạng thái nào đó, CRFs xác định xác suất điều kiện của một chuỗi trạng thái khi biết chuỗi quan sát như sau:
+ Gọi
là thừa số chuẩn hóa trên toàn bộ các chuỗi nhãn có thể fkxác định một hàm đặc
trưng và là trọng số liên kết với mỗi đặc trưng fk.Mục đích của việc học máy với CRFs là ước lượng các trọng số này
+ Ở đây, ta có hai loại đặc trưng fk : đặc trưng trạng thái (per-state) và đặc trưng chuyển (transition)
(2)
+ Ở đây là Kronecker-
Mỗi đặc trưng trạng thái (2) kết hợp nhãn l của trạng thái hiện tại s t và một vị
từ ngữ cảnh - một hàm nhị phân x k (o,t) xác định các ngữ cảnh quan trọng của quan sát o tại vị trí t Một đặc trưng chuyển (3) biểu diễn sự phụ thuộc chuỗi bằng cách
kết hợp nhãn l’ của trạng thái trước s t-1 và nhãn l của trạng thái hiện tại s t
- Ngoài ra có thể hiểu Conditional random fields là một probabilistic framework (theo xác suất) cho việc gán nhãn và phân đoạn dữ liệu tuần tự Thay vì
sử dụng xác suất độc lập trên chuỗi nhãn và chuỗi quan sát, ta sử dụng xác suất có điều kiện P(Y|X) trên toàn bộ chuỗi nhãn được đưa bởi chuỗi mỗi chuỗi quan sát
X CRF là một mô hình đồ thị vô hướng định nghĩa một phân bố tuyến tính đơn
Trang 4trên các chuỗi nhãn (trình tự nhãn) được đưa ra bởi các chuỗi quan sát được CRFs thuận lợi hơn các mô hình Markov và MEMM Nó làm tốt hơn cả của MEMM và HMM (Mô hình Markov ẩn – Hiden Markov Model) trên sốlượng chuỗi gán nhãn lớn Ví dụ: xét ngôn ngữ tự nhiên, việc gán nhãn cho các từ trong câu sẽ tương ứng với loại từ vựng Ở đây các câu sẽ là dữ liệu tuần tự còn nhãn cần gán chính là các
từ loại:
[NP He] [VP reckons] [NP the current account deficit] [VP will narrow] [PP to] [NP only # 1.8 billion ] [PP in ] [NP September ]
Trong đó ý nghĩa của các nhãn là: NP: nounse phrase, VP: verb phrase…
CC Coordinating conjunction
e.g and,but,or
EX Existential there
IN Preposision or subordinating conjunction
JJR Adjective, comparative
JJS Adjective, superlative
LS List Item Marker
e.g can, could, might, may
NN Noun, singular or mass
NNP Proper Noun, singular
NNPS Proper Noun, plural
NNS Noun, plural
PDT Predeterminer
e.g all, both when they precede an article
POS Possessive Ending
e.g Nouns ending in 's
PRP Personal Pronoun
e.g I, me, you, he
PRP$ Possessive Pronoun
e.g my, your, mine, yours
Most words that end in -ly as well as degree words like quite, too and very RBR Adverb, comparative
Adverbs with the comparative ending -er, with a strictly comparative meaning
RBS Adverb, superlative
Trang 5Should be used for mathematical, scientific or technical symbols
UH Interjection
e.g uh, well, yes, my
VB Verb, base form
subsumes imperatives, infinitives and subjunctives VBD Verb, past tense
includes the conditional form of the verb to be VBG Verb, gerund or persent participle
VBN Verb, past participle
VBP Verb, non-3rd person singular present
VBZ Verb, 3rd person singular present
WDT Wh-determiner
e.g which, and that when it is used as a relative pronoun
e.g what, who, whom
WP$ Possessive wh-pronoun
e.g
e.g how, where why
Punctuation Tags
#
$
''
(
)
,
:
``
- Một phát biểu khác về CRF: (Y|X) là một trường ngẫu nhiên điều kiện (Conditional Random Field) với điều kiện X khi ta chỉ tính được xác xuất có điều kiện P(Yi| Xi) với Yi⊂Y và Xi⊂ X và với mỗi Xi ta chọn được argmaxYi P(Yi|Xi) Trong bài toán dữ liệu dạng chuỗi, G có thể được biểu diễn như sau:
G = ( V={1,2,3,…m}, E={i,i+1}i=1…m-1)
Kí hiệu X=(X1, X2…Xn), Y=(Y1, Y2,…Yn) Ta có mô hình đồ thị vô hướng của CRF có dạng sau:
Trang 6Hình: Đồ thị vô hướng mô tả cho CRF
3 Tính chất của trường ngẫu nhiên có điều kiện
- Mô hình phân biệt (discriminative models)
- Mô hình chuỗi (sequential models)
- Mô hình đồ thị vô hướng (Undirected graphical models)
4 Mục đích
- CRFs đã được chứng minh rất thành công cho các bài toán gán nhãn cho chuỗi như tách từ, gán nhãn cụm từ, xác định thực thể, gán nhãn cụm danh từ
sử dụng phương pháp CRF kết hợp với một vài phương pháp xử lý khác (như xử lý ngôn ngữ tự nhiên) giúp nâng cao hiệu quả của trích xuất thông tin web
- Người ta thường huấn luyện CRFs bằng cách làm cực đại hóa hàm likelihood theo dữ liệu huấn luyện sử dụng các kĩ thuật tối ưu Việc lập luận (dựa trên mô hình đã học) là tìm ra chuỗi nhãn tương ứng của một chuỗi quan sát đầu vào Đối với CRFs, người ta thường sử dụng thuật toán qui hoạch động điển hình (Viterbi) để thực hiện lập luận với dữ liệu mới
- Cách giải quyết vấn đề: Giả sử cần rút trích thông tin từ trang web cho trước, khi đó cần xác định mục tiêu
+ Xác định trang web có chứa tin tức hay không?
+ Xác định vùng thông tin chứa tin tức?
+ Xác định tin tức thuộc loại tin tức nào?
Có thể xem mục tiêu đặt ra được diễn giải như sau:
Cho một trang web x và tập DOM (document object model), nút lá cây x1,
…,xk trong x Đặt = y1,…,yk là nhãn có thể gán cho x1,…,xk với y1,…,yk là các nội dung của các nút x1,…,xk Lần lượt xét các nút đặc trưng chứa tin tức (xác định) để duyệt các nhãn của nó và chọn nhãn có nội dung là tin tức cần tìm
Trang 7 Khi giải quyết các mục tiêu đề ra ta gặp các vấn đề cụ thể:
+ Công việc xác định trang web chứa tin tức nghĩa là khi nhập 1 trang web bất kỳ ta phải xác định trang web đó có nội dung chứa tin tức hay không?
+ Nếu như trang web có chứa tin tức, tìm kiếm các vùng dữ liệu mà nội dung của nó có chứa tin tức
+ Qua vùng tin tức ta cần xác định tin tức đó là tin tức thuộc thể loại nào
Để giải quyết các vấn đề này ta có thể gặp 1 số khó khăn như:
+ Việc xác định vùng nội dung chứa tin tức được xác định dựa trên nội dung tin tức, điều này liên quan đến vấn đề xử lý văn bản tiếng Việt (nếu rút trích văn bản bằng tiếng Việt) Đây là một vấn đề khó khăn khi rút trích
+ Quá trình xử lý các trang web được thực hiện thông qua nhiều tầng lần, dễ xảy ra những sự cố
Để giải quyết những khó khăn được nêu ở trên, phương pháp được áp dụng để xử lý là:
+ Xử lý tiếng việt chỉ xảy ra ở bước xác định từ loại điều này giúp vấn đề trở nên đơn giản hơn
+ Xác định ngữ pháp của câu
+ Sự giúp đỡ của bộ từ điển tiếng Việt
5 Thuật toán gán nhãn cho dữ liệu dạng chuỗi
- Hai vấn đề quan trọng cần phải được đề cập đến khi nghiên cứu về mô hình CRF đó là: thứ nhất khi đưa chuỗi nhãn y và một chuỗi quan sát x làm thế nào tìm
ra một tham số λ của CRF để làm cực đại hóa xác suất p(y|x, λ) vấn đề này tạm gọi
là huấn luyện (training) Thứ hai khi đưa ra một chuỗi quan xát x và một tham số λ làm thế nào để tìm được chuỗi các nhãn y phù hợp nhất tạm gọi vấn đề này quy nạp (inference)
- Mục đích của việc gán nhãn là làm sao tìm được chuỗi y* sao cho cực đại hóa xác suất p(y|x, λ) Hay nói cách khác mục đích của thuật toán là làm sao tìm ra chuỗi nhãn phù hợp nhất với chuỗi dữ liệu quan sát
- Thay việc tính xác suất tổng các xác suất ta chỉ cần tính giá trị lớn nhất của xác suất dịch chuyển Khi đó chuỗi trạng thái y* mô tả tốt nhất cho chuỗi dữ liệu quan sát x là nghiệm của phương trình
(**)
Trang 8- Vì Z(x) không phụ thuộc vào nhãn riêng biệt x và số mũ là một hàm đơn điệu Nên ta bỏ qua Z(x) trong công thức (**) Để tìm được y*, thỏa mãn (**) thì gặp phải một khó khăn trong thời gian tính toán, vì thời gian tính toán là hàm mũ
- Chuỗi y* được xác định bằng thuật toán Virterbi Định nghĩa ∂i(y) là xác suất của chuỗi trạng thái độ dài i kết thúc bởi trạng thái y và có xác suất lớn nhất biết chuỗi quan sát là x Trong đó ∂1(yk) là xác suất đầu tiên của mỗi trạng thái yk
Ta định nghĩa Ψi(y) để ghi lại nhãn thứ i-1 có xác suất lớn nhất Thuật toán dừng khi
Ψi(y) có giá trị là 1
Thuật toán Viterbi có thể được mô tả qua các bước sau:
Bước 1: Khởi tạo
∂1(yk) =∑μk sk(y, x) , ∀y∈Y
Bước 2: Đệ quy
i+1(yk) = max (∂i(y’) + ∑λ k tk(y’, y, x) + ∑μk sk(y, x)), ∀y∈ Y
Ψi(y) = arg max(∂i(y’) + ∑λ k tk(y’, y, x) + ∑μk sk(y, x)), ∀y∈ Y
Bước 3: Dừng
Đệ quy dừng khi i=n bằng chiều dài của chuỗi
6 Ứng dụng
- Một trong các ứng dụng nổi trội của CRFs là rút trích thông tin (Information Extraction – IE) Dưới đây là module mô tả việc rút trích thông tin bằng phương pháp CRFs
Trang 9Hình: Module rút trích thông tin bằng phương pháp CRFs
Hình: Mô hình xây dựng IE theo mô hình máy học
Trang 10- Lợi ích của việc dùng CRF để trích chọn thông tin
+ Tiết kiệm thời gian Mỗi một bản tin đăng trên những website khác nhau thì
có những định dạng rất khác nhau: Có thể là định dạng văn bản thông thường, cũng có thể là dạng bảng biểu, hoặc các đường liên kết Với những cách thể hiện văn bản như vậy thì việc tìm ra những thông tin như văn bản loại gì: Kế hoạch, Công văn, Đề xuất; do đơn vị nào lập; Nội dung gì; Thời gian nào…là một việc tương đối khó khăn Với bài toán trích chọn thông tin văn bản thì sẽ tiết kiệm thời gian rất nhiều cho người quản lý văn bản
+ Có thể tìm kiếm thông tin chính xác hơn rất nhiều (Vấn đề ở đây là trong một bản tin có sự nhập nhằng giữa các nội dung chính của Kế hoạch hay Công văn v.v Việc trích chọn có thể giảm bớt sự nhập nhằng trong thông tin này)
+ Nói rộng hơn nữa bài toán trích chọn thông tin các văn bản chỉ là bài toán nhỏ Từ bài toán này ta cũng thấy được ý nghĩa của việc trích chọn thông tin trong tiếng Việt
+ Giúp cho việc tóm tắt văn bản chính xác nếu như chủ đề của văn bản được chỉ rõ
+ Tự tạo ra các trường liên quan một cách tự động trong cơ sở dữ liệu được lấy từ văn bản
+ Một số ứng dụng điển hình của trích chọn thông tin: sử dụng trích chọn thông tin trong thư viện số - DL (Digital Libraries) - thư viện số có thể hiểu là các văn bản hoặc hình ảnh… Rút trích thông tin từ thư điện tử Trích chọn tiểu sử người (có thể là chân dung, vịtrí, email, địa chỉ, số điện thoại, số fax…)
CHƯƠNG 2 GIỚI THIỆU CRF++ TOOLKIT
1 Giới thiệu
- CRF ++ là một công cụ cài đặt mô hình CRF và được phân phối dưới dạng
mã nguồn mở có thể dùng để phân đoạn và gán nhãn dữ liệu tuần tự
- CRF++ được thiết kế cho cùng một mục đích phổ dụng có thể ứng dụng trong những bài toán xử lý ngôn ngữ tự nhiên như nhận dạng thực thể tên, trích chọn thông tin và đóng khung văn bản
- Hệ thống được hoạt động theo phương pháp học nửa giám sát được thực hiện gồm các bước sau:
Trang 11Bước 1: Tạo bộ dữ liệu huấn luyện bé Bước này được thực hiện bằng tay Bước 2: Sử dụng mô hình CRFs để huấn luyện trên tập dữ liệu này
Bước 3: Tạo tập test và sử dụng CRFs để gán nhãn
Bước 4: Bộ dữ liệu mới được sinh ra bằng cách bổ sung các nhãn cho tập dữ liệu test.
- CRF++ được chia làm 2 modulo chính có thể mô tả như hình như sau:
Hình: Mô hình hoạt động của CRF++
2 Tính năng
- Có thể định nghĩa lại các tính năng đã có, ta có thể tùy biến để thêm các đặc trưng mới phù hợp với bài toán cụ thể
- Viết bằng C++, là phần mềm mã nguồn mở
- Bộ nhớ nhỏ sử dụng trong cả kiểm tra và phân tích
- Có thể đưa ra xác suất lề cho tất cả những đầu vào
3 Cài đặt và cách sử dụng
Cài đặt
- Chuyển vào thư mục chứa công cụ CRF++
- Dùng chmod 777 /configure
- make clean && make
Trang 124 File định dạng huấn luyện và test
Để sử dụng được CRF++ ta cần phải có 2 file dữ liệu, 1 file dùng cho quá trình huấn luyện, file còn lại dùng cho quá trình kiểm tra Cả file huấn luyện và kiểm tra cần có 1 định dạng riêng của CRF++ để nó có thể làm việc được
Thông thường file huấn luyện và file kiểm tra chứa đựng rất nhiều từ tố Mỗi
từ tố phải viết trên một dòng, ngoài từ tố ra còn có các cột chứa các thông tin khác dùng để mô tả từ tố chẳng hạn như là từ loại của từ tố và cột cuối cùng chứa nhãn của từ tố Để định nghĩa từ tố phụ thuộc vào từng công việc, trong hầu hết các trường hợp điển hình thì chúng là các từ Mỗi một từ tố ở một dòng, các cột được phân chia bởi các khoảng trắng Trình tự các từ tố tạo thành một câu Một dòng trắng để phân biệt giữa các câu
Dưới đây là ví dụ về file huấn luyện Với cột thứ nhất là bản thân từ đó, cột thứ hai là từ loại và cột cuối cùng là nhãn cần gán
Ví dụ 1: Input: Data
He PRP B-NP reckons VBZ B-VP the DT B-NP
current JJ I-NP account NN I-NP deficit NN I-NP will MD B-VP narrow VB I-VP
to TO B-PP only RB B-NP
# # I-NP 1.8 CD I-NP billion CD I-NP
in IN B-PP September NNP B-NP O
Trang 13He PRP B-NP reckons VBZ B-VP
Ví dụ 2:
Ke NN B-NP hoach NN I-NP bien VB B-VP soan VB I-VB giao NN B-NN trinh NN I-NN nam NN B-NN hoc NN I-NN
2011 CD B-CD
2012 CD I-VP
Template type
File này mô tả những đặc trưng sẽ sử dụng khi huấn luyện và kiểm tra Mỗi một dòng trong trong file template chỉ ra một template, mỗi một template có dạng
như sau %x[row,col] dùng để định nghĩa một từ trong dữ liệu đầu vào.
File template được xây dựng tùy vào từng bài toán cụ thể và tùy vào file huấn luyện và file kiểm tra Ví dụ với dữ liệu đầu vào như sau thì file template sẽ được xây dựng như sau:
Dữ liệu đầu vào
He PRP B-NP reckons VBZ B-VP the DT B-NP << CURRENT TOKEN current JJ I-NP
account NN I-NP