Внедрение данных с трекинговых устройств в контекст диалогового ассистента Мы последовательно расширяем персонализацию ассистента «Я здоров» на данных о здоровье пользователя. Сейчас он работает с данными медкарты, долгосрочной памяти и дневников — показатели здоровья, приём препаратов и питания. Сейчас мы прорабатываем следующий шаг — данные с трекинговых устройств. Скоро у нас появятся интеграции с Apple Watch и Google Health Connect. Далее по плану — Oura, Whoop, Garmin и другие.
Цель интеграции — обогатить этими данными ассистента и рекомендательную систему — и сделать ответы и рекомендации ещё персональнее.
Что мы поняли про данные трекинговых устройств и как планируем внедрять их в контекст ассистента и рекомендательной системы
Эти данные, конечно, не обладают клинической точностью лабораторных биомаркеров и обследований. Зато их много: они собираются каждый день, непрерывно, без участия человека.
Мы изучаем структуру данных, которые возвращают разные типы устройств. На что эти данные влияют и как связаны между собой. Как одни и те же показатели интерпретируют разные производители. Разобрали модель Google SensorFM, которая на основе данных с трекеров генерирует медицинские инсайты.
Данные с трекеров условно можно поделить на 3 группы:
Показатели — пульс, HRV, SpO₂, температура кожи и так далее. События — сон, тренировки, ходьба, активность. Показатели привязываются к событиям. Расчётные показатели вендоров — восстановление, качество сна, стресс и другие. Это алгоритмические показатели, которые каждый производитель считает по своей закрытой модели.
Нельзя просто передать в контекст модели данные с трекеров
Во-первых — они просто засорят контекст своим количеством. И, что ещё хуже, модель будет выдумывать взаимосвязи и корреляции, которых нет, и уверенно их объяснит. Что неприемлемо для медицинского ассистента.
Этот же вывод есть в статьях разработчиков SensorFM. Передавать в языковую модель сырые данные с трекеров не просто бессмысленно, а вредно.
Наш общий подход и концепция решения На нашей стороне формируем единую структуру данных, по которой раскладываем все полученные с устройств показатели. Отдельно храним показатели, события и алгоритмические показатели вендоров.
Собираем базу диапазонов общих нормативных значений показателей с учётом пола, возраста и других параметров.
При оценке показателей трекинговых устройств часто значение имеют динамика и отклонения от средних значений в периоде. Поэтому по каждому показателю рассчитываем среднемедианные значения пользователя за прошедшие периоды. Рассчитанные средние значения группируются по разным признакам и событиям, например, будни/выходные, покой/нагрузка, фазы женского цикла.
На основе текущих показателей, общих нормативов и средних значений периодов математической моделью формируем инсайты, например: выход показателя за границы общего норматива, отклонение от среднего показателя пользователя или сдвиг тренда.
Добавляем базу правил интерпретации трекинговых данных на основе клинических стандартов и профильных медицинских статей. По-простому — это правила, описывающие доказанные связи медицинских отклонений и факторов риска с показателями и событиями с трекера.
И эти инсайты уже отправляем в контекст языковой модели — для интерпретации, ответов в диалоге и рекомендаций. Модель не считает по сырым рядам. Она объясняет то, что уже посчитано.
Вот такой общий подход)
Поставьте реакции, если тема интересна — в следующих постах расскажу про: • интеграцию с устройствами и структурирование данных о показателях, событиях и расчётных показателях • общие нормативы, средние значения пользователя и как из них формируются инсайты • инструкции передачи инсайтов на базе трекинговых устройств в ассистент и рекомендательную систему • разбор модели Google SensorFM