Пропоную вашій увазі переклад статті "Революція машинного навчання" "за авторством Еріка Енжа (Eric Enge).
- Моя подорож у машинне навчання
- Основні положення машинного навчання
- Машинне навчання з учителем
- Завдання класифікації
- Машинне навчання без учителя
- Інші приклади використання машинного навчання
- Приклади алгоритмів, які може використовувати Google
- Алгоритм Пінгвін
- Алгоритм Панда
- Як машинне навчання впливає на SEO
- Отже, що це означає?
- Ув'язнення
Машинне навчання вже саме по собі є серйозною дисципліною. Воно активно використовується навколо нас, причому в набагато більш серйозних масштабах, ніж ви можете собі уявити. Кілька місяців тому я вирішив заглибитися в цю тему, щоб дізнатися про неї більше. У цій статті я розповім про деякі базові принципи машинного навчання, а також поділюся своїми міркуваннями з приводу його впливу на SEO і digital-маркетинг.
Для довідки, рекомендую подивитися презентацію Ренда Фішкіна «SEO in a Two Algorithm World», де Ренд детально розглядає вплив машинного навчання на пошук і SEO. До цієї теми я ще повернуся.
Я також згадаю сервіс, який дозволяє спрогнозувати шанси ретвіту вашого поста на підставі наступних параметрів: показник Followerwonk Social Authority, наявність зображень, хештегів і деяких інших факторів. Я назвав цей сервіс Twitter Engagement Predictor (TEP). Щоб розробити таку систему, мені знадобилося створити і навчити нейронну мережу. Ви вказуєте вихідні параметри твіту, сервіс обробляє їх і прогнозує шанси ретвіту.
TEP використовує дані дослідження, опублікованого в грудні 2014 «Twitter engagement» (залучення в Twitter), де ми проаналізували 1,9 мільйонів оригінальних твітів (виключаючи ретвіти і обране), щоб визначити основні фактори, які впливають на отримання ретвітів.
Моя подорож у машинне навчання
Своє перше уявлення про машинне навчання я отримав в 2011 році, коли брав інтерв'ю у гуглера Пітера Норвіга, який розповів мені як за допомогою цієї технології Google навчає сервіс Google Translate.
Якщо коротко, вони збирають інформацію про всі варіанти перекладу слова в мережі і на основі цих даних проводять навчання. Це дуже серйозний і складний приклад машинного навчання, Google застосувала його в 2011 році. Варто сказати, що сьогодні всі лідери ринку - наприклад, Google, Microsoft, Apple і Facebook використовують машинне навчання для багатьох цікавих напрямків.
Ще в листопаді, коли я захотів серйозніше розібратися в цій темі, я приступив до пошуку статей в мережі. Незабаром я виявив відмінний курс з машинного навчання на Coursera. Його викладає Andrew Ng (Ендрю Ин) зі Стенфордського університету, курс дає гарне уявлення про основи машинного навчання.
Увага: Курс досить об'ємний (19 занять, кожне в середньому займає близько години або більше). Він також вимагає певного рівня підготовки в галузі математики, щоб вникнути в обчислення. Під час курсу ви зануритеся в математику з головою. Але суть в наступному: якщо ви володієте необхідним бекграундом в математиці і сповнені рішучості, то це хороша можливість пройти безкоштовний курс, щоб засвоїти канони машинного навчання.
Крім цього, Ин продемонструє вам безліч прикладів мовою Octave. На основі вивченого матеріалу ви зможете розробити власні системи машинного навчання. Саме це я і зробив у прикладі програми зі статті.
Основні положення машинного навчання
Перш за все, дозвольте прояснити одну річ: я не є провідним фахівцем у галузі машинного навчання. Проте, я дізнався достатньо, щоб розповісти вам про деякі базові положення. У машинному навчанні можна виділити два основних способи: навчання з учителем і навчання без вчителя. Для початку я розгляну навчання з учителем.
Машинне навчання з учителем
На базовому рівні можна представити навчання з учителем як створення серії рівнянь для відповідності відомому набору даних. Припустимо, вам потрібен алгоритм для оцінки вартості нерухомості (цей приклад Ин часто використовує в курсі Coursera). Візьмемо деякі дані, які будуть виглядати наступним чином:
У цьому прикладі у нас є (вигадані) історичні дані, які показують вартість будинку залежно від його розміру. Як ви вже могли помітити, чим більший будинок, тим дорожче він коштує, але ця залежність не лягає на пряму. Тим не менш, ми можемо вирахувати таку пряму, яка досить непогано буде відповідати вихідним значенням, вона буде виглядати так:
Ця лінія може бути використана для прогнозування цін на нові будинки. Ми розглядаємо розмір будинку як «вхідний» параметр і прогнозовану алгоритмом ціну як «вихідний» параметр.
В цілому, ця модель зовсім спрощена. Адже існують й інші значущі фактори, які впливають на ціну нерухомості - це кількість кімнат, кількість спалень, кількість санвузлів, загальна площа. Виходячи з цього, ми можемо побудувати більш складну модель, з таблицею даних на зразок цієї:
Зазначимо, що для цього варіанту пряма не підійде, нам необхідно призначити кожному фактору свою вагу в прогнозуванні ціни. Можливо, основними факторами будуть розмір і площа будинку, але кімнати, спальні і санвузли теж вимагають вказівки ваги. Всі ці фактори будуть використовуватися як «вхідні» параметри.
Навіть зараз, нашу модель можна вважати вельми спрощеною. Ще одним істотним фактором у цінах на нерухомість є локація. Ціни в Сіетлі (штат Вашингтон) відрізняються від цін у Галвестоні (штат Техас). Якщо ви спробуєте побудувати подібний алгоритм в національному масштабі, використовуючи локацію в якості додаткового «вхідного» параметра, ви зіткнетеся з серйозним завданням.
Машинне навчання можна використовувати для вирішення всіх вищевикладених завдань. У кожному з прикладів ми використовували набори даних (їх частіше називають «навчальні вибірки») для запуску програм, алгоритм яких заснований на відповідності цим даним. Цей метод дозволяє задіяти нові «вхідні» параметри для прогнозування результату (в нашому випадку, ціни). Таким чином, спосіб машинного навчання, при якому система навчається на основі навчальних вибірок називають «навчанням з учителем».
Завдання класифікації
Існує особливий тип завдань, в яких основною метою є прогнозування конкретних результатів. Уявіть, наприклад, що ми хочемо визначити ймовірність того, що новонароджений з часом зросте, як мінімум, до 6 футів (ауд 183 см). Набір вхідних даних буде виглядати приблизно так:
На виході даного алгоритму ми отримаємо значення 0, якщо людина, ймовірно, буде нижче ніж 183 см і значення 1, якщо зріст прогнозується вище заданого. Для вирішення цього завдання класифікації ми вказуємо вхідні параметри для специфічного класу. У цьому випадку ми не намагаємося визначити точне зростання, а просто прогнозуємо ймовірність, що воно буде вище або нижче заданого.
Прикладами більш складних питань класифікації є розпізнавання рукописного тексту або спаму в листах.
Машинне навчання без учителя
Даний спосіб машинного навчання використовують за відсутності навчальної вибірки. Ідея полягає в тому, щоб навчити систему виділяти групи об'єктів із загальними властивостями. Наприклад, у нас може бути наступний набір даних:
Алгоритм аналізує ці дані і групує їх на підставі загальних властивостей. У прикладі нижче показані об'єкти «x» мають загальні властивості:
Проте алгоритм може помилятися при розпізнаванні об'єктів і групувати їх приблизно так:
На відміну від навчання з учителем, цей алгоритм сам визначив параметри, властиві кожній з груп і згрупував їх. Одним з прикладів реалізації системи навчання без вчителя є сервіс Google News. Подивимося на наступний приклад:
Ми бачимо новину про затримання Іраном 10 американських моряків, а також посилання на пов'язані новини від агентств Reuters і Bloomberg (обведено червоним). Угруповання цих новин є хорошим прикладом системи машинного навчання без вчителя, коли алгоритм вчиться знаходити зв'язки між об'єктами і об'єднувати їх.
Інші приклади використання машинного навчання
Чудовим прикладом використання машинного навчання є алгоритм визначення автора, який Moz реалізували у своєму сервісі для роботи з контентом. Дізнатися про цей алгоритм більше можна тут. У статті за посиланням детально описуються проблеми, з якими фахівцям з Moz довелося зіткнутися і яким чином вони вирішили поставлене завдання.
Тепер розповім трохи про згаданий на початку статті сервіс Twitter Engagement Predictor, система якого побудована на базі нейронної мережі. Приклад його роботи можна побачити на скріншоті:
Програма робить бінарний прогноз ретвітнуть ваш пост чи ні, і в разі позитивної відповіді вираховує ймовірність ретвіту.
При аналізі вихідних даних, що використовуються для навчання мережі можна виявити чимало цікавих нюансів, наприклад:
Таблиця показує статистику для твітів користувачів з рівнем Social Authority від 0 до 9, без зображень, без посилань і згадок, що містять 2 хештеги і від 0 до 40 символів тексту. Ми бачимо 1156 таких твітів без ретвітів і тільки 17 твітів з ретвітами.
Наш алгоритм показує, що з високою ймовірністю твіт з такими параметрами не отримає ретвітів, але цей прогноз буде неправильним для 1,4% випадків (17 з 1173). Нейронна мережа прогнозує ймовірність отримання ретвіту в 2,1%.
Я розрахував таблицю можливих випадків і виявив, що у нас було 102045 прикладів з можливістю помилки, або приблизно 10% від всієї навчальної вибірки. Це означає, що нейронна мережа буде робити вірні прогнози в кращому випадку для 90% ситуацій.
Крім того, я перевірив два додаткові набори даних (що містять 470к і 473к прикладів) через нейронну мережу, щоб оцінити точність показань TEP. В абсолютному прогнозі (так/ні) система опинилася права в 81% випадків. Враховуючи, що тут теж були присутні близько 10% прикладів з можливою помилкою, можна сказати, що результат досить непоганий! З цієї причини сервіс TEP додатково відображає ймовірність ретвіту у відсотках, замість звичайного прогнозу (так/ні).
Приклади алгоритмів, які може використовувати Google
Тепер, коли ми розібралися з основними способами машинного навчання, давайте перейдемо до другої частини статті і подивимося, для чого Google може використовувати ці методи:
Алгоритм Пінгвін
Одним з підходів до реалізації алгоритму Google Penguin може бути побудова зв'язків між посилальними характеристиками, які можуть бути потенційними індикаторами посилального спаму:
- Зовнішнє посилання розміщене в галузі футера;
- Зовнішнє посилання розміщене в сайдбарі;
- Посилання розміщене близько до слова «Реклама» (і/або подібним);
- Посилання розміщене близько до зображення, на якому написано слово «Реклама» (і/або подібним);
- Посилання розміщене в блоці з посиланнями, що мають низьку релевантність по відношенню один до одного;
- Анкор посилання не пов'язаний з контентом сторінки;
- Зовнішнє посилання розміщене в галузі навігації;
- Зовнішнє посилання не має окремого стилю (виділення кольором або підкресленням);
- Посилання розташоване на «поганому» типі сайту (заспамлений каталог; з країни, що не має відношення до сайту);
- … Інші фактори
Само собою, відповідність посилання лише одному з цих факторів не обов'язково робить її «поганою», але алгоритм може виявляти сайти, де значна частина зовнішніх посилань має зазначені властивості.
Викладений мною приклад демонструє систему навчання з учителем, де ви тренуєте алгоритм на підставі наявних у вас даних про погані і хороші посилання (сайти), виявлені за останні роки. Після навчання алгоритму з його допомогою можна перевіряти посилання для визначення їх «якості». Ґрунтуючись на процентному співвідношенні «поганих» посилань (і/або показнику PceRank), можна приймати рішення - знижувати рейтинг сайту в пошуку чи ні.
Інший підхід у вирішенні цього завдання передбачає використання бази хороших і поганих посилань, де алгоритм сам визначає їхні характеристики. При такому підході алгоритм напевно виявить додаткові фактори, які не помічають люди.
Алгоритм Панда
Після того, як ми розглянули потенційні можливості алгоритму Пінгвін, ситуація трохи прояснилася. Тепер уявімо можливості алгоритму оцінки якості контенту.
- Малий обсяг контенту порівняно зі сторінками конкурентів;
- Недостатньо широке використання синонімів у тексті;
- Зловживання ключовими словами на сторінці;
- Великі блоки тексту внизу сторінки;
- Безліч посилань на не пов'язані за змістом сторінки;
- Сторінки зі скопійованим з інших сайтів змістом;
- … Інші фактори
Для цього завдання можна навчити алгоритм на підставі прикладів хороших сайтів, щоб виділити їх якісні характеристики.
Як і у випадку з Пінгвіном вище, я ні в якому разі не стверджую, що конкретно ці пункти використовуються в алгоритмі Панда - вони лише демонструють загальну концепцію, як все це може працювати.
Як машинне навчання впливає на SEO
Ключ до розуміння ступеня впливу машинного навчання на SEO лежить у питанні, навіщо Google (та інші пошукові системи) використовує ці методи. Важливо те, що існує сильна кореляція між якістю результатів органічної видачі і доходом Google від контекстної реклами.
Ще в 2009 році Bing і Google проводили ряд експериментів, які показали, що поява навіть невеликих затримок у результатах пошуку значно впливають на задоволеність користувачів. У свою чергу, менш задоволені користувачі менше клікали на рекламні оголошення, а пошукові системи отримували менший дохід:
Пояснюється все це дуже просто. У Google повно конкурентів, і це стосується не тільки пошуку Bing. Боротьба за аудиторію в інших (непоискових) сервісах також є формою конкуренції. Тут вже підключаються Facebook, Apple/Siri і Amazon. Існує безліч альтернативних джерел отримання та обміну інформацією, і вони кожен день працюють над тим, щоб стати краще. Тому і Google повинен.
Я вже припустив, що машинне навчання може використовуватися в алгоритмах Пінгвін і Панда, і це цілком може бути частиною глобального алгоритму оцінки «якості пошуку». Швидше за все, ви побачимо ще багато прикладів використання подібних алгоритмів у майбутньому.
Отже, що це означає?
Враховуючи, що підвищення задоволеності користувача має вирішальне значення для Google, нам варто розглядати цей показник як основний фактор ранжування для SEO. Вам потрібно навчитися вимірювати його і підвищувати показник з часом. Рекомендую поставити собі такі запитання:
- Чи відповідає контент вашої сторінки очікуванню більшості користувачів? Якщо користувач зацікавлений у вашому товарі, чи потрібна йому допомога у виборі? Чи потрібні йому поради щодо використання товару?
- Як щодо пов'язаних намірів? Якщо користувач прийшов до вас за конкретним продуктом, які супутні товари можуть його зацікавити?
- Чого не вистачає в контенті вашої сторінки?
- Чи виглядає ваша сторінка якісніше, ніж сторінки конкурентів?
- Як ви вимірюєте показники якості сторінок і чи поліпшуєте їх з часом?
У Google є безліч способів, за допомогою яких можна оцінити якість вашої сторінки і використовувати ці дані для зміни її рейтингу в результатах пошуку. Ось деякі з них:
- Як довго користувачі затримуються на сторінці сайту і наскільки цей показник відрізняється від конкурентів?
- Який рівень CTR мають сторінки вашого сайту порівняно з конкурентами?
- Чи багато користувачів приходить на ваш сайт за брендовими запитами?
- Якщо у вас є сторінки конкретного продукту, ви надаєте більш повну або коротку інформацію про нього порівняно з конкурентами?
- Якщо користувач повертається з вашого сайту до результатів пошуку, чи продовжує він переглядати інші сайти або вводить інший запит?
Ув'язнення
Машинне навчання стрімко поширюється. Перешкоди для навчання базових алгоритмів зникають. Всі основні компанії на ринку в тій чи іншій мірі використовують методи машинного навчання. Ось небагато інформації для чого машинне навчання використовує Facebook, а ось як активно вербує фахівців з машинного навчання Apple. Інші компанії надають платформи, щоб полегшити впровадження машинного навчання, наприклад, Microsoft і Amazon.
Людям, зайнятим в області SEO і digital-маркетингу, варто очікувати, що топові компанії будуть активно розвивати алгоритми для вирішення своїх завдань. Тому краще налаштовуватися на роботу відповідно до основних цілей лідерів ринку.
У випадку з SEO машинне навчання з часом буде підвищувати планку якості контенту і досвіду взаємодії користувачів. Саме час врахувати всі ці фактори в своїх стратегіях просування, щоб встигнути на борт стрімко рухається лайнера технологій.