«Межі моєї мови визначають кордони мого світу»
Людвіг Вітґенштайн
Як швидше вчити і краще запам'ятати слова іноземної мови: математичний апарат Duolingo
Розробники онлайн-сервісу і мобільних додатків для вивчення іноземних мов Duolingo у своєму блозі описують алгоритм для кращого запам'ятовування слів, а саме, як вони визначають попередньо вивчені користувачами слова, які тим слід повторити, щоб не забути, і в який час це робити, щоб запам'ятовування відбулось якомога ефективніше.
Світлина: duolingo.com
Вимірювачи засвоєння (Strength meters)
Кожен користувач Duolingo знає, що уроки на цьому ресурсі організовано за системою тематично або граматично пов'язаних навичок (skills). І кожна людина, яка вивчає іноземну мову, знає, що з часом те, що вивчив, поступово забувається. Саме тому на Duolingo використовують вимірювачі засвоєння (strength meters), які вказують користувачам, наскільки добре вони вивчили кожну навичку і чи не настав час повернутись і пригадати певні слова чи конструкції.
Фіг. 1.Ліворуч: Дерево навичок Duolingo з вимірювачами засвоєння. Праворуч: Екран деталей навички, який показує найгірше засвоєні слова, які потрібно повторити.
Як тільки користувач вивчає навичку, вимірювач засвоєння, як правило, заповнює всі свої сегменти (і саме коло, що позначає навичку на дереві) жовтим, що означає, що навичку засвоєно повністю. Проте з часом сегменти вимірювача втрачають колір, що означає, що матеріал забувається і потрібно його повторити. Це можна зробити, обравши на дереві певну навичку і натиснувши кнопку Зміцнити (Strengthen). Але цікаво, як працюють ці вимірювачі і як Дуолінго визначає, які саме слова потрібно посилити в той чи інший час?
Модель учня і крива забування
В основі механізму Duolingo лежить модель учня (student model), яка відслідковує статистику про кожне слово, якому було навчено користувача: наприклад, як часто учень бачив слово, чи вірно його запам'ятав і т.д. Ця модель використовує велетенську базу даних з мільярдами записів і оновлюється зі швидкістю 3000 разів на секунду! Дану статистику використовують для передбачення ймовірності того, що користучач запам'ятає дане слово в даний час. Спочатку потрібно практикуватись досить часто, проте коли слово вкоріниться в довгостроковій пам'яті учня, можна скинути швидкість і зробити акцент на інших навичках.
Такий підхід ґрунтується на інтервальнорму ефекті, який полягає в тому, що короткі заняття, розкидані в часі, для навчання кращі, ніж зазубрювання. Пов'язаним явищем є ефект затримки, який полягає в тому, що ще краще поступово збільшувати інтервали між заняттями. Ці ідеї відомі ще з 1885 року, коли німецький психолог Герман Еббінгауз винайшов концепцію кривої забування.
Фіг. 2. Крива забування: ймовірність запам'ятати зменшується як функція "часу затримки" (днів з часу останньої практики) і "періоду напівзабування"
На фіг. 2 представлено приклад кривої забування. Ймовірність запам'ятати слово падає експоненційно за формулою p = 2^(-Δ/h), де Δ - це "час затримки" з останнього заняття, а h - це "період напівзабування" слова в пам'яті (тобто, це час, який потрібен, щоб тривкість пам'яті зменшилась удвічі). Так, на вказаній кривій:
Δ = 0 - це час завершення заняття, коли учень майже точно запам'ятав;
Δ = h - це час, коли час затримки дорівнєю періоду напівзабування (в даному випадку це один день), тобто ймовірність забути слово складає 50%;
Δ >> h - час затримки набагато більший за період напівзабування, тобто дуже ймовірно, що слово вже майже забуто.
Найкращий час для виконання вправ це коли ви ще не забули, але почали забувати, іншими словами, коли Δ і h близькі. Проте як це можна оцінити для кожного слова в пам'яті людини?
Роками люди випробували різні хитрощі. В 1960-х лінгвіст Пол Пімслер опублікував розклад запам'ятовування періодів напівзабування, який він використовував в своїх прораммах вивчення мови (5 секунд після першого вивчення, потім 25 секунд, потім 2 хвилини, 10 хвилин і т.п.). Проте цей розклад є фіксованим і негнучким, однаковим для усих слів і не може підлаштовуватись до конкретної людини. В 1970-х психолог Себастьян Лейтнер запропонував більш адаптивну систему для навчанння за допомогою флеш-карточок. За однією з версій цієї системи період напівзабування збільшують вдвічі кожного разу, коли учень вірно запамятовує слово, і вдвічі зменшують, коли він помиляється. Це здається кращою ідеєю, і саме цей алгоритм було використано на Duolingo під час запуску сервісу в 2012, проте згодом розробники подумали, що можуть додатково його покращити.
Регресія періоду напівзабування (HLR)
Duolingo має мільйони учнів, які створюють мільярди статистичних елементів щоденно. Тому виникла ідея поєднати сучасні машинне навчання і методи аналізу і обробки даних з психологічною теорією кривих забування. В процесі досліджень було розроблено нову статистичну модель, яку назвали регресією періоду напівзабування (half-life regression, HLR) з використанням експоненційної функції ймовірності, на кшталт представленої на фіг. 2. В цілому період напівзабування слова в пам'яті на Duolingo оцінюють за формулою h = 2 ^ (? ϰ), де ? - ваги регресійної моделі, а ϰ - набір змінних, які підсумовують історію вивчення слова. HLR включає знаходження найкращих ваг моделі шляхом мінімізації "функції втрат" на кожному уроці для кожного студента, яка має вигляд:
Простими словами це означає, що механізм Duolingo може навчатися передбачати час напівзабування кожного слова в довгостроковій пам'яті користувача шляхом аналізу карти похибок мільйонів учнів. Наприклад, на фіг. 3 показано, як може виглядати крива забування для окремого слова згідно з HLR. Кожного разу, коли учень запам'ятовує його вірно (зелені галочки), h збільшується, і учень починає забувати повільніше (штрихова лінія). Проте кожного разу, коли учень робить помилку (червоні хрестики), h зменшується, і учень починає забувати швидше, а отже потрібно повторити слово скоріше.
Фіг. 3. Історія вивчення слова учнем і HLR-прогноз кривої забування.
Можна усереднити ці передбачення в будь-який час і сгенерувати вимірювач засвоєння (фіг. 1, ліворуч), або використати їх для вибору найгірше засвоєних слів для повторення (фіг. 2, праворуч).
В доповнення до історії вірного чи невірного запам'ятовування HLR може використовувати самі слова як змінні моделі регресії, що надає розробникам інформацію про те, що саме при вивченні мови дається найважче. Наприклад, в таблиці нижче представлено легші (з додатною вагою) і важчі (з від'ємною вагою) для вивчення слова для деяких популярних мов згідно з моделлю HLR:
Мова
Англійська
Іспанська
Французька
Німецька
Легші слова (+ ваги)
camera (+0.77) ends (+0.38) circle (+0.08)
liberal (+0.83) como (+0.40) encuentra (+0.10)
visite (+0.94) suis (+0.47) trou (+0.05)
Baby (+0.87) sprechen (+0.56) sehr (+0.13)
Важчі слова (- ваги)
rose (-0.09) performed (-0.48) writing (-0.81)
está (-0.05) pensando (-0.33) quedado (-0.73)
dessous (-0.06) ceci (-0.45) fallait (-0.91)
den (-0.07) Ihnen (-0.55) war (-1.10)
Якщо придивитись, то можна побачити систему. Легші слова (з додатною вагою) часто бувають когнатами - словами, які є подібними в різних мовах, або короткими звичайними словами з регулярними вормами. Важчі слова (з від'ємною вагою) - це часто рідкісні слова з нерегулярними формами, або вживання складних граматичних конструкцій типу дієприслівників теперишнього/минулого часу. Логічно, що HLR відслідковує такі закономірності і використовує їх для покращення навчання.
Результати експериментів
Для перевірки нової моделі регресії напівзабування були проведені експерименти. На фіг. 4 представлені результати одного експерименту, проведеного на вибірці 12 мільйонів учбових сесій Duolingo, в порівнянні з алгоритмами Пімслера, Лейтнера і логістичною регресією.
Фіг. 4. Порівняння величин похибок для HLR і інших методів (чим нижче похибка, тим краще).
Як можна побачити, регресія періоду напівзабування має найнижчу похибку передбачення в порівннянні з іншимим випробуваними методами. Фактично похибка HLR виявилась майже вдвічі меншою, ніш у системи Лейтнера, яку використовували на Duolingo спочатку. Отже, наразі сервіс Duolingo залишається одним з найкращих способів швидкого вивчення і ефективного засвоєння слів іноземної мови.