TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Khoa Công nghệ Thông tin BÁO CÁO NIÊN LUẬN Tên đề tài: GIẢI PHÁP GOM NHÓM ĐẶC TRƯNG ĐỒNG NGHĨA TIẾNG VIỆT TRONG ĐÁNH GIÁ SẢN PHẨM DỰA TRÊN PHÂN LỚP BÁN GIÁM SÁT SVM-KNN VÀ PHÂN CỤM HAC Sinh viên thực hiện: Phạm Huyền Trang – K52CHTTT Giáo viên hướng dẫn: PGS.TS Hà Quang Thụy Ths Trần Mai Vũ Hà Nội, 05/2011 1MỤC LỤC I. Đặt vấn đề 3 II. Phát biểu bài toán
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Khoa Công nghệ Thông tin
BÁO CÁO NIÊN LUẬN Tên đề tài:
GIẢI PHÁP GOM NHÓM ĐẶC TRƯNG ĐỒNG NGHĨA
TIẾNG VIỆT TRONG ĐÁNH GIÁ SẢN PHẨM
DỰA TRÊN PHÂN LỚP BÁN GIÁM SÁT SVM-KNN VÀ
PHÂN CỤM HAC
Sinh viên thực hiện:
Phạm Huyền Trang – K52CHTTT
Giáo viên hướng dẫn:
PGS.TS Hà Quang Thụy Ths Trần Mai Vũ
Hà Nội, 05/2011
Trang 2MỤC LỤC
III.1 Một số nội dung cơ bản về phân lớp bán giám sát 4
III.1.3 Các phương pháp phân lớp bán giám sát điển hình 5 III.2 Phương pháp luận SVM-KNN dựa trên học bán giám sát 6
III.2.2 Thuật toán K người láng giềng gần nhất (kNN) 8
Trang 3I Đặt vấn đề
Khai phá quan điểm dựa trên đặc trưng (Feature based Opinion Mining: FOM) là một trong những bài toán quan trọng trong lĩnh vực khai phá quan điểm [5,14,18] Bài toán này tìm đến mức câu để phát hiện các đặc trưng của sản phẩm, và tạo ra một bản tổng kết các quan điểm trên mỗi đặc trưng đó Tuy nhiên, các đánh giá của người dùng trên mạng thường chứa các yếu tố không chuẩn [15] Nói riêng, trong các văn bản đánh giá sản phẩm, khách hàng thường sử dụng những từ hoặc cụm từ rất khác nhau để nhắc đến cùng một đặc trưng sản phẩm Ví dụ, trong miền sản phẩm điện thoại thì “kiểu dáng”
và “kiểu cách” cùng chỉ đến đặc trưng “kiểu dáng” Do đó, để tạo ra một bản tổng kết có
ý nghĩa, những từ hoặc cụm từ đồng nghĩa cần được nhóm vào cùng một nhóm đặc trưng
Bài toán gom nhóm đặc trưng đồng nghĩa đã và đang nhận được nhiều sự quan tâm trên thế giới Có khá nhiều công trình đã nghiên cứu nhằm tìm ra các phương án tối
ưu để giải quyết bài toán, chẳng hạn [7,10,17]
Zhongwu Zhai, và cộng sự, 2010 [17] đề xuất phương pháp học bán giám sát có ràng buộc mềm để giải quyết bài toán gom nhóm đặc trưng sản phẩm Các ràng buộc mềm này có sử dụng đến bộ từ điển đồng nghĩa Việc tạo ra những ràng buộc mềm có
hai ưu điểm: Một là, hai ràng buộc này tạo ra các mẫu nhãn mềm (soft-labeled examples)
và chúng được đưa vào tập huấn luyện nhằm làm giàu tập huấn luyện đó Hai là, trong
trường hợp ràng buộc mềm gán sai nhãn do những hạn chế của bộ từ điển đồng nghĩa mang lại thì bộ phân lớp bán giám sát vẫn được phép thay đổi nhãn
Xx (gioi thieu them khoang 4-5 dong ve 17)
Các tác giả tiến hành thực nghiệm trên các đánh giá từ 5 miền khác nhau, kết quả đạt được đã cho thấy phương pháp gom nhóm đặc trưng sử dụng học bán giám sát là khá
hiệu quả Thực nghiệm trên 5 bộ dữ liệu, độ đo purity thuộc khoảng 0.66-0.70 và độ đo
accuracy thuộc khoảng 0.67-0.71
Tại Việt Nam, hiện nay, chưa có một công trình nghiên cứu nào đi sâu giải quyết bài toán gom nhóm đặc trưng sản phẩm trong các đánh giá tiếng Việt
Trong [16], chúng tôi đề xuất một mô hình khai phá quan điểm dựa trên đặc trưng đối với các đánh giá sản phẩm điện thoại bằng tiếng Việt Công trình nói trên đã đề cập tới một giải pháp đơn giản để nhóm các đặc trưng “đồng nghĩa” – đó là sử dụng một bộ
từ điển đặc trưng đồng nghĩa xây dựng bằng tay để giải quyết bài toán Từ điển này chứa các đặc trưng đồng nghĩa trên miền sản phẩm “điện thoại” Tuy nhiên, giải pháp này còn
Trang 4gặp nhiều điểm hạn chế như khi chuyển sang miền sản phẩm mới hoặc khi xuất hiện một
từ mới không có trong từ điển, thì giải pháp vẫn chưa giải quyết được
Trong công trình này chúng tôi đề xuất một giải pháp gom nhóm đặc trưng đồng nghĩa cũng dựa trên phân lớp bán giám sát Tuy nhiên, so với [17], mô hình của chúng tôi
có các điểm khác biệt: Thứ nhất, chúng tôi không tạo một tập huấn luyện bằng tay để tạo
ra một bộ phân lớp như [17], mà thay vào đó, tập huấn luyện này được tạo một cách tự
động nhờ áp dụng thuật toán phân cụm HAC Thứ hai, chúng tôi không sử dụng từ điển
đồng nghĩa, mà thay vào đó là một từ điển Việt-Việt cùng các đánh giá của khách hàng
để tạo tập huấn luyện Thứ ba, phương pháp phân lớp bán giám sát mà chúng tôi sử dụng
là SVM-kNN, trong khi phương pháp được sử dụng trong [17] là EM
II Phát biểu bài toán
Nếu gọi nhóm đặc trưng là tên của một đặc trưng được đưa ra bởi người dùng, và
thể hiện đặc trưng của một đặc trưng là một từ hoặc cụm từ xuất hiện thực sự trong các
đánh giá để thể hiện đặc trưng đó, thì bài toán được phát biểu như sau:
Đầu vào:
- Tập các thể hiện đặc trưng
- Tập các đánh giá của khách hàng S
- Ngưỡng α > 0
Đầu ra:
- Tập các thể hiện đặc trưng cùng với nhóm đặc trưng tương ứng
Phát biểu bài toán: Coi mỗi thể hiện đặc trưng là một mẫu dữ liệu, mỗi nhóm đặc
trưng là một lớp Cần xây dựng một bộ phân lớp SVM-kNN để phân lớp các mẫu dữ liệu này vào các lớp khác nhau, thỏa mãn mỗi mẫu chỉ thuộc về một lớp nhưng một lớp có thể
có nhiều mẫu
III Tóm tắt cơ sở lý thuyết
III.1 Một số nội dung cơ bản về phân lớp bán giám sát
III.1.1 Học bán giám sát
Học bán giám sát là một mô hình học máy liên quan đến việc tận dụng các dữ liệu chưa gán nhãn để xây dựng các bộ phân lớp và các bộ hồi qui tốt hơn (A B Goldberg,
Trang 52010, [4]) Học bán giám sát là việc học trên cả dữ liệu đã và chưa được gán nhãn Trong quá trình học như thế, phuong pháp sẽ tận dụng duợc những thông tin phong phú của dữ
liệu chưa gán nhãn (unlabeled data), mà chỉ yêu cầu một số luợng nhỏ các dữ liệu đã gán nhãn (labeled data) [19, 20, 1].
Nhiệm vụ chính của học bán giám sát chính là mở rộng tập các dữ liệu gán nhãn ban đầu [19, 20, 1] Phương pháp học này được cung cấp một số thông tin giám sát, nhưng chỉ trên một số ví dụ mà không nhất thiết phải trên tất cả dữ liệu Việc học bán giám sát sẽ là hữu ích khi có nhiều dữ liệu không gán nhãn hơn là dữ liệu gãn nhãn Trong thực tế, tồn tại nhiều dữ liệu không gán nhãn hơn là dữ liệu gán nhãn; bởi vì dữ liệu không gãn nhãn có thể dễ dàng được thu thập với chi phí thấp, nhưng công việc gãn nhãn cho các dữ liệu lại tốn rất nhiều thời gian, công sức và tiền bạc [4,6,19,20] Chính vì khả năng tận dụng cả dữ liệu đã gán nhãn để đạt được kết quả cao hơn học giám sát nên học bán giám sát mang giá trị thực tiễn cao [4]
III.1.2 Phân lớp bán giám sát
Phân lớp bán giám sát đang là một lĩnh vực nhận được nhiều sự quan tâm trong
cả lý thuyết và thực tiễn [20] Phân lớp bán giám sát là một dạng đặc biệt trong bài toán phân lớp [19] Nó sử dụng cả dữ liệu chưa gán nhãn, và dữ liệu đã gán nhãn – điều này chính là một sự mở rộng so với bài toán phân lớp giám sát
Giả sử tập dữ liệu huấn luyện bao gồm l ví dụ đã gán nhãn , trong đó yi
là nhãn tương ứng với vị dụ xi; và u ví dụ chưa gán nhãn Trong phân lớp bán giám sát, số lượng dữ liệu chưa gán nhãn là lớn hơn nhiều so với dữ liệu đã gán nhãn, tức là u >> l Mục tiêu của phân lớp bán giám sát là huấn luyện một bộ phân lớp f từ l và u; trong khi đó, phân lớp giám sát lại tạo ra một bộ phân lớp chỉ từ những dữ liệu đã gãn nhãn Trong quá trình học, việc phân lớp bán giám sát sẽ tận dụng được những thông tin phong phú của dữ liệu chưa gãn nhãn, mà chỉ yêu cầu một số lượng rất nhỏ các dữ liệu đã gãn nhãn
III.1.3 Các phương pháp phân lớp bán giám sát điển hình
Các thuật toán bán giám sát đã và đang được phát triển một cách nhanh chóng trong những năm gần đây Hiện nay, có rất nhiều phương pháp học bán giám sát như: self-learning và self-labeling – là hai trong số những phương pháp phân lớp bán giám sát sớm nhất, chúng vẫn được sử dụng rộng rãi trong lĩnh vực xử lý ngôn ngữ tự nhiên; hoặc phương pháp SSSVM (SVM bán giám sát) với ý tưởng tìm một biên quyết định trong các
Trang 6vùng mật độ thấp; hay phương pháp dựa trên đồ thị - phương pháp này xây dựng một đồ thị có trọng số trên những ví dụ đã gán nhãn và ví dụ chưa gán nhãn và giả thiết rằng giữa hai ví dụ có một kết nối mạnh thì có khuynh hướng có cùng nhãn và giải quyết bài toán tối ưu hóa; một phương pháp phân lớp bán giám sát khác là sử dụng mô hình sinh, hỗn hợp phân bố Gaussian trong thuật toán EM [13]
Hiệu quả của những thuật toán phân lớp bán giám sát phụ thuộc vào chất lượng của các ví dụ gán nhãn được thêm vào ở mỗi vòng lặp và được đánh giá dựa trên hai tiêu chí [3]:
- Các ví dụ được thêm vào phải được gán nhãn một cách chính xác
- Các ví dụ được thêm vào phải mang lại thông tin hữu ích cho bộ phân lớp ( hoặc dữ liệu huấn luyện)
III.2 Phương pháp luận SVM-KNN dựa trên học bán giám sát
Niên luận này tập trung nghiên cứu việc nhóm các đặc trưng đồng nghĩa dựa trên phân lớp bán giám sát SVM-kNN Phương pháp phân lớp bán giám sát SVM-kNN tỏ ra rất hiệu quả trong bài toán phân lớp nếu chọn các tham số phù hợp Phương pháp này có
độ chính xác cao hơn so với thuật toán phân lớp SVM bởi vì nó thực hiện việc cải tiến độ chính xác của mỗi bộ phân lớp SVM qua nhiều lần lặp [13] Trước hết, chúng tôi xin giới thiệu về thuật toán SVM, kNN và sau đó trình bày các bước trong SVM-kNN
III.2.1 Thuật toán máy vector hỗ trợ (SVM)
Giải thuật Máy vector hỗ trợ (SVM) dựa trên nguyên lý tối thiểu hóa rủi ro cấu trúc (Structural Risk Minimization) trong lý thuyết thống kê (T Joachims, 1997, [12]) Xét bài toán phân lớp văn bản thành các lớp mẫu dương và mẫu âm: Cho một tập huấn
luyện các cặp (x i , y i ), i = 1, …, l; trong đó x i∈ R n là không gian vector đặc trưng n chiều;
y i∈ {-1, 1}, các mẫu dương là các mẫu x i thuộc lĩnh vực quan tâm và được gán nhãn y i =
1 và các mẫu âm là các mẫu x i không thuộc lĩnh vực quan tâm và được gán nhãn yi = −1
Bài toán đặt ra là khi đưa ra một vector đặc trưng x mới, cần dự đoán được y sao cho khả năng lỗi xảy ra là tối thiểu
a.Trường hợp khả tách tuyến tính
Trong trường hợp này, bộ phân lớp SVM là mặt siêu phẳng phân tách các mẫu dương khỏi các mẫu âm với lề cực đại, được xác định bằng khoảng cách giữa các mẫu dương và các mẫu âm gần mặt siêu phẳng lề tối ưu nhất (hình 1) Các mặt siêu phẳng
trong không gian đối tượng có phương trình là w T x + b = 0, trong đó w là vector pháp
Trang 7tuyến, b là tham số mô hình phân lớp
Hình 1: Mặt siêu phẳng tách các mẫu dương khỏi các mẫu âm
Bộ phân lớp SVM được định nghĩa như sau: f(x) = sign(w T x + b) (1.1), trong đó: sign(z) = +1 nếu z ≥ 0 và sign(z) = −1 nếu z < 0 Nếu f(x) = +1 thì x thuộc về lớp
dương, và ngược lại, nếu f(x) = −1 thì x thuộc về lớp âm Mục tiêu của phương pháp SVM là ước lượng w và b để cực đại hóa lề giữa các lớp dữ liệu dương và âm Các giá trị
khác nhau của lề cho ta các họ mặt siêu phẳng khác nhau, và lề càng lớn thì lỗi tổng quát hóa của bộ phân lớp càng giảm
Hai mặt siêu phẳng có phương trình là w T x + b = ±1 được gọi là các mặt siêu
phẳng hỗ trợ (các đường nét đứt trên hình 1) Để xây dựng một mặt siêu phẳng lề tối ưu thì:
- Vector w sẽ được tính:
- Tham số b được xác định sử dụng điều kiện Karush–Kuhn–Tucker(KKT) như sau:
αi [ y i (w T x i + b) – 1] = 0 (1.3) Các mẫu xi tương ứng với αi > 0 là những mẫu nằm gần mặt siêu phẳng quyết định nhất và được gọi là các vector hỗ trợ Những vector hỗ trợ là những thành phần quan trọng nhất của tập dữ liệu huấn luyện Bởi vì nếu chỉ có các vector hỗ trợ, ta vẫn có thể xây dựng mặt siêu phẳng lề tối ưu như khi có một tập dữ liệu huấn luyện đầy đủ
b Trường hợp không khả tách tuyến tính
Trang 8Với dữ liệu huấn luyện không khả tách tuyến tính thì ta có thể giải quyết theo hai cách
Cách thứ nhất sử dụng một mặt siêu phẳng lề mềm, nghĩa là cho phép một số mẫu
huấn luyện nằm về phía sai của mặt siêu phẳng phân tách hoặc vẫn ở vị trí đúng nhưng rơi vào vùng giữa mặt siêu phẳng phân tách và mặt siêu phẳng hỗ trợ tương ứng
Cách thứ hai sử dụng một ánh xạ phi tuyến Φ để ánh xạ các điểm dữ liệu đầu vào
sang một không gian mới có số chiều cao hơn Trong không gian này, các điểm dữ liệu trở thành khả tách tuyến tính, hoặc có thể phân tách với ít lỗi hơn so với trường hợp sử dụng không gian ban đầu Một mặt quyết định tuyến tính trong không gian mới sẽ tương ứng với một mặt quyết định phi tuyến trong không gian ban đầu Với k là một hàm nhân thoản mãn:
k(x i , x j ) = Φ(x i ) T Φ(x j ) (1.6)
Nếu chọn một hàm nhân phù hợp, ta có thể xây dựng được nhiều bộ phân loại khác nhau Có một số hàm nhân cơ bản sau đây:
- Hàm nhân đa thức:
k(x i , x j ) =
- Hàm vòng RBF (Radial Basic Function) :
- Hàm chữ S Sigmoid:
k(x i , x j ) =
Hiện nay có khá nhiều mã nguồn để hỗ trợ cho việc thực thi thuật toán SVM
đã được mô tả trên, trong đó LibSVM [8] là một bộ thư viện được viết bằng ngôn ngữ C++ và Java cho phép phân lớp vector hỗ trợ, hồi qui và ước lượng phân phối Ngoài ra, LibSVM còn có rất nhiều tính năng hữu ích như: phân lớp đa lớp, kiểm chức chéo cho việc chọn mô hình, ước lượng xác suất, cho phép người dùng chọn hàm nhân,… Chính
vì vậy, chúng tôi chọn LibSVM làm công cụ cho việc thực thi thuật toán SVM trong bài toán của chúng tôi
III.2.2 Thuật toán K người láng giềng gần nhất (kNN)
Trang 9Bộ phân lớp dựa trên thuật toán K người láng giềng gần nhất là một bộ phân lớp dựa trên bộ nhớ, đơn giản vì nó không phải thực hiện quá trình học mô hình, thay thế điều đó, phương pháp cần sử dụng tất cả các đối tượng trong tập huấn luyện khi phân lớp cho một đối tượng dữ liệu mới
Để phân lớp cho một điểm dữ liệu mới x, trước hết bộ phân lớp sẽ tính khoảng cách từ điểm x đến tất cả các điểm dữ liệu trong tập huấn luyện Qua đó tìm được tập
N(x, D, k) gồm k điểm dữ liệu mẫu có khoảng cách đến x là gần nhất Ví dụ nếu các dữ
liệu mẫu được biểu diễn bởi không gian vector thì chúng ta có thể sử dụng khoảng cách Euclian để tính khoảng cách giữa các điểm dữ liệu với nhau Sau khi xác định được tập
N(x, D, k), bộ phân lớp sẽ gán nhãn cho điểm dữ liệu x bằng lớp chiếm đại đa số trong
tập N(x, D, k) Mặc dù rất đơn giản, nhưng thuật toán K người láng giềng gần nhất đã cho
kết quả tốt trong nhiều ứng dụng thực tế
Để áp dụng thuật toán k-NN vào tài liệu văn bản, chúng ta sử dụng hàm tính trọng
số cho mỗi lớp theo biểu thức (2.1) Trong đó N C (x, D, k) là tập con chỉ chứa các đối
tượng thuộc lớp c của tập N(x, D, k).
(2.1)
Khi đó tài liệu x sẽ được phân vào lớp c 0 nếu:
(2.2)
III.2.3 Phương pháp phân lớp bán giám sát SVM-kNN
Thuật toán SVM đã cho thấy được rất nhiều những ưu điểm vượt trội như SVM
có khả năng học độc lập với số chiều trong không gian đặc trưng, kết quả phân lớp khi sử dụng thuật toán SVM là khá tốt kể cả trong không gian đặc trưng nhiều chiều Tuy nhiên, SVM có một nhược điểm là không cung cấp một ước lượng chính xác các biên quyết định đúng nếu có ít dữ liệu đã được gán nhãn
Trong suốt quá trình quyết định của phương pháp KNN chỉ liên quan đến số lượng nhỏ các hàng xóm gần nhất, do đó việc áp dụng phương pháp này có thể tránh được vấn
đề về sự cân bằng giữa các ví dụ Mặt khác, KNN chủ yếu phụ thuộc vào số lượng giới hạn các hàng xóm gần nhất không phải xung quanh một biên quyết định, vì vậy, nó phù hợp với việc phân lớp trường hợp tập các ví dụ có biên giao nhau và trường hợp có sự
Trang 10chồng chéo giữa các ví dụ.
Từ những ưu và nhược điểm của hai thuật toán SVM và kNN, H Zhang và cộng
sự, 2006 [11] đã đề xuất một phương pháp kết hợp hai thuật toán trên Công trình là một trong những công trình điển hình sớm nhất về phương pháp SVM-kNN Ý tưởng cơ bản của phương pháp này là tìm các hàng xóm gần với mẫy truy vấn và huấn luyện một máy vector hỗ trợ cục bộ Máy vector hỗ trợ cục bộ này duy trì hàm khoảng cách trên tập các hàng xóm H Zhuang và cộng sự đã chứng minh được rằng phương pháp này có thể áp dụng với tập dữ liệu lớn và đa lớp với kết quả tốt hơn so với thuật toán SVM hay kNN
Sau đó, Kunlun Li và cộng sự, 2010 [13] đã đề xuất một phương pháp phân lớp SVM-KNN dựa trên học bán giám sát nhằm cải tiến thuật toán SVM bằng cách tận dụng những ưu điểm của thuật toán kNN đã nêu ra ở trên Phương pháp này hiệu quả hơn so với phương pháp của H.Zhuang và cộng sự [11] Do đó, trong khóa luận này, chúng tôi tập trung nghiên cứu phương pháp phân lớp bán giám sát SVM-kNN do K.Li và cộng sự
đề xuất năm 2010
Tư tưởng bán giám sát trong SVM-kNN:
Tư tưởng chính của phương pháp này dựa trên lý thuyết học bán giám sát, sử dụng cả dữ liệu đã gán nhãn và dữ liệu chưa gán nhãn cho quá trình phân lớp Cụ thể là phương pháp sử dụng số ít các dữ liệu đã gán nhãn để huấn luyện một bộ phân lớp SVM
và sử dụng bộ phân lớp SVM này để dự đoán dữ liệu chưa được gán nhãn Từ những
dữ liệu đã được gãn nhãn trong tập huấn luyện và những dữ liệu vừa được dự đoán bởi SVM, chọn ra những vector biên, và sử dụng những vector biên này để cải tiến bộ phân lớp SVM đó bằng cách sử dụng kNN Việc sử dụng kNN để phân lớp không chỉ làm giàu số lượng tập huấn luyện, mà còn làm cải tiến được chất lượng của những ví dụ huấn luyện mới – chính là những ví dụ được chuyển từ các vector biên ở trên Cuối cùng, tập
dữ liệu đã được gán nhãn được mở rộng Đây cũng chính là mục đích chính trong học bán giám sát
Ba bước chính trong phương pháp SVM-kNN:
Đầu tiên, xây dựng một bộ phân lớp SVM yếu dựa trên một số ví dụ đã được gán
nhãn có sẵn (tập huấn luyện) Sử dụng bộ phân lớp SVM yếu này để dự đoán nhãn lớp cho số lượng lớn các dữ liệu chưa được gán nhãn còn lại trong tập dữ liệu ban đầu Từ những ví dụ đã được gán nhãn đó, lấy ra t ví dụ thuộc về mỗi lớp, những ví dụ này đứng