Інформація про дані Платона.
Вертикальний пошук і штучний інтелект.

Створіть програму-рекомендатор новин за допомогою Amazon Personalize | Веб-сервіси Amazon

Дата:

З безліччю статей, відео, аудіозаписів та інших засобів масової інформації, які щодня створюють медіакомпанії, читачам будь-якого типу — окремим споживачам, корпоративним передплатникам тощо — часто важко знайти новинний вміст, який їм найбільше підходить. Надання персоналізованих новин і досвіду читачам може допомогти вирішити цю проблему та створити більш привабливий досвід. Однак надання справді персоналізованих рекомендацій пов’язане з кількома ключовими проблемами:

  • Захоплення різноманітних інтересів користувачів – Новини можуть охоплювати багато тем, і навіть у межах окремих тем читачі можуть мати різні інтереси.
  • Звернення до обмеженої історії читачів – Багато читачів новин мають мізерну історію активності. Рекомендатори повинні швидко вивчити вподобання на основі обмежених даних, щоб забезпечити цінність.
  • Актуальність і тренд – Щоденні цикли новин означають, що рекомендації повинні збалансувати персоналізований вміст із відкриттям нових популярних історій.
  • Зміна інтересів – Інтереси читачів можуть змінюватися з часом. Системи мають виявляти зміни та відповідно адаптувати рекомендації.
  • Пояснюваність – Забезпечення прозорості щодо того, чому певні історії рекомендовані, зміцнює довіру користувачів. Ідеальна система рекомендацій новин розуміє людину та реагує на ширший новинний клімат і аудиторію. Вирішення цих проблем є ключовим для ефективного зв’язку читачів із вмістом, який вони вважають інформативним і привабливим.

У цій публікації ми описуємо, як Амазонка персоналізувати може використовувати масштабовану програму рекомендації новин. Це рішення було впроваджено в медіа-клієнті зі списку Fortune 500 у першому півріччі 1 року, і його можна повторно використовувати для інших клієнтів, зацікавлених у створенні рекомендувачів новин.

Огляд рішення

Amazon Personalize чудово підходить для роботи механізму рекомендацій щодо новин, оскільки він здатний надавати персоналізовані рекомендації в режимі реального часу та масово. Amazon Personalize пропонує різноманітні рецепти (алгоритми) рекомендацій, як-от рецепти «Персоналізація користувача» та «Тенденційні зараз», які особливо підходять для навчання моделей рекомендувачів новин. Рецепт персоналізації користувача аналізує вподобання кожного користувача на основі його взаємодії з вмістом протягом певного часу. Це призводить до створення налаштованих каналів новин, які висвітлюють теми та джерела, найбільш релевантні для окремого користувача. Рецепт Trending Now доповнює це, виявляючи зростаючі тенденції та популярні новини в режимі реального часу для всіх користувачів. Поєднання рекомендацій з обох рецептів дозволяє механізму рекомендацій збалансувати персоналізацію та відкриття своєчасних, цікавих історій.

На наступній діаграмі показано архітектуру програми-рекомендатора новин на основі Amazon Personalize і підтримки служб AWS.

Це рішення має такі обмеження:

  • Надання персоналізованих рекомендацій для щойно опублікованих статей (статей, опублікованих кілька хвилин тому) може бути складним завданням. Далі в цій публікації ми опишемо, як пом’якшити це обмеження.
  • Amazon Personalize має фіксовану кількість взаємодій і функцій набору даних елементів, які можна використовувати для навчання моделі.
  • На момент написання Amazon Personalize не надає пояснень щодо рекомендацій на рівні користувача.

Давайте пройдемося по кожному з основних компонентів рішення.

Передумови

Щоб реалізувати це рішення, необхідно:

  • Історичні дані та дані про кліки користувачів у реальному часі для interactions набору даних
  • Метадані історичних статей і статей у реальному часі для items набору даних

Введіть і підготуйте дані

Щоб навчити модель в Amazon Personalize, вам потрібно надати навчальні дані. У цьому рішенні ви використовуєте два типи навчальних наборів даних Amazon Personalize: набір даних взаємодії та набір даних елементів, interactions набір даних містить дані про взаємодію користувач-елемент-мітка часу та items набір даних містить характеристики рекомендованих статей.

Ви можете скористатися двома різними підходами до отримання навчальних даних:

  • Пакетне завантаження – Можна використовувати Клей AWS перетворювати та приймати дані про взаємодії та елементи, що знаходяться в Служба простого зберігання Amazon (Amazon S3) включаються в набори даних Amazon Personalize. AWS Glue виконує операції вилучення, перетворення та завантаження (ETL), щоб узгодити дані зі схемою наборів даних Amazon Personalize. Після завершення процесу ETL вихідний файл поміщається назад в Amazon S3, готовий для введення в Amazon Personalize через завдання імпорту набору даних.
  • Завантаження в реальному часі – Можна використовувати Потоки даних Amazon Kinesis та AWS Lambda щоб поступово отримувати дані в реальному часі. Функція Lambda виконує ті самі операції перетворення даних, що й завдання пакетного надходження на рівні окремого запису, і надсилає дані в Amazon Personalize за допомогою PutEvents та PutItems API.

