先按变化速度把信息分层
个性化营养的输入看似一张整齐的表,实际由四种性质迥异的信息拼成:年龄几乎不动,运动以周为单位起伏,饮食结构要积累两三周才显出轮廓,睡眠和进餐时间天天在变。纵横国际整理这些输入时,先按“变化多快、记录多准”分层,再决定每一层以什么形式进入模型。下面借一位设定的用户说明:假设她34岁,每周跑步3次,朝九晚六上班,工作日晚饭常拖到九点以后。
| 维度 | 进入模型的形式 | 设定的特征示例 | 主要风险 |
|---|---|---|---|
| 年龄 | 静态特征:年龄段加连续值 | 34岁,成年阶段 | 把年龄当成结论 |
| 运动 | 滚动特征加事件特征 | 近28天周均次数、强度分布、跑后2小时是否进餐 | 设备误差,只看总量 |
| 饮食 | 滚动分布加偏好向量 | 近14天蛋白质三餐分配、蔬果餐次占比、禁忌标记 | 自报低报,份量估错 |
| 生活方式 | 周期特征加事件特征 | 工作日标记、晚餐距入睡小时数、昨晚睡眠是否偏短 | 单夜数据被过度解读 |
年龄:给需求划出区间,而不是给出结论
年龄最常见的处理是当成一条直线,岁数每大一岁,某个目标就按固定斜率变化。营养需求其实分阶段,边界又很模糊,所以更稳妥的做法是同时提供年龄段标签和连续年龄值,让模型在段内看渐变,在段间允许跳变。
年龄几乎没有噪声,适合做先验,决定推荐的起点范围,再由行为数据把起点往两边挪动。让年龄拥有最终决定权,等于假设同龄人过着同一种生活,这正是静态画像解释不了同龄人差异的根源。
运动:频率、强度、类型要拆开
“每周跑步3次”若只记成一个数字,模型分不出是30分钟的轻松慢跑,还是60分钟含间歇的训练。拆开以后,频率取近28天的滚动均值,强度取心率区间或自感用力程度的分布,类型取类别标签:频率影响长期能量需求,强度影响单次训练前后的补给,类型影响蛋白质与碳水的分配倾向。
跑步结束后两小时内有没有进餐,无法用均值表达,要作为带时间戳的事件单独保存。运动数据若来自可穿戴设备,还得接受误差:2026年《Frontiers in Digital Health》一篇关于测量误差的论文指出,可穿戴设备存在传感器漂移、校准衰减,不同品牌之间也不可比。运动特征宁可粗一点、稳一点,详见穿戴设备进入营养系统以后能回答什么。
饮食:结构、偏好和禁忌是三种不同的东西
结构回答“她实际吃了什么”,用近两周的分布描述。偏好回答“她愿意吃什么”,决定推荐能不能被接受。禁忌与过敏是硬约束,不该参与打分,而应在排序之前直接过滤候选食品。把禁忌写成很低的偏好权重是危险的,其他因素足够强时,模型仍可能把它推出来。
结构特征还要面对自报数据的系统性偏差。上述论文同时指出,验证研究显示高BMI人群的能量和蛋白摄入低报可达20%–30%。饮食特征的可信度应当作为独立字段进入模型:记了份量和配料的一餐,与只写“外卖一份”的一餐,权重不该相同。
生活方式:睡眠和进餐时间更像事件,而不是均值
睡眠与进餐时间变化最快。这位上班族工作日晚饭多在九点以后,周末在七点左右,全周平均得到一个“八点二十的晚餐”,而这个时刻在她的生活里根本不存在。更合适的做法是保留周期特征,再叠加“昨晚睡眠明显偏短”这样的事件标记,让模型对次日的能量分配做小幅调整,而不是推翻整套方案。
权重会移动,推荐要交代理由
纵横国际不给四类特征设固定权重,权重会随场景移动。假设这位用户报名了一场10公里比赛,备赛的那个月,运动特征的权重应当上升;出差一周、作息被打乱时,饮食与生活方式记录的可信度下降,模型应更依赖长期均值。权重固定的系统,在用户状态改变时会给出前后矛盾的建议。
与之配套的是理由输出。给她推荐早餐时,系统可以写明“近28天早餐蛋白质偏低,明天又有一次跑步安排”,用户能立刻核对哪条依据已经过时,比如跑步临时取消了。理由是错误输入被发现、被纠正的入口。
要点:进入模型的不是“运动”“饮食”这些名词,而是各自带着时间尺度和可信度的特征。给每个特征标注更新频率与可信度,往往比多加十个特征更能改善推荐质量。
冷启动时怎么办
新用户只有年龄和一句目标时,没有滚动特征可用,只能给较宽的推荐区间,并明确写出“依据不足”。随着记录积累,区间逐步收窄,长期结构才会显现,这个过程在一天吃得很健康为什么不能说明长期饮食结构里有细讲。纵横国际的设计思路是让区间宽度本身成为可见输出,用户在个性化营养栏目里看到的,应是“目前依据有限”这样的诚实提示,而不是精确到克的数字。