Введение

Продукт Намасте Uppy собирает анонимную информацию о симптомах пациентов, побочных эффектах и ​​желаемых эффектах от приема лекарственного каннабиса. При анализе собранных данных оказывается, что некоторые точки данных отсутствуют. В литературе по машинному обучению такие отсутствующие точки данных называются элементом отсутствие ответов. Они случаются, когда человек предоставляет неполную информацию о своем опыте. Опыт состоит из трех этапов:

  1. Пациент дает свои симптомы и желаемые эффекты.
  2. Пациент выпивает свою дозу каннабиса.
  3. Через 20 минут докладывают о сеансе.

Неполная информация может возникнуть при пропуске третьего шага, т.е. когда пациент забывает дать обратную связь. Чтобы делать более точные прогнозы, наши алгоритмы должны делать обоснованные предположения о том, какими могут быть пропущенные значения, на основе данных, которые у нас есть от всех респондентов и штаммов. В этой статье объясняются несколько подходов к решению этой проблемы.

Проблема

Все данные, связанные с опытом употребления каннабиса, можно описать в виде матрицы. Строки — это штаммы, а столбцы — это свойства из сообщаемого опыта.

В Uppy опыт можно классифицировать по 14 эффектам, 12 побочным эффектам и 21 симптому для лечения. В матрице присутствует 47 столбцов:

  • Симптомы: тревога, судороги, чрезмерный аппетит, головокружение, головокружение, возбуждение/раздражительность, судороги, спастичность, глазное давление, судороги, воспаление, мышечные спазмы, тошнота, утомляемость, боль, бессонница, депрессия, стресс, головные боли, отсутствие аппетита, импульсивность.
  • Эффекты: расслабленный, мечтательный, кайфовый, сосредоточенный, сонный, приподнятый, творческий, голодный, хихикающий, возбужденный, разговорчивый, энергичный, покалывающий, счастливый.
  • Побочные эффекты: сухость глаз, затуманенность, рассеянность, тревога, головокружение, сухость во рту, глупость, головная боль, отсутствие мотивации, паранойя, красные глаза.

Каждый штамм описывается несколькими известными характеристиками, такими как его категория (гибрид, индика или сатива), его вкус (сладкий, цитрусовый и т. д.) и его химические свойства (ТГК, КБД). Наш рекомендательный движок насчитывает более 2400 штаммов.

Эта матрица называется матрицей «полезности». В этой матрице все значения положительные и находятся в диапазоне от 0 до 100. Значение 0 означает, что ни один отчет не показывает, что конкретный штамм помог достичь желаемого состояния. Значение 100 означает, что все пользователи сообщили о положительном эффекте.

Некоторые ячейки в матрице не заполнены значениями; это пункты неответов.

Цель этой статьи — показать, как мы заполняем пустые ячейки в матрице опыта потребления, чтобы дать более точные рекомендации для клиентов с конкретными целями лечения и сделать обоснованное предположение о том, как штамм потенциально может повлиять на эффекты, побочные эффекты и симптомы.

Подход 1 — Агрегированное значение из значений матрицы полезности

Поскольку значения в матрице полезности лежат в диапазоне от 0 до 100, самый простой способ восполнить недостающие значения — вычислить агрегированное значение из строк или столбцов:

  1. Среднее значение по строкам или столбцам (среднее)
  2. Среднее значение по строкам или столбцам (медиана)
  3. Наиболее часто встречающееся число в строках или столбцах (режим)

Идея этого метода состоит в том, чтобы найти одно значение, которое представляет полный набор зарегистрированных событий. Агрегация по столбцам означает, что мы пытаемся предсказать незарегистрированный опыт как интегральное значение по зарегистрированному опыту для конкретного штамма. Агрегирование по строкам означает, что учитывается полный набор штаммов с отчетами. Этот подход помог нам включить штаммы, о которых не сообщалось, в список рекомендаций сразу после их появления. Однако качество рекомендаций не так хорошо из-за ошибок в оценке опыта.

Подход 2 — метод на основе k ближайших соседей

Алгоритм k-ближайших соседей (KNN) — это контролируемый алгоритм машинного обучения, который можно использовать для решения задач регрессии. KNN работает, находя расстояния между неответом элемента и всеми примерами в данных, выбирая указанное количество примеров K рядом с неответом элемента, а затем усредняя метки. Для усреднения меток доступно несколько методов: евклидов, манхэттенский или метод Минковского.

Алгоритм прост для понимания. Однако появляется несколько минусов:

  1. При добавлении в матрицу полезности совершенно новых штаммов заполнение невозможно, так как мы не знаем, где разместить штамм в пространстве переживаний.
  2. При усреднении множества значений (когда K — большое число) производительность KNN приближается к подходу 1, поскольку усредняется полное измерение. Для пространства признаков большой размерности, как в нашем случае, появлялись большие ошибки. Величина ошибки зависит от количества соседей. При большом количестве опытов расстояние до каждого из них имеет небольшой разброс. Следовательно, штамм кажется хорошим по всем свойствам: это кажется нереалистичным и достигает той же производительности, что и подход 1.
  3. Алгоритм KNN работает медленно при наличии большого количества измерений.

