Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Представьте, что вы разрабатываете рекомендательное приложение. Пользователи указывают в нем свои любимые блюда и получают варианты, которые могут им понравиться. Вам нужно создать модель машинного обучения, которая предсказывает сходство блюд, благодаря чему приложение сможет давать качественные рекомендации, например: "Вы любите оладьи, поэтому вам стоит попробовать блины".
Для обучения модели вы подбираете набор данных из 5000 популярных блюд, включая borscht, hot dog, salad, pizza и shawarma.
Рисунок 1. Некоторые блюда, включенные в набор данных.
Вы создаете признак meal с прямым кодированием каждого блюда в наборе данных.
Под кодированием понимается выбор исходного числового представления данных, на которых обучается модель.
Рисунок 2. Прямые коды для блюд borscht, hot dog и shawarma.
Каждый вектор с прямым кодом содержит 5000 чисел: одно число для каждого блюда в наборе данных. Многоточие на схеме означает остальные 4995 элементов, которые не показаны.
Проблемы с разреженными представлениями данных
У представления данных в виде прямых кодов есть ряд недостатков:
Количество весов. При большой длине входных векторов нейронной сети приходится работать с огромным числом весов.
Если в прямом коде M элементов и на первом слое сети после входного находится N узлов, модели придется подобрать M x N весов для этого слоя.
Количество элементов данных. Чем больше весов в модели, тем больше данных требуется для эффективного обучения.
Объем вычислений. Чем больше весов, тем больше вычислений требуется для обучения модели. В какой-то момент у вас может просто не хватить аппаратных ресурсов.
Объем памяти. Чем больше весов в модели, тем больше памяти требуется ускорителям, которые передают данные в модель и обучают ее. Вертикальное масштабирование в этой ситуации сопряжено со значительными сложностями.
Трудности с поддержкой локального машинного обучения (ODML).
Если вы планируете запускать модель машинного обучения на локальных устройствах, придется подумать, как сделать модель более компактной и сократить количество весов.
В этом модуле вы узнаете, как создавать эмбеддинги – низкоразмерные представления разреженных данных, которые позволяют обходить эти проблемы.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-05-20 UTC."],[[["This module explains how to create embeddings, which are lower-dimensional representations of sparse data that address the problems of large input vectors and lack of meaningful relations between vectors in one-hot encoding."],["One-hot encoding creates large input vectors, leading to a huge number of weights in a neural network, requiring more data, computation, and memory."],["One-hot encoding vectors lack meaningful relationships, failing to capture semantic similarities between items, like the example of hot dogs and shawarmas being more similar than hot dogs and salads."],["Embeddings offer a solution by providing dense vector representations that capture semantic relationships and reduce the dimensionality of data, improving efficiency and performance in machine learning models."],["This module assumes familiarity with introductory machine learning concepts like linear regression, categorical data, and neural networks."]]],[]]