Исследователи из Университета науки и технологий Китая совместно с коллегами из Microsoft Research разработали алгоритм, который, по словам создателей, способен обойти среднего человека в тесте вербального IQ. Алгоритм основан на принципах глубокого машинного обучения и при этом специально «заточен» под уже существующие тесты IQ. Исследование пока не принято к публикации и доступно только в виде препринта в архиве Корнельского университета, кратко о нем пишет Technology Review.
Созданный авторами алгоритм имеет две ключевые особенности: во-первых, в нем используется система классификации вопросов по типу, во-вторых, он учитывает наличие у слов нескольких значений.
Классификация по типу вопроса проводится стандартным для современного машинного обучения способом — методом опорных векторов, SVM. Этот метод способен эффективно разделять входящие данные на заранее определенное число групп при наличии достаточно большой и разнообразной обучающей выборки.
Вопросы, которые встречаются в вербальной части тестов IQ, ученые анализировали вручную. Из них было выделено несколько типов, в соответсвии с которым программа должна была проводить семантический анализ тем или иным образом.
Вопросы из вербальной части тестов IQ выглядят, например, так:
Изотерма относится к температуре так же, как изобара к: (1) атмосфере, (2) ветру, (3) давлению, (4) широте, (5) силе тока.
Такой тип вопросов авторы называют аналогиями. Другой тип вопросов относится к поиску синонимов или (отдельный тип) антонимов.
Какое из слов наиболее противоположно по смыслу слову «музыкальный»? (1) нестройный, (2) громкий, (3) лирический, (4) вербальный, (5) эвфонический.
Ключевым для поиска ответа на такие вопросы стало создание системы различения нескольких значений или оттенков значения у одного и того же слова. Работает она следующим образом. Вначале авторы строят стандартную для семантического анализа матрицу частоты встречаемости слов. На основе существующего корпуса текстов (в данном случае это были статьи Википедии) определяется, насколько часто разные слова (например, «натянутый» или «зеленый») встречается поблизости от каждого из анализируемых слов (например, «лук»). Каждому слову таким образом сопоставляется вектор встречаемости вместе с ним других слов. Размерность этого вектора соответствует общему количеству отдельных слов в корпусе.
Однако обычно при этом не учитывается, что одно и то же слово может иметь разные значения. В новой работе авторы попытались решить эту проблему с помощью кластеризации: вектор каждого слова они пропускали через процедуру поиска отдельных значений («подслов»), с которым по-разному группируются другие слова.
По словам ученых, подход оказался успешным: алгоритм смог обойти в тестировании добровольцев, привлеченных к эксперименту через сервис Mechanical Turk. В среднем добровольцы отвечали правильно на 46,2 процента вопросов, тогда как самая эффективная версия алгоритма находила верные решения в 50,86 процентах случаев. По словам авторов, такие результаты занимают промежуточное положение между средними результатами бакалавров и обладателей магистерской степени.
Подход с матрицей встречаемости используется при анализе текстов довольно давно. На нем основаны многие, хотя и не все системы автоматического перевода — считается, что если векторы встречаемости слов в разных языках похожи, то значения слов совпадают. Таким образом, например, работает сервис Google Translate. Менее популярной альтернативой данного подхода является составление словаря экспертом.