У цьому рішенні ви також можете завантажувати певні елементи та атрибути даних взаємодії Amazon DynamoDB. Ви можете використовувати ці атрибути під час висновків у реальному часі, щоб фільтрувати рекомендації за бізнес-правилами. Наприклад, метадані статті можуть містити назви компаній і галузей у статті. Щоб завчасно рекомендувати статті про компанії чи галузі, про які читають користувачі, ви можете зафіксувати, як часто читачі взаємодіють із статтями про конкретні компанії та галузі, і використовувати ці дані з Фільтри Amazon Personalize для подальшого адаптування рекомендованого вмісту. Ми обговоримо більше про те, як використовувати елементи та атрибути даних взаємодії в DynamoDB далі в цій публікації.

На наступній діаграмі показано архітектуру прийому даних.

Тренуйте модель

Основну частину зусиль щодо навчання моделі слід зосередити на моделі персоналізації користувача, оскільки вона може використовувати всі три набори даних Amazon Personalize (тоді як модель Trending Now використовує лише interactions набір даних). Ми рекомендуємо проводити експерименти, які систематично змінюють різні аспекти навчального процесу. Для клієнта, який реалізував це рішення, команда провела понад 30 експериментів. Це включало модифікацію interactions та items функції набору даних, коригування тривалості історії взаємодій, наданої моделі, налаштування гіперпараметрів Amazon Personalize та оцінка того, чи явний набір даних користувача покращив продуктивність офлайн (порівняно збільшення часу навчання).

Кожну варіацію моделі оцінювали на основі показників, наданих Amazon Personalize щодо даних навчання, а також користувальницьких офлайн-метрик у наборі даних тестування. Стандартні показники, які слід враховувати, включають середню середню точність (MAP) @ K (де K — кількість рекомендацій, представлених читачеві), нормалізований дисконтований кумулятивний приріст, середній взаємний ранг і охоплення. Додаткову інформацію про ці показники див Оцінка версії рішення за допомогою метрики. Ми рекомендуємо віддати перевагу MAP @ K з цих показників, які фіксують середню кількість статей, на які читач клацнув із K найкращих статей, рекомендованих їм, оскільки показник MAP є хорошим показником (реального) рейтингу кліків статті. K слід вибирати на основі кількості статей, які читач може переглянути на комп’ютері чи мобільній веб-сторінці без прокручування, що дозволяє оцінити ефективність рекомендацій із мінімальними зусиллями читача. Впровадження користувальницьких показників, таких як унікальність рекомендації (яка описує, наскільки унікальним був результат рекомендації для групи користувачів-кандидатів), також може дати розуміння ефективності рекомендації.

За допомогою Amazon Personalize експериментальний процес дозволяє визначити оптимальний набір функцій набору даних як для моделей User Personalization, так і для моделей Trending Now. Модель Trending Now існує в тому самому Amazon Personalize група наборів даних як і модель персоналізації користувача, тому вона використовує той самий набір interactions особливості набору даних.

Створюйте рекомендації в реальному часі

Коли читач відвідує веб-сторінку новинної компанії, виклик API буде здійснено до рекомендувача новин через API -шлюз Amazon. Це запускає функцію Lambda, яка викликає кінцеві точки моделей Amazon Personalize для отримання рекомендації в режимі реального часу. Під час умовиводу можна використовувати Фільтри щоб відфільтрувати вихідні вихідні рекомендації на основі статті або атрибутів взаємодії з читачем. Наприклад, якщо «Тема новин» (наприклад, спорт, спосіб життя або політика) є атрибутом статті, ви можете обмежити рекомендації певними темами новин, якщо це вимога продукту. Подібним чином ви можете використовувати фільтри для подій взаємодії читача, наприклад, виключати статті, які читач уже прочитав.

Однією з ключових проблем із рекомендаціями в реальному часі є ефективне включення щойно опублікованих статей (також званих холодними матеріалами) у вивід рекомендацій. Щойно опубліковані статті не містять жодних історичних даних про взаємодію, на які зазвичай покладаються рекомендувачі, і системам рекомендацій потрібен достатній час обробки, щоб оцінити, наскільки щойно опубліковані статті є релевантними для конкретного користувача (навіть якщо використовувати лише сигнали зв’язку між користувачем і елементом).

Amazon Personalize може нативно автоматично виявляти та рекомендувати нові статті, завантажені в items набір даних кожні 2 години. Однак, оскільки цей варіант використання зосереджений на рекомендаціях новин, вам потрібен спосіб рекомендувати нові статті, щойно вони опубліковані та готові до перегляду читачами.