Подход 3 — Декомпозиция матрицы полезности

KNN находит связи между штаммами в пространстве свойств. Однако он не принимает во внимание некоторые скрытые связи, такие как характеристики сорта, такие как категория (индика, сатива, гибрид). Этот подход учитывает их.

Умный способ решить недостатки, представленные KNN, — уменьшить количество измерений. Это можно сделать как отдельный этап предварительной обработки из Подхода 2 с декомпозицией матрицы полезности. Тогда декомпозиция матрицы полезности представляет собой извлечение скрытых корреляций в переживаниях напряжения.

Давайте возьмем нашу исходную матрицу полезности, содержащую штаммы и свойства, и применим Разложение по сингулярным значениям (SVD). Наша матрица размером 2400 x 47 может быть представлена ​​в виде трех матриц: матрица коэффициентов деформации 2400 x K U, диагональная матрица 𝞢 размера KxK и матрица факторов опыта Kx47. V*, где K — количество компонентов.

Матрица 𝞢 является диагональной и состоит из сингулярных значений, являющихся вкладами компонента K в изменчивость данных. Интуитивно понятно, что каждое значение представляет собой информационный прирост компонента K. Количество компонентов K можно найти с помощью критерия Гуттмана – Кайзера: найти K так, чтобы матрица 𝞢 выполняла не содержать значений меньше 1,0.

Применяя SVD, пространство признаков сокращается, а напряжения и переживания группируются. Он помогает представить эффекты напряжения на основе фактора K и связанной информации о группе лучше, чем подход KNN. В качестве альтернативы, по заданному свойству можно найти наиболее подходящий штамм.

Самая большая проблема здесь заключается в том, что для выполнения разложения матрицы все ячейки должны быть заполнены: вернуться к исходной точке! Чтобы этого избежать, воспользуемся алгоритмами матричной факторизации из «проблемы рекомендаций». Матрица переживаний в этом случае может быть представлена ​​как произведение матрицы латентных факторов деформации H и матрицы латентных факторов опыта W:

Для случая реконструкции матрицы опыта мы используем алгоритм FunkSVD (первоначально предложенный Саймоном Фанк в 2006 году), где прогнозируемое значение может быть оптимизировано благодаря целевой функции:

Основной недостаток по-прежнему присутствует: для совершенно нового штамма мы не можем рассчитать латентные векторы, пока не будет собрано достаточно данных и модель не будет переобучена. Это подводит нас к следующему подходу.

Подход 4 — Проблема регрессии по характеристикам деформации

Идея состоит в том, чтобы решить проблему регрессии после вычисления скрытых матриц напряжений и переживаний. Для каждого нового штамма специалисты лаборатории предоставляют спецификацию, связанную с его характеристиками: концентрация КБД и ТГК, информация о генетике (вид: индика, гибрид, сатива, доминантный предок), терпенах, вкусе, типе (сухоцвет, молотый, пре- роллы) и др.

Тогда возникает вопрос: можно ли предсказать скрытый переносчик нового штамма на основе свойств штамма? Наш опыт показывает, что да.

Мы решаем задачу регрессии с несколькими выходами с деревьями, повышающими градиент. Атрибуты штаммов становятся входной матрицей X, а известные скрытые векторы становятся выходной матрицей Y. Обученный регрессор может предсказать латентный вектор любого нового штамма на основе характеристик штамма, или, проще говоря, отсутствие ответа на задание можно угадать на основе характеристик аналогичного штамма, даже если не было получено никакой обратной связи. Для новых производителей может быть интересно получить рекомендации своих штаммов, даже если потребители не сообщили о каком-либо опыте их использования.

Текущая и будущая работа

Наши следующие шаги:

  • Список атрибутов может быть дополнен дополнительными данными, полученными в результате лабораторных испытаний: дополнительными химическими компонентами, изображениями цветов, отзывами пользователей и т. д. Эти дополнительные данные помогут повысить эффективность модели прогнозирования латентного вектора штамма.
  • Активное обучение — это случай полууправляемого машинного обучения, в котором алгоритм обучения может интерактивно запрашивать пользователя для получения желаемых результатов в новых точках данных. В нашем случае алгоритм предложит нашим пользователям полностью новые штаммы или штаммы с большим количеством неотвеченных элементов с целью получения отзывов, которые принесут пользу всей системе рекомендаций. Чтобы уменьшить отток клиентов при рекомендации этих новых штаммов, эти рекомендации могут получить только опытные пользователи. Новичкам будут рекомендованы наиболее подходящие сорта, что создаст доверие к системе.

Резюме

Заполнение недостающих данных собранных отзывов дает нам возможность значительно расширить список рекомендуемых штаммов для наших клиентов в продуктах Namaste Technologies. В настоящее время мы рекомендуем более 2400 штаммов, и каждый новый штамм немедленно добавляется в список рекомендаций, даже без предварительного сбора отзывов.

Николай Донец

Намасте Технологии - Команда ИИ