Текстовий класифікатор, який пояснює його рішення


11

Я будую текстовий категоризатор для коротких речень. Крім того, щоб сказати користувачеві "категорія тексту, який ви ввели, це С", я хочу мати можливість пояснити, чому я прийняв таке рішення, стисло та зрозуміло. Наприклад, я не хочу сказати користувачеві: "Я поставив ваше речення в складну тришарову нейронну мережу, і це відповідь, яка набрала найкраще"; Я хочу пояснень, таких як "Ваше речення містить слова U, V і W, характерні для цієї категорії, через такі речення, як X, Y і Z, які з'явилися у навчальних даних".

Моє запитання: які алгоритми класифікації найкраще підходять для такого застосування?

k-найближчі-сусіди здаються хорошим кандидатом, тому що я можу сказати користувачеві: "У вашому реченні є категорія C, оскільки воно схоже на речення X, Y і Z, які мають одну і ту ж категорію. Але його ефективність щодо проблем категоризації тексту відома Я шукаю класифікацію, яка врівноважує продуктивність із можливістю пояснення.

EDIT: Провівши багато часу на пошук такого класифікатора, я почав будувати бібліотеку машинного навчання під назвою limdu , яка дозволяє класифікаторам пояснити свої рішення. Він ще знаходиться на стадії розробки, але це вже допомогло мені пояснити собі та колегам, чому наші класифікатори так часто виходять з ладу ...


Сенс машинного навчання полягає в тому, що вам байдуже, що відбувається під кришкою, ви дбаєте лише про продуктивність. Інший підхід провалився, і тому всі сьогодні використовують ці непрозорі статистичні підходи - вони просто набагато кращі.
Yuval Filmus

2
@Yuval Я повністю не погоджуюся з тим, що інші підходи провалилися. Вони не є оптимальними, але вони все ж досягають мети автоматизувати класифікаційні завдання набагато вище того, що людина має здатність чи терпіння. Непрозорі чорні скриньки - не єдиний спосіб ефективного машинного навчання, особливо в таких ситуаціях, коли продуктивність не є єдиною увагою. Будьте трохи відкритішими щодо різних цілей завдань машинного навчання.
Річард Д

Відповіді:


7

Хоча це погано виконує завдання класифікації тексту, якщо ви хочете чітко пояснити міркування щодо класифікації, дерево рішень було б найкращим варіантом, оскільки воно містить чіткі правила класифікації екземпляра. Слід дерева дозволить забезпечити визначальні значення, проаналізувавши екземпляри, близькі до кореневого вузла, ви навіть зможете визначити, які атрибути є більш значущими в класифікації.

Іншим варіантом може бути використання класифікатора Naive Bayes , який краще працює для завдань з виведення тексту і дасть вам зрозумілу схему оцінювання на основі ймовірностей, які ви могли б використовувати для створення "чому", який ви шукаєте, навіть надаючи вказівку на які значення атрибутів були важливіші за інші при визначенні.

Веб-машини підтримки , зокрема послідовна мінімальна оптимізація (SMO), здається, добре справляються з цими завданнями і так само дають вказівки на значення, які використовуються для класифікації у вигляді ваг атрибутів та векторів підтримки, але я думаю, що у вас може бути складніше чітко пояснюючи, як ці ваги та вектори впливали на загальне рішення про класифікацію.

Успіхів у вашому проекті! Звучить дуже цікаво.


1
Дякую. Я також з’ясував, що класифікатори в Інтернеті, такі як перцептрон і віннен, досить добре справляються з цим завданням (принаймні в моєму сценарії), і це легко пояснити рішенням, дивлячись на абсолютне значення, яке кожна функція додає до класифікаційного бала. Для кожного зразка я сортую функції за абсолютним значенням (характеристика * вага) та показую перші кілька.
Ерел Сегал-Халеві

3

Я тумано згадую, що Пітер Норвіг мав реалізувати MYCIN - систему експертів з медичного діагностування , написану в LISP у своїй книзі « Парадигми програмування штучного інтелекту: кейси в Common Lisp» , яка саме так і зробила.

Можливо, це гарне місце для початку досліджень. Ви знайдете вихідний код в Інтернеті разом із базою правил , проте настійно рекомендую прочитати текст і не намагатися зрозуміти його лише з вихідного коду.

Ви також можете перейти безпосередньо до сторінки Еміцин (мій акцент),

Еміцин - це експертна системна оболонка, яка створює програми, що фіксують знання експертів з домену та використовують ці знання для того, щоб допомогти непрофесійним користувачам вирішити проблеми. Він надає інтерфейс, який допомагає експертам визначати типи даних і правила, алгоритм міркування за допомогою зворотного ланцюга (подібний до Prolog, але з ключовими відмінностями), механізм боротьби з невизначеністю та засоби самоаналізу, що дозволяють користувачам дізнаватися, що система знає і що це робить .


2
Є причина, чому експертні системи вже не дуже популярні, хоча важко кодувати всі правила.
adrianN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.