Один зі способів вирішення цієї проблеми полягає в розробці механізму випадкового додавання щойно опублікованих статей у кінцевий результат рекомендації для кожного читача. Ви можете додати функцію, щоб контролювати, який відсоток статей у остаточному наборі рекомендацій були щойно опублікованими статтями, і, подібно до вихідних рекомендацій Amazon Personalize, ви можете фільтрувати щойно опубліковані статті за атрибутами статті (наприклад, «Тема новин» ), якщо це вимога до продукту. Ви можете відстежувати взаємодії з щойно опублікованими статтями в DynamoDB, коли вони починають надходити в систему, і визначати пріоритетність найпопулярніших щойно опублікованих статей під час постобробки рекомендацій, доки щойно опубліковані статті не будуть виявлені та оброблені моделями Amazon Personalize.

Після того, як ви отримаєте остаточний набір рекомендованих статей, цей результат надсилається до іншої функції постобробки Lambda, яка перевіряє результат, щоб перевірити, чи відповідає він попередньо визначеним бізнес-правилам. Це може включати перевірку відповідності рекомендованих статей специфікаціям макета веб-сторінки, наприклад, якщо рекомендації подаються у інтерфейсі веб-переглядача. За потреби статті можна змінити, щоб забезпечити дотримання бізнес-правил. Ми рекомендуємо змінити рейтинг, реалізувавши функцію, яка дозволяє статтям з вищим рейтингом опускатися лише на одне місце за раз, доки не будуть виконані всі бізнес-правила, забезпечуючи мінімальну втрату релевантності для читачів. Остаточний список постоброблених статей повертається до веб-служби, яка ініціювала запит на рекомендації.

Наступна діаграма ілюструє архітектуру для цього етапу рішення.

Створення пакетних рекомендацій

Персоналізовані інформаційні панелі новин (за допомогою рекомендацій у реальному часі) вимагають від читача активного пошуку новин, але в нашому сьогоднішньому насиченому житті іноді просто простіше отримати головні новини. Щоб надіслати персоналізовані новинні статті як дайджест електронної пошти, ви можете використовувати Функції кроку AWS робочий процес для створення групових рекомендацій. Пакетний робочий процес рекомендацій збирає та обробляє рекомендації з нашої моделі персоналізації користувача або кінцевих точок моделі Trending Now, надаючи гнучкість у виборі комбінації персоналізованих і популярних статей, які команди хочуть надати своїм читачам. Розробники також мають можливість використовувати Amazon Personalize пакетний висновок особливість; однак на момент написання статті створення завдання пакетного висновку Amazon Personalize не підтримує включення елементів, отриманих після навчання спеціальної моделі Amazon Personalize, і не підтримує рецепт Trending Now.

Під час робочого циклу крокових функцій пакетного висновку список читачів розділяється на пакети, обробляється паралельно та надсилається на рівень постобробки та перевірки перед тим, як надсилатися до служби створення електронної пошти. Наступна діаграма ілюструє цей робочий процес.

Масштабуйте систему рекомендацій

Для ефективного масштабування вам також потрібен рекомендувач новин, щоб пристосуватись до зростаючої кількості користувачів і збільшення трафіку без будь-якого погіршення досвіду читання. Amazon Персоналізуйте кінцеві точки моделі нативно автоматичний масштаб для задоволення збільшення трафіку. Інженерам потрібно лише встановити та контролювати змінну мінімальної кількості транзакцій за секунду (TPS) для кожної кінцевої точки Amazon Personalize.

Окрім Amazon Personalize, програма-рекомендатор новин, представлена ​​тут, створена з використанням безсерверних служб AWS, що дозволяє командам інженерів зосередитися на забезпеченні найкращого досвіду читання, не турбуючись про обслуговування інфраструктури.

Висновок

У цій економіці уваги стає все більш важливим надавати споживачам релевантний і своєчасний контент. У цій публікації ми обговорили, як можна використовувати Amazon Personalize для створення масштабованого рекомендувача новин, а також стратегії, які організації можуть застосувати, щоб вирішити унікальні проблеми доставки рекомендацій новин.

Щоб дізнатися більше про Amazon Personalize і як це може допомогти вашій організації створити системи рекомендацій, перегляньте Посібник розробника Amazon Personalize.

Щаслива будівля!


Про авторів

Бала Крішнамурті є старшим спеціалістом з обробки даних у AWS Professional Services, де він допомагає клієнтам створювати та розгортати рішення на основі ШІ для вирішення їхніх бізнес-завдань. Він працював із клієнтами в різних секторах, включаючи медіа та розваги, фінансові послуги, охорону здоров’я та технології. У вільний час він любить проводити час із сім’єю/друзями, бути активним, пробувати нові ресторани, подорожувати та починати свій день із чашки гарячої кави.

Ріші Джала є архітектором даних NoSQL з AWS Professional Services. Він зосереджується на архітектурі та розробці високомасштабованих програм з використанням баз даних NoSQL, таких як Amazon DynamoDB. Захоплений вирішенням проблем клієнтів, він надає індивідуальні рішення для досягнення успіху в цифровому середовищі.

spot_img

Остання розвідка

spot_img

Зв'яжіться з нами!

Привіт! Чим я можу вам допомогти?