Внедрение данных с трекинговых устройств в контекст диалогового ассистента Мы последовательно расширяем персонализацию ассистента «Я здоров» на данных о здоровье пользователя. Сейчас он работает с данными медкарты, долгосрочной памяти и дневников — показатели здоровья, приём препаратов и питания. Сейчас мы прорабатываем следующий шаг — данные с трекинговых устройств. Скоро у нас появятся интеграции с Apple Watch и Google Health Connect. Далее по плану — Oura, Whoop, Garmin и другие.

Цель интеграции — обогатить этими данными ассистента и рекомендательную систему — и сделать ответы и рекомендации ещё персональнее.

Что мы поняли про данные трекинговых устройств и как планируем внедрять их в контекст ассистента и рекомендательной системы

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

Мы изучаем структуру данных, которые возвращают разные типы устройств. На что эти данные влияют и как связаны между собой. Как одни и те же показатели интерпретируют разные производители. Разобрали модель Google SensorFM, которая на основе данных с трекеров генерирует медицинские инсайты.

Данные с трекеров условно можно поделить на 3 группы:

Показатели — пульс, HRV, SpO₂, температура кожи и так далее. События — сон, тренировки, ходьба, активность. Показатели привязываются к событиям. Расчётные показатели вендоров — восстановление, качество сна, стресс и другие. Это алгоритмические показатели, которые каждый производитель считает по своей закрытой модели.

Нельзя просто передать в контекст модели данные с трекеров

Во-первых — они просто засорят контекст своим количеством. И, что ещё хуже, модель будет выдумывать взаимосвязи и корреляции, которых нет, и уверенно их объяснит. Что неприемлемо для медицинского ассистента.

Этот же вывод есть в статьях разработчиков SensorFM. Передавать в языковую модель сырые данные с трекеров не просто бессмысленно, а вредно.

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

Собираем базу диапазонов общих нормативных значений показателей с учётом пола, возраста и других параметров.

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

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

Добавляем базу правил интерпретации трекинговых данных на основе клинических стандартов и профильных медицинских статей. По-простому — это правила, описывающие доказанные связи медицинских отклонений и факторов риска с показателями и событиями с трекера.

И эти инсайты уже отправляем в контекст языковой модели — для интерпретации, ответов в диалоге и рекомендаций. Модель не считает по сырым рядам. Она объясняет то, что уже посчитано.

Вот такой общий подход)

Поставьте реакции, если тема интересна — в следующих постах расскажу про: • интеграцию с устройствами и структурирование данных о показателях, событиях и расчётных показателях • общие нормативы, средние значения пользователя и как из них формируются инсайты • инструкции передачи инсайтов на базе трекинговых устройств в ассистент и рекомендательную систему • разбор модели Google SensorFM