Системи рекомендацій є однією з найбільш поширених технологій машинного навчання (ML) у реальних додатках, починаючи від соціальних мереж і закінчуючи платформами електронної комерції. Користувачі багатьох онлайн-систем покладаються на системи рекомендацій, щоб заводити нових друзів, відкривати нову музику відповідно до запропонованих музичних списків або навіть приймати рішення про покупку в електронній комерції на основі рекомендованих продуктів. У соціальних мережах поширеним випадком використання є рекомендація нових друзів користувачеві на основі інших зв’язків користувачів. Користувачі зі спільними друзями ймовірно знають один одного. Таким чином, вони повинні мати вищу оцінку, яку може запропонувати система рекомендацій, якщо вони ще не підключені.
Соціальні мережі природно можна виразити на графіку, де вузли представляють людей, а зв’язки між людьми, такі як дружба чи колеги, представлені ребрами. Нижче наведено приклад однієї з таких соціальних мереж. Уявімо, що у нас є соціальна мережа з членами (вузлами) Біллом, Террі, Генрі, Гарі та Алістером. Їхні стосунки представлені посиланням (краєм), а інтереси кожної людини, такі як спорт, мистецтво, ігри та комікси, представлені властивостями вузла.
Мета тут полягає в тому, щоб передбачити, чи існує потенційно відсутня ланка між членами. Наприклад, чи варто рекомендувати зв’язок між Генрі та Террі? Дивлячись на графік, ми бачимо, що у них є двоє спільних друзів, Гері та Алістер. Тому є велика ймовірність, що Генрі і Террі або вже знали один одного, або можуть познайомитися незабаром. Як щодо Генрі та Білла? У них немає спільних друзів, але вони мають слабкі зв’язки через зв’язки своїх друзів. Крім того, вони обидва мають схожі інтереси до мистецтва, коміксів та ігор. Чи повинні ми сприяти цьому зв’язку? Усі ці питання та інтуїція є основою логіки систем рекомендацій соціальних мереж.
Один із можливих способів зробити це — рекомендувати зв’язки на основі дослідження графів. У мовах графових запитів, таких як Apache TinkerPop Gremlin, реалізація наборів правил, таких як підрахунок спільних друзів, відносно проста, і її можна використовувати для визначення зв’язку між Генрі та Террі. Однак ці набори правил будуть дуже складними, якщо ми хочемо врахувати інші атрибути, такі як властивості вузла, міцність з’єднання тощо. Уявімо набір правил для визначення зв’язку між Генрі та Біллом. Цей набір правил повинен враховувати їхні спільні інтереси та їхні слабкі зв’язки через певні шляхи в графі. Щоб підвищити надійність, нам також може знадобитися додати коефіцієнт відстані, щоб надавати перевагу сильним зв’язкам і покарати слабкі. Так само ми хотіли б, щоб фактор сприяв спільним інтересам. Незабаром набори правил, які можуть виявити складні приховані закономірності, стане неможливим для перерахування.
Технологія ML дозволяє нам виявляти приховані закономірності шляхом вивчення алгоритмів. Одним із прикладів є XGBoost, який широко використовується для завдань класифікації або регресії. Однак такі алгоритми, як XGBoost, використовують звичайний підхід ML на основі табличного формату даних. Ці підходи не оптимізовані для графових структур даних і вимагають складної розробки функцій, щоб впоратися з цими шаблонами даних.
У попередньому прикладі соціальної мережі інформація про взаємодію на графіку має вирішальне значення для підвищення точності рекомендацій. Graph Neural Network (GNN) — це фреймворк глибокого навчання (DL), який можна застосувати до даних графів для виконання завдань прогнозування на рівні ребер, вузлів або на рівні графіків. GNN можуть використовувати характеристики окремих вузлів, а також інформацію про структуру графа під час вивчення представлення графа та базових шаблонів. Таким чином, в останні роки методи на основі GNN встановили нові стандарти для багатьох тестів системи рекомендацій. Дивіться більш детальну інформацію в останніх дослідницьких роботах: Комплексне дослідження графових нейронних мереж та Системи рекомендацій на основі графічного навчання: огляд.
Нижче наведено один відомий приклад такого використання. Дослідники та інженери Pinterest пройшли навчання Графік згорткових нейронних мереж для рекомендованих систем веб-масштабу, який називається PinSage, з трьома мільярдами вузлів, що представляють шпильки та дошки, і 18 мільярдами країв. PinSage створює високоякісні вбудовування, які представляють шпильки (візуальні закладки для онлайн-вмісту). Вони можуть бути використані для широкого спектру завдань рекомендації нижче за течією, наприклад пошуку найближчих сусідів у вивченому просторі вбудовування для виявлення вмісту та рекомендацій.
У цій публікації ми розповімо вам, як використовувати GNN для випадків використання рекомендацій, розглядаючи це як проблему передбачення посилань. Ми також покажемо, як Neptune ML може полегшити впровадження. Ми також забезпечимо зразок коду на GitHub щоб навчити ваш перший GNN з Neptune ML і зробити висновки щодо рекомендацій на демонстраційному графіку за допомогою завдань прогнозування посилань.
Прогнозування зв’язків із нейронними мережами Graph
Розглядаючи попередній приклад із соціальною мережею, ми хотіли б порекомендувати Генрі нових друзів. І Террі, і Білл були б хорошими кандидатами. Террі має більше спільних друзів (Гері, Алістер) з Генрі, але немає спільних інтересів. У той час як Білл має спільні інтереси (мистецтво, комікси, ігри) з Генрі, але немає спільних друзів. Що буде кращою рекомендацією? Якщо це завдання сформульоване як задача прогнозування зв’язку, це присвоєння оцінки будь-якому можливому зв’язку між двома вузлами. Чим вищий показник посилання, тим більша ймовірність, що ця рекомендація зійдеться. Вивчаючи структури посилань, які вже присутні на графі, модель передбачення посилань може узагальнювати нові передбачення посилань, які «завершують» граф.
Параметри функції f
який передбачає оцінку посилання, вивчається на етапі навчання. Оскільки функція f
робить прогноз для будь-яких двох вузлів на графі, вектори ознак, пов’язані з вузлами, важливі для процесу навчання. Щоб передбачити оцінку зв’язку між Генрі та Біллом, у нас є набір необроблених даних (мистецтво, комікси, ігри), які можуть представляти Генрі та Білла. Ми перетворюємо це разом із зв’язками в графі, використовуючи мережу GNN для формування нових представлень, відомих як вбудовування вузлів. Ми також можемо доповнити або замінити початкові необроблені функції векторами з таблиці пошуку вбудовування, яку можна вивчити під час процесу навчання. В ідеалі вбудовані функції для Генрі та Білла повинні представляти їхні інтереси, а також їхню топологічну інформацію з графа.
Як працюють GNN
GNN перетворює початкові функції вузла на вбудовані вузли за допомогою техніки, що називається передача повідомлень. Процес передачі повідомлення показано на наступному малюнку. На початку атрибути вузла або функції перетворюються на числові атрибути. У нашому випадку ми робимо одноразове кодування категоріальних ознак (інтереси Генрі: мистецтво, комікси, ігри). Потім перший рівень GNN об’єднує всі необроблені функції сусідів (Гері та Алістера) (чорним), щоб сформувати новий набір функцій (жовтим). Загальним підходом є лінійне перетворення всіх сусідніх ознак, потім агрегування їх через нормалізовану суму та передача результатів у нелінійну функцію активації, таку як ReLU, для створення нового векторного набору. На наступному малюнку показано, як працює передача повідомлень для вузла Генрі. H, алгоритм передачі повідомлень GNN, обчислить представлення для всіх вузлів графа. Пізніше вони використовуються як вхідні елементи для другого шару.
Другий шар GNN повторює той самий процес. Він приймає попередньо обчислену функцію (жовтим кольором) з першого шару як вхідні дані, агрегує всі нові вбудовані функції сусідів Гарі та Алістера та генерує вектори ознак другого рівня для Генрі (помаранчевим кольором). Як ви бачите, повторивши механізм передачі повідомлень, ми розширили агрегацію функцій до сусідів із двома переходами. На нашій ілюстрації ми обмежуємося сусідами з 2 переходами, але розширення до сусідів з 2 переходами можна зробити таким же чином, додавши ще один рівень GNN.
Остаточні вставки від Генрі та Білла (оранжевими) використовуються для обчислення оцінки. Під час процесу навчання оцінка зв’язку визначається як 1, коли межа існує між двома вузлами (позитивна вибірка), і як 0, коли межі між двома вузлами не існує (негативна вибірка). Потім помилка або втрата між фактичним рахунком і прогнозом f(e1,e2)
повертається на попередні шари для коригування вагових коефіцієнтів. Після завершення навчання ми можемо покладатися на вектори вбудованих функцій для кожного вузла, щоб обчислити їхні оцінки зв’язку за допомогою нашої функції f
.
У цьому прикладі ми спростили навчальне завдання на a однорідний граф, де всі вузли та ребра одного типу. Наприклад, усі вузли на графіку мають тип «Люди», а всі ребра — тип «друзі». Однак алгоритм навчання також підтримує різнорідні графи з різними типами вузлів і ребер. Ми можемо розширити попередній варіант використання, щоб рекомендувати продукти різним користувачам, які мають подібні взаємодії та інтереси. Дивіться більше деталей у цій дослідницькій роботі: Моделювання реляційних даних за допомогою графових згорткових мереж.
На AWS re:Invent 2020 ми представили Amazon Neptune ML, що дозволяє нашим клієнтам тренувати моделі машинного навчання на даних графіків, не обов’язково маючи глибокі знання в ML. У цьому прикладі за допомогою Neptune ML ми покажемо вам, як створити власну систему рекомендацій на основі даних графіка.
Навчіть свою мережу згортки графіків за допомогою Amazon Neptune ML
Neptune ML використовує технологію графової нейронної мережі для автоматичного створення, навчання та розгортання моделей ML на ваших графічних даних. Neptune ML підтримує загальні завдання прогнозування графів, такі як класифікація та регресія вузлів, класифікація та регресія країв, а також прогнозування зв’язків.
Він живиться від:
- Амазонка Нептун: швидка, надійна та повністю керована графічна база даних, яка оптимізована для зберігання мільярдів зв’язків і запитів до графіка з мілісекундною затримкою. Amazon Neptune підтримує три відкриті стандарти для створення графічних програм: Apache TinkerPop Gremlin, RDF SPARQL і openCypher. Дізнайтесь більше на Огляд функцій Amazon Neptune.
- Amazon SageMaker: повністю керований сервіс, який надає кожному розробнику та спеціалісту з обробки даних можливість швидко готувати створення, навчання та розгортання моделей ML.
- Бібліотека глибоких графів (DGL): a з відкритим вихідним кодом, високопродуктивний і масштабований пакет Python для DL на графіках. Він забезпечує швидкі та ефективні примітиви передачі повідомлень для навчання графових нейронних мереж. Neptune ML використовує DGL для автоматичного вибору та навчання найкращої моделі ML для вашого робочого навантаження. Це дає змогу робити прогнози на основі ML на даних графіка за години замість тижнів.
Найпростіший спосіб розпочати роботу з Neptune ML — скористатися Шаблон швидкого запуску AWS CloudFormation. Шаблон встановлює всі необхідні компоненти, включаючи кластер Neptune DB, і налаштовує мережеві конфігурації, ролі IAM і пов’язаний екземпляр блокнота SageMaker із попередньо заповненими зразками блокнотів для Neptune ML.
На наступному малюнку показано різні кроки Neptune ML для навчання системи рекомендацій на основі GNN. Давайте збільшимо кожен крок і дослідимо, що він включає:
-
Конфігурація експорту даних
Першим кроком у нашому процесі Neptune ML є експорт даних графіка з кластера Neptune. Ми повинні вказати параметри та конфігурацію моделі для завдання експорту даних. Ми використовуємо верстак Neptune для всіх конфігурацій і похвал. Workbench дає нам змогу працювати з кластером Neptune DB за допомогою записних книжок Jupyter, розміщених на Amazon SageMaker. Крім того, він надає ряд чарівних команд у блокнотах, які економлять багато часу та зусиль. Ось наш приклад параметрів експорту:
In export_params
, ми повинні налаштувати базові налаштування, такі як кластер Neptune і вихід Amazon Simple Storage Service (S3) шлях для зберігання експортованих даних. Конфігурація, зазначена в additionalParams
це тип завдання ML для виконання. У цьому прикладі передбачення посилання необов’язково використовується для передбачення певного типу краю (Користувач—ДРУГ—Користувач). Якщо тип цілі не вказано, Neptune ML припускатиме, що завданням є прогнозування зв’язку. Параметри також визначають деталі даних, що зберігаються на нашому графіку, і те, як модель ML інтерпретуватиме ці дані (ми маємо «Користувач» як вузол, а «інтереси» як властивість вузла).
Щоб запускати кожен крок у процесі створення ML, просто використовуйте команди Neptune workbench. The Верстак Нептун містить чарівну лінію та чарівну клітинку, які можуть заощадити вам багато часу на виконання цих кроків. Щоб запустити експорт даних, використовуйте команду Neptune workbench: %neptune_ml export start
Після завершення завдання експорту ми експортуємо графік Neptune у формат CSV і збережемо у відрі S3. Буде два типи файлів: nodes.csv
та edges.csv
. Файл з назвою training-data-configuration.json
також буде згенеровано конфігурацію, необхідну для Neptune ML для виконання навчання моделі.
Читати Експорт даних із Neptune для Neptune ML для отримання додаткової інформації.
-
Попередня обробка даних
Neptune ML виконує вилучення ознак і кодування як частину етапів обробки даних. Поширені типи попередньої обробки властивостей включають: кодування категоріальних ознак за допомогою одноразового кодування, групування числових функцій або використання word2vec для кодування властивості рядка чи інших значень властивостей тексту довільної форми.
У нашому прикладі ми просто використаємо властивість «інтереси». Neptune ML кодує значення як багатокатегорійні. Однак, якщо категоріальне значення є складним (більше трьох слів на вузол), тоді Neptune ML виводить, що типом властивості є текст, і використовує кодування text_word2vec.
Щоб запустити попередню обробку даних, скористайтеся наступною командою Neptune notebook magic: %neptune_ml dataprocessing start
Наприкінці цього кроку з експортованого набору даних створюється графік DGL для використання на етапі навчання моделі. Neptune ML автоматично налаштовує модель за допомогою завдань налаштування оптимізації гіперпараметрів, визначених у training-data-configuration.json
. Ми можемо завантажити та змінити цей файл, щоб налаштувати гіперпараметри моделі, такі як розмір партії, кількість прихованих, кількість епох, вилучення тощо. Ось зразок файлу configuration.json.
Читати Обробка даних графіка, експортованих з Neptune для навчання для отримання додаткової інформації.
-
Модельний тренінг
Наступний крок – автоматизоване навчання моделі GNN. Модельне навчання проходить у два етапи. На першому етапі використовується завдання обробки SageMaker для створення стратегії навчання моделі. Це набір конфігурацій, який визначає, який тип моделі та діапазони гіперпараметрів моделі використовуватимуться для навчання моделі.
Потім буде запущено завдання налаштування гіперпараметрів SageMaker. The Завдання оптимізації налаштування гіперпараметрів SageMaker запускає заздалегідь визначену кількість випробувань робочих завдань навчання моделі на оброблених даних, пробує різні комбінації гіперпараметрів відповідно до model-hpo-configuration.json
і зберігає артефакти моделі, створені під час навчання, у вихідному місці Amazon S3.
Щоб розпочати навчальний крок, ви можете скористатися %neptune_ml training start
команда
Після завершення всіх завдань навчання завдання налаштування гіперпараметрів збереже артефакти з найефективнішої моделі, які використовуватимуться для висновку.
Наприкінці навчання Neptune ML накаже SageMaker зберегти навчену модель, необроблені вбудовування, розраховані для вузлів і ребер, а також інформацію про відображення між вбудовуваннями та індексами вузлів.
Читати Навчання моделі за допомогою Neptune ML для отримання додаткової інформації.
-
Створіть кінцеву точку висновку в Amazon SageMaker
Тепер, коли графічне подання вивчено, ми можемо розгорнути вивчену модель за кінцевою точкою для виконання запитів висновку. Вхідними даними моделі буде користувач, для якого нам потрібно створити рекомендації друзів разом із типом краю, а виходом буде список ймовірно рекомендованих друзів для цього користувача.
Щоб розгорнути модель в екземплярі кінцевої точки SageMaker, використовуйте %neptune_ml endpoint create
команда
-
Запитуйте модель ML за допомогою Gremlin
Коли кінцева точка буде готова, ми можемо використовувати її для запитів на висновок графа. Neptune ML підтримує запити виведення графів у Gremlin або SPARQL. У нашому прикладі тепер ми можемо перевірити рекомендації друзів за допомогою Neptune ML користувача «Henry». Він вимагає майже такого самого синтаксису, щоб пройти край, і він містить список інших користувачів, які підключені до Генрі через з’єднання FRIEND.
Neptune#ml.prediction
повертає зв’язок, визначений передбаченнями Neptune ML за допомогою моделі, яку ми щойно навчили на соціальному графіку. Рахунок повернуто саме так, як ми очікували.
Ось ще один зразок прогнозованого запиту, який використовується для прогнозування восьми найпопулярніших користувачів, які найімовірніше зв’яжуться з Генрі:
Результати ранжуються від сильнішого зв’язку до слабшого, де зв’язок Henry — FRIEND — Colin and Henry — FRIEND — Terry
також пропонується. Ця пропозиція ґрунтується на ML на основі графів, де можна досліджувати складні схеми взаємодії на графі.
Читати Запити на висновок Gremlin у Neptune ML для отримання додаткової інформації.
Перетворення моделі або перенавчання при зміні даних графіка
Ще одне запитання, яке ви можете поставити: що робити, якщо моя соціальна мережа зміниться або якщо я захочу надати рекомендації для нових користувачів? У цих сценаріях, коли у вас постійно змінюються графіки, вам може знадобитися оновити передбачення ML за допомогою найновіших даних графіка. Згенеровані артефакти моделі після навчання безпосередньо прив’язуються до графіка навчання. Це означає, що кінцева точка висновку повинна бути оновлена, коли зміниться сутність у початковому навчальному графі.
Однак вам не потрібно перенавчати всю модель, щоб робити прогнози на оновленому графіку. За допомогою робочого процесу інкрементального висновку моделі вам потрібно лише експортувати дані Neptune DB, виконати інкрементну попередню обробку даних, запустити завдання пакетного перетворення моделі, а потім оновити кінцеву точку висновку. Крок перетворення моделі бере навчену модель з основного робочого циклу та результати інкрементального етапу попередньої обробки даних як вхідні дані. Потім він виводить новий артефакт моделі для використання для висновку. Цей новий артефакт моделі створено з актуальних даних графіка.
Особлива увага приділяється команді кроку перетворення моделі. Він може обчислювати артефакти моделі на даних графіка, які не використовувалися для навчання моделі. Вбудовані вузли обчислюються повторно, і будь-які існуючі вбудовані вузли перевизначаються. Neptune ML застосовує навчений кодер GNN з попередньої навченої моделі до нових вузлів даних графа з їх новими функціями. Таким чином, дані нового графіка повинні оброблятися з використанням тих самих кодувань функцій, і вони повинні відповідати тій самій схемі графіка, що й вихідні дані графіка. Додаткові відомості про впровадження Neptune ML див Створення нових артефактів моделі.
Крім того, ви можете перенавчити всю модель, якщо графік різко зміниться або якщо попередньо навчена модель більше не може точно відображати основні взаємодії. У цьому випадку повторне використання вивчених параметрів моделі на новому графіку не може гарантувати подібну продуктивність моделі. Ви повинні перенавчити свою модель на новому графіку. Щоб прискорити пошук гіперпараметрів, Neptune ML може використати інформацію з попереднього завдання навчання моделі з теплим запуском: результати попередніх завдань навчання використовуються для вибору хороших комбінацій гіперпараметрів для пошуку в новому завданні налаштування.
Читати робочі процеси для обробки змінних даних графіка для більш докладної інформації.
Висновок
У цій публікації ви побачили, як Neptune ML і GNN можуть допомогти вам давати рекомендації щодо даних графіка за допомогою завдання прогнозування зв’язку шляхом поєднання інформації зі складних шаблонів взаємодії на графіку.
Прогнозування зв’язків є одним із способів реалізації системи рекомендацій на графі. Ви можете створити свій рекомендувач багатьма іншими способами. Ви можете використовувати вбудовування, отримані під час навчання прогнозування зв’язків, щоб групувати вузли в різні сегменти без нагляду та рекомендувати елементи тому, що належить до того самого сегменту. Крім того, ви можете отримати вбудовування та передати їх у подальшу систему рекомендацій на основі схожості як вхідну функцію. Тепер ця додаткова функція введення також кодує семантичну інформацію, отриману з графа, і може значно підвищити загальну точність системи. Дізнайтеся більше про Amazon Neptune ML, відвідавши сайт або не соромтеся задавати запитання в коментарях!
Про авторів
Янвей Цуй, PhD, є спеціалістом з машинного навчання архітектором рішень у AWS. Він почав дослідження машинного навчання в IRISA (Дослідницький інститут комп’ютерних наук і випадкових систем) і має кілька років досвіду створення промислових додатків на основі штучного інтелекту для комп’ютерного зору, обробки природної мови та прогнозування поведінки користувачів в Інтернеті. У AWS він ділиться досвідом у галузі та допомагає клієнтам розкрити бізнес-потенціал та досягти практичних результатів за допомогою машинного навчання в масштабі. Поза роботою любить читати та подорожувати.
Вілл Бадр є головним спеціалістом зі штучного інтелекту/ML SA, який працює в глобальній команді Amazon Machine Learning. Вілл із захопленням використовує технології інноваційними способами для позитивного впливу на суспільство. У вільний час він любить займатися дайвінгом, грати у футбол і досліджувати острови Тихого океану.
- '
- "
- 100
- 2020
- 7
- МЕНЮ
- За
- рахунки
- доповнення
- Додатковий
- алгоритм
- алгоритми
- ВСІ
- вже
- Amazon
- Амазонське машинне навчання
- Amazon SageMaker
- Apache
- застосування
- штучний
- штучний інтелект
- мистецтва
- Автоматизований
- AWS
- AWS re:Invent
- початок
- КРАЩЕ
- Білл
- Мільярд
- Black
- будувати
- Створюємо
- бізнес
- випадків
- проблеми
- класифікація
- код
- загальний
- співтовариство
- комплекс
- обчислення
- Інформатика
- Комп'ютерне бачення
- обчислення
- конфігурація
- зв'язку
- Зв'язки
- Консоль
- зміст
- сходяться
- може
- Клієнти
- дані
- вчений даних
- зберігання даних
- Database
- угода
- глибоке навчання
- Розробник
- різний
- відкриття
- відстань
- електронної комерції
- край
- Кінцева точка
- Машинобудування
- Інженери
- і т.д.
- приклад
- досвід
- дослідження
- експорт
- видобуток
- ШВИДКО
- особливість
- риси
- Рисунок
- Перший
- Сфокусувати
- форма
- формат
- Рамки
- Безкоштовна
- Дружба
- функція
- Games
- породжувати
- Глобальний
- добре
- графік нейронних мереж
- великий
- Обробка
- допомога
- допомагає
- тут
- Як
- How To
- HTTPS
- IAM
- Impact
- реалізації
- поліпшення
- У тому числі
- Augmenter
- індивідуальний
- промислові
- інформація
- інноваційний
- Інтелект
- взаємодія
- інтереси
- IT
- робота
- Джобс
- мова
- мови
- УЧИТЬСЯ
- вчений
- вивчення
- Важіль
- бібліотека
- Лінія
- LINK
- список
- списки
- розташування
- шукати
- пошук
- навчання за допомогою машини
- члени
- мілісекунда
- ML
- модель
- музика
- Природна мова
- Обробка природних мов
- необхідний
- сусіди
- мережу
- мереж
- Нейронний
- нейронної мережі
- нейронні мережі
- Нові можливості
- вузли
- ноутбуки
- онлайн
- відкрити
- Інше
- Тихий океан
- Папір
- Люди
- продуктивність
- фаза
- Платформи
- Play
- Точність
- прогноз
- Прогнози
- представити
- Головний
- Проблема
- процес
- Продукти
- профіль
- сприяти
- власність
- пропонувати
- забезпечувати
- забезпечує
- покупка
- Python
- питання
- діапазон
- Сировина
- необроблені дані
- RE
- читання
- регресія
- Відносини
- замінювати
- дослідження
- результати
- перепідготовка
- Умови повернення
- прогін
- мудрець
- шкала
- наука
- Пошук
- комплект
- Поділитись
- акції
- аналогічний
- простий
- невеликий
- Футбол
- соціальна
- соціальний графік
- соціальна мережа
- соціальні мережі
- Рішення
- Простір
- SPORTS
- Стажування
- стандартів
- старт
- почалася
- зберігання
- магазинів
- Стратегія
- доповнювати
- Опори
- Огляд
- система
- Systems
- Мета
- Технології
- Технологія
- Графік
- через
- час
- топ
- Навчання
- Перетворення
- Перетворення
- Оновити
- us
- користувачі
- значення
- бачення
- Що
- ВООЗ
- широко
- Вікіпедія
- без
- слова
- Work
- робочий
- працює
- б
- років
- зум