(BUG) Предказываемость word2vector признаков в предложении: ошибаемость <5%

Dec 05, 2014 21:42

PS: Да, баг найден, неправильно меряю. Хорошо, что так быстро нашелся :)
---------------------------------------------------------------------------------------------------

Результат меня смущает и настораживает. Буду проверять и перепроверять. Потому что такого быть не может, но оно случилось. Итак.

1. Делаем word2vector репрезентации по нелемматизированному корпусу русских текстов ~21 Гб (рувики, архивы прессы, худлит, архивы компьютерры, новгородские берестяные грамоты и т.д., ) с параметрами -cbow 1 -size 50 -window 3  -hs 1 -sample 1e-5.
2. Далее обучаем 3х-слойную нейросеть (классика, 1 скрытый слой на tanh) предсказывать следующий вектор по одному предыдущему (вот такая markov chain model). Можно также рассматриваеть это как построение аппроксиматора для векторной функции.
3. Прогоняем примерно 1 миллион слов. Считаем ошибаемость - евклидово расстояние между ожидаемым вектором и предсказываемым.
4. Садимся поудобнее, и с удивлением, восхищением и недоверием смотрим на результат:



По OY - процент ошибки.
По OX - число прошедших через предиктор слов.

Кстати, важный нюанс: надо терпеливо ждать, так как первые 200 тысяч слов сеть обучается вяло и вообще внушает своим поведением, что дело дрянь. А вот что-то случается потом... Возможно, сеть таки проваливается в хороший глобальный минимум, то есть начальное приближение весов задано не очень удачно.

PS: досчиталась вторая векторая модель с параметрами -cbow 0 -window 3 size 50, теперь можно сравнить ее с -cbow 1 на той же самой задаче предсказания следующего слова в линейной последовательности:


нейросети, вероятностная русская морфология, вероятностная модель, word embedding, neuronet

Previous post Next post
Up