Алгоритм «Палех»: як нейронні мережі допомагають пошуку Яндекса

2 листопада 2016

Запустили новий пошуковий алгоритм — «Палех». Він дозволяє пошуку Яндекса точніше розуміти, про що його запитують люди. Завдяки «Палеха» пошук краще знаходить веб-сторінки, які відповідають запитам не тільки за ключовими словами, а й за змістом. За зіставлення сенсу запитів і документів відповідає пошукова модель на основі нейронних мереж.

«Довгий хвіст»

Кожен день пошук Яндекса відповідає приблизно на 280 мільйонів запитів. Наприклад [вконтакте], люди вводять в пошуковий рядок практично кожну секунду. Деякі запити унікальні — їх ставлять один раз, і вони, можливо, більше ніколи не повторяться. Унікальних і просто рідкісних запитів дуже багато — близько ста мільйонів в день.

Графік частотного розподілу запитів в Яндексі часто демонстують у вигляді птаха, у якій є дзьоб, тулуб і довгий хвіст. Список найпоширеніших запитів не особливо великий, але їх ставлять дуже-дуже часто — це «дзьоб» пташки. Запити середньої частотності утворюють «тулуб». Низькочастотні запити окремо зустрічаються надзвичайно рідко, але разом складають істотну частину пошукового потоку і тому складаються в «довгий хвіст».

Новий алгоритм дозволяє пошуку Яндекса краще відповідати на складні запити з «довгого хвоста». Такий хвіст є у казковій Жар-птиці, яка часто з'являється на палехській мініатюрі. Тому дали алгоритму назву «Палех».

Запити з «довгого хвоста» дуже різноманітні, але серед них можна виділити кілька груп. Наприклад, одна з них — запити від дітей, які поки не освоїли мову спілкування з пошуком і часто звертаються до нього як до живого співрозмовника: [дорогий яндекс порадь будь ласка нові цікаві ігри про фей для Плантіко]. Ще одна група — запити від людей, які хочуть дізнатися назву фільму або книги по запам'ятаються епізоду: [фільм про людину який вирощував картоплю на іншій планеті] ( «марсіанин») або [фільм де фізики розповідали дамі про дейтерій] ( «Дев'ять днів одного року »).

Особливість запитів з «довгого хвоста» в тому, що зазвичай вони більш складні для пошукової системи. Запити з «дзьоба» задають багато разів, і для них є маса різноманітної статистики від користувачів. Чим більше знань про запити, сторінок і дії користувачів накопичив пошук, тим краще він знаходить релевантні результати. У випадку з рідкісними запитами поведінкової статистики може не бути — а значить, Яндексу набагато важче зрозуміти, які сайти добре підходять для відповідей, а які не дуже. Завдання ускладнюється тим, що далеко не завжди на релевантної сторінці зустрічаються слова із запиту — адже один і той же зміст у запиті і на сторінці може бути виражений зовсім по-різному.

Семантичний вектор

Штучні нейронні мережі — один з методів машинного навчання, який став особливо популярним в останні роки. Нейромережі показують відмінні результати в аналізі природної інформації: зображень, звуку, тексту. Наприклад, нейронну мережу можна навчити розпізнавати на зображеннях ті чи інші об'єкти — скажімо, дерева або собак. В ході навчання їй показують величезну кількість картинок, де є потрібні об'єкти (позитивні приклади) і де їх немає (негативні приклади). В результаті нейромережа отримує здатність вірно визначати потрібні об'єкти на будь-яких зображеннях.

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

Далі — більше

Семантичний вектор застосовується не тільки в пошуку Яндекса, але і в інших сервісах — наприклад, в Картинках. Там він допомагає знаходити в інтернеті зображення, які найбільш точно відповідають текстовому запиту.

Технологія семантичних векторів має величезний потенціал. Наприклад, переводити в такі вектори можна не тільки заголовки, а й повні тексти документів — це дозволить ще точніше зіставляти запити і веб-сторінки. У вигляді семантичного вектора можна представити і профіль користувача в інтернеті — тобто його інтереси, попередні пошукові запити, переходи по посиланнях. Далека, але надзвичайно цікава мета полягає в тому, щоб отримати на основі нейронних мереж моделі, здатні «розуміти» семантичне відповідність запитів і документів на рівні, порівнянному з рівнем людини.

Джерело