Trình phân loại văn bản giải thích các quyết định của nó


11

Tôi đang xây dựng một phân loại văn bản cho các câu ngắn. Ngoài việc nói với người dùng "danh mục văn bản bạn đã nhập là C", tôi muốn có thể giải thích lý do tại sao tôi đưa ra quyết định này, một cách ngắn gọn và dễ hiểu. Ví dụ: tôi không muốn nói với người dùng "Tôi đặt câu của bạn vào mạng thần kinh 3 lớp phức tạp và đó là câu trả lời đạt điểm cao nhất"; Tôi muốn giải thích như "Câu của bạn chứa các từ U, V và W, đó là đặc trưng của thể loại này, vì các câu như X, Y và Z xuất hiện trong dữ liệu đào tạo".

Câu hỏi của tôi là: thuật toán phân loại nào phù hợp nhất cho ứng dụng đó?

k-near-láng giềng có vẻ như là một ứng cử viên tốt, bởi vì tôi có thể nói với người dùng "Câu của bạn có loại C vì nó giống với câu X, Y và Z có cùng loại. Nhưng hiệu suất của nó đối với các vấn đề phân loại văn bản được biết đến là người nghèo. Tôi đang tìm kiếm một classifie cân bằng hiệu suất với khả năng giải thích.

EDIT: Sau khi dành nhiều thời gian để tìm kiếm một bộ phân loại như vậy, tôi bắt đầu xây dựng một thư viện máy học gọi là limdu , cho phép các bộ phân loại giải thích các quyết định của họ. Nó vẫn đang được phát triển, nhưng, nó đã giúp tôi giải thích cho bản thân và các đồng nghiệp tại sao các phân loại của chúng tôi thất bại thường xuyên như vậy ...


Quan điểm của học máy là bạn không quan tâm đến những gì xảy ra dưới mui xe, bạn chỉ quan tâm đến hiệu suất. Cách tiếp cận khác đã thất bại, và đó là lý do tại sao mọi người ngày nay sử dụng các phương pháp thống kê mờ đục này - chúng chỉ tốt hơn rất nhiều.
Yuval Filmus

2
@Yuval Tôi hoàn toàn không đồng ý rằng các phương pháp khác đều thất bại. Chúng không tối ưu nhưng chúng vẫn đạt được mục tiêu tự động hóa các nhiệm vụ phân loại cao hơn những gì con người có khả năng hoặc kiên nhẫn thực hiện. Các hộp đen mờ không phải là cách duy nhất để học máy hiệu quả, đặc biệt là trong các tình huống như thế này khi hiệu suất không phải là sự cân nhắc duy nhất. Hãy cởi mở hơn một chút về các mục tiêu khác nhau đằng sau các nhiệm vụ học máy.
Richard D

Câu trả lời:


7

Mặc dù nó hoạt động kém trong các nhiệm vụ phân loại văn bản, nhưng nếu bạn muốn giải thích rõ ràng về lý do phân loại, một cây quyết định sẽ là lựa chọn tốt nhất của bạn vì nó cung cấp các quy tắc rõ ràng về cách phân loại một thể hiện. Một dấu vết của cây sẽ cung cấp các giá trị xác định và bằng cách phân tích các thể hiện gần với nút gốc, bạn thậm chí có thể xác định thuộc tính nào có ý nghĩa hơn trong phân loại.

Một tùy chọn khác là sử dụng trình phân loại Naive Bayes , hoạt động tốt hơn cho các tác vụ khai thác văn bản và sẽ cung cấp cho bạn một sơ đồ đánh giá dễ hiểu dựa trên xác suất mà bạn có thể sử dụng để tạo ra "lý do" bạn đang tìm kiếm, thậm chí cung cấp một dấu hiệu về giá trị thuộc tính nào quan trọng hơn các giá trị khác trong việc đưa ra quyết định.

Support Vector Machines , cụ thể là Tối ưu hóa tuần tự (SMO), dường như hoạt động tốt với các tác vụ này và cũng cung cấp chỉ dẫn về các giá trị được sử dụng để phân loại dưới dạng trọng số thuộc tính và vectơ hỗ trợ, nhưng tôi nghĩ bạn có thể gặp khó khăn hơn làm cho rõ ràng làm thế nào những trọng lượng và vectơ ảnh hưởng đến quyết định phân loại tổng thể.

Chúc may mắn với dự án của bạn! Âm thanh rất thú vị.


1
Cảm ơn. Tôi cũng phát hiện ra rằng các trình phân loại trực tuyến, như perceptron và winnow, khá tốt trong nhiệm vụ này (ít nhất là trong kịch bản của tôi) và thật dễ dàng để giải thích quyết định bằng cách xem giá trị tuyệt đối mà mỗi tính năng thêm vào điểm số phân loại. Đối với mỗi mẫu, tôi sắp xếp các tính năng theo giá trị tuyệt đối của (tính năng * trọng lượng) và hiển thị một số tính năng đầu tiên.
Erel Segal-Halevi

3

Tôi mơ hồ nhớ lại rằng Peter Norvig đã thực hiện MYCIN , một hệ thống chuyên gia chẩn đoán y khoa , được viết bằng LISP trong cuốn sách Paradigms of Artificial Intelligence Artificial: Case Studies in Common Lisp , đã thực hiện chính xác điều này.

Có lẽ đó là một nơi tốt để bắt đầu nghiên cứu của bạn. Bạn sẽ tìm thấy mã nguồn trực tuyến, cùng với một cơ sở quy tắc , tuy nhiên, tôi thực sự khuyên bạn nên đọc văn bản và không cố gắng hiểu nó từ mã nguồn một mình.

Bạn cũng có thể truy cập trực tiếp vào trang dành cho Emycin (sự nhấn mạnh của tôi),

Emycin là một hệ thống chuyên gia , một khung để xây dựng các chương trình ghi lại kiến ​​thức của các chuyên gia tên miền và sử dụng kiến ​​thức đó để giúp người dùng không chuyên gia giải quyết vấn đề. Nó cung cấp một giao diện giúp các chuyên gia xác định các loại dữ liệu và quy tắc, thuật toán suy luận chuỗi ngược (tương tự Prolog, nhưng có sự khác biệt chính), một cơ chế xử lý sự không chắc chắn và các phương tiện để xem xét cho phép người dùng tìm hiểu những gì hệ thống biết và những gì nó đang làm .


2
Có một lý do tại sao các hệ thống chuyên gia không còn rất phổ biến nữa, thật khó để mã hóa tất cả các quy tắc.
adrianN
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.