Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Представьте, что вы разрабатываете приложение с рекомендациями по питанию, в которое пользователи вводят свои любимые блюда, а приложение предлагает похожие блюда, которые им могут понравиться. Вы хотите разработать модель машинного обучения (ML), которая сможет предсказывать сходство продуктов питания, чтобы ваше приложение могло давать высококачественные рекомендации («Поскольку вы любите блины, мы рекомендуем блины»).
Чтобы обучить свою модель, вы собираете набор данных из 5000 популярных блюд, включая борщ , хот-дог , салат , пиццу и шаурму .
Рисунок 1. Выборка продуктов питания, включенных в набор данных о пищевых продуктах.
Вы создаете объект meal , который содержит представление каждого блюда в наборе данных в горячем коде .
Рисунок 2. One-hot кодировки борща, хот-дога и шаурмы. Каждый вектор горячего кодирования имеет длину 5000 (одна запись для каждого пункта меню в наборе данных). Многоточием на диаграмме обозначены 4995 записей, которые не показаны.
Подводные камни разреженных представлений данных
Просматривая эти горячие кодировки, вы замечаете две ключевые проблемы с таким представлением данных.
Количество весов. Большие входные векторы означают огромное количество весов для нейронной сети . С M записями в вашей горячей кодировке и N узлами в первом слое сети после ввода модель должна обучить веса MxN для этого слоя. Большое количество весов вызывает дополнительные проблемы:
Количество точек данных. Чем больше весов в вашей модели, тем больше данных вам нужно для эффективного обучения.
Объем вычислений. Чем больше весов, тем больше вычислений требуется для обучения и использования модели. Превысить возможности вашего оборудования легко.
Объем памяти. Чем больше весов в вашей модели, тем больше памяти требуется ускорителям, которые ее обучают и обслуживают. Эффективно масштабировать это очень сложно.
Сложность поддержки машинного обучения на устройстве (ODML) . Если вы надеетесь запустить свою модель машинного обучения на локальных устройствах (а не обслуживать их), вам нужно будет сосредоточиться на уменьшении размеров вашей модели и уменьшении количества весов.
Отсутствие значимых связей между векторами . Векторные значения в горячих кодировках продуктов питания не предоставляют никакой значимой информации о сходстве продуктов питания. Математически индекс 1 («хот-дог») ближе к индексу 2 («салат»), чем к индексу 4999 («шаурма»), хотя хот-дог больше похож на шаурму (оба содержат мясо и хлеб), чем на салат. .
В этом модуле вы узнаете, как создавать внедрения — низкоразмерные представления разреженных данных, которые решают обе эти проблемы.
[[["Прост для понимания","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"]],["Последнее обновление: 2024-11-04 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."]]],[]]