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