基于物联网的健身方法推荐系统设计
2019-01-30高峰胡峡进
文/高峰 胡峡进
随着社会的进步,人们对于运动健身越来越重视,越来越多的人开始追求强健的体魄、优美的形体。同时,国家也大力提倡“全民运动”,根据《全民健身计划(2016-2020年)》的规划,到2020年,每周参加一次及以上体育锻炼的人数要达到7亿,经常参加锻炼的人数要达到4.35亿,体育产业总规模要超过3万亿元。但是,运动健身领域长期以来存在一些不如人意的地方:
(1)传统健身房模式难以适应新的时代。现在的健身房主要模式是办会员卡和私教收费,基本现状是,很多健身房不愿出售短期卡,导致会员卡的期限越来越长,一些不能坚持锻炼的会员就会产生被欺骗的感觉,引起大家的反感。
(2)健身行业难见创新。健身行业也尝试着和互联网融合,推出有像Keep、咕咚一类的APP软件,但形式过于单一,核心内容无非就是视频教程、饮食记录、励志激励等,运动方案也是有氧运动居多,而且发展趋势是越来越细化,不够全面。健身APP功能单一,没有突破,缺乏个性化,效果不佳。
(3)健身方案难以落地,且一种方法不一定适合所有人。比如:备受推崇的游泳减脂,很多人没有条件游泳,即使有条件,公众游泳池在夏天也是人满为患,难以进行系统的训练;再如:慢跑可以减脂,但是有的人膝盖有损伤,对跑步的有效速度难以把握。
综上所述,空泛的健身理论造成的结果就是理论很多人都懂,但实际上很多难以实施,导致健身能有效果、能坚持的人凤毛麟角。目前,关于运动健身的硬件设备已经很发达,如智能手环、智能手表、智能体脂称等,这些设备,可以使用户方便地获取运动时间、心率、体重、体脂、肌肉含量等信息。对于非专业运动员,这些设备采集到的数据已经够用。但是,如何利用好这些数据,是目前亟待解决的一个问题。
图1:基于用户的协同过滤推荐
本文旨在提出一套个性化智能健身系统的设计方案,为不同健身目标的用户分阶段推荐个性化的健身方案。
1 健身推荐方法
1.1 常规推荐
针对新进入系统的用户,系统将为其推荐简单、易操作的运动方案和饮食方案,这些方案由人工筛选出来。由于没有足够的数据,常规推荐只用于解决推荐系统中新用户的冷启动问题。
1.2 基于内容的推荐
基于内容(Content-based,CB)的推荐,是根据运动、饮食方案的特征和用户的历史行为进行推荐,不依赖其他用户。推荐给用户的是与其曾经喜欢的方案的相似方案。其推荐方式为:
1.2.1 获得方案的描述信息
本系统通过加标签来描述一个方案的特征,标签通过人工标注,也可以通过方案描述内容或用户反馈的内容抽取。
1.2.2 获取用户偏好信息
获取用户的历史行为,比如对某一方案的完成度、点赞、评分、评价、收藏等行为,这些行为代表了用户的偏好,根据这些偏好可以为建立用户偏好模型,根据此模型可以推断用户是否喜欢某一方案。
1.2.3 生成推荐
将用户偏好的特征和方案的特征进行比较,把匹配程度比较高的方案推荐给用户。
基于内容的推荐思路比较简单,推荐比较准确,对于加入系统数据库的方案,即使没有用户评分也能通过其标签作为特征,推荐给喜欢的用户,同时可以推荐冷门的方案。但是,基于内容的推荐存在新用户冷启动的问题,且新颖度较差。针对新用户,可以采用常规推荐来弥补;针对新颖度,则可以采用基于协同过滤的推荐来补充。
1.3 基于协同过滤的推荐
基于协同过滤(Collaborative Filtering,CF)的推荐需要获取用户对方案的偏好信息,然后通过用户的偏好信息挖掘方案和用户之间的相关性,根据这种相关性推断用户喜欢的其他方案。基于协同过滤的推荐方法主要有基于用户的协同过滤推荐、基于项目的协同过滤推荐和基于模型的协同过滤推荐,种类繁多,本系统采用基于用户的协同过滤方式。
基于用户的协同过滤推荐,主要是根据用户对方案的偏好信息挖掘相似用户,找到和目标用户有相似偏好的用户群体,给目标用户推荐其相似偏好群体普遍喜欢但该用户并未接触过的方案。算法原理如图1所示。
图1的流程是:如果用户1和用户2都喜欢方案A和方案B,而用户3只喜欢方案C,则认为用户1和用户2偏好相似,可以认为用户2喜欢的方案用户1也会喜欢;由于用户2还喜欢方案C,则认为用户1应该也会喜欢方案C,只是没有接触过,故而可以给用户1推荐方案C。
2 推荐策略
本系统将用户分为三类:以减脂为目的的用户;以增肌为目的的用户以及以保持健康为目的的用户。针对这三类用户,分阶段推荐运动及饮食方案。
图2:推荐系统架构设计
针对第一类以减脂为目的的用户,推荐系统分三步进行:
第一阶段:考虑到这类用户不爱运动、饮食过量的特点,系统将为其推荐简单、可操作的运动方案和饮食方案。该步骤中的方案通用性较强,没什么个性化成分,由人工筛选,目的是激发用户的运动习惯、改善用户的饮食结构。在推荐方案的过程中,还要不断收集用户的反馈信息、采集用户数据,为后续阶段的推荐做数据准备。
第二阶段:一段时间之后,等获取到了用户对所推荐方案的反馈信息、采集到了足够的用户数据,即可改为“基于内容的推荐方法”,根据用户对之前方案的反馈情况,结合其运动水平、运动周期、兴趣爱好、饮食习惯等信息,为其推荐其喜欢的运动、饮食方案,目的是维持用户的兴趣。
第三阶段:如果用户能够坚持,再经过一段时间,系统将收集到更多的用户数据,基于这些数据,采用“基于协同过滤推荐的方法”,挖掘和该用户同类型的其它用户,将同类用户喜欢的方案推荐过去。
对于第二类以增肌为目的的用户,和对第一类用户是类似的,只是侧重点有所不同,比如多推荐力量训练,多推荐高蛋白饮食。
对于第三类用户,他们的目的是保持健康。这类用户饮食方面没有太大问题,主要是需要维持运动习惯。针对这类用户,侧重于运动方案的推荐,当其运动量长期不达标时,发出提醒即可。
3 系统架构设计
本系统主要分为四大模块,分别是:方案管理模块、推荐引擎组、用户反馈模块、用户数据采集模块。方案管理模块负责方案数据的录入、编辑,还要给方案一个初始评分,并为每种方案打上若干个标签,标签可以通过方案的描述信息自动提取,也可人工编辑。初始评分是为常规推荐服务的,评分高的方案优先推荐给用户,用于解决新用户的冷启动问题。打便签是为基于内容的推荐服务的,推荐引擎组利用标签为用户产生基于内容的推荐结果;推荐引擎组是核心模块,负责结合方案数据、用户数据,分阶段地为各类用户推荐运动、饮食方案;用户反馈模块负责收集用户反馈数据,主要是对所推荐方案的反馈信息,包括评分、点赞、收藏、评价、意见、建议等。将采集到的信息经过处理之后,传入用户数据收集模块;用户数据收集模块负责收集用户数据采集设备采集到的数据,结合用户反馈信息进行处理,将处理结果持久化到数据库中,以便推荐引擎组进行推荐。设计架构图如图2所示。
4 展望和不足
综上所述,依据物联网设备采集的相关数据信息,为不同类型的用户提供了个性化的混合推荐系统,有利于用户提高健身的效果。健身不仅与这些数据有关,还与用户的饮食有关,而饮食的数据是一个不确定的因素,只能根据自身的定期且定量的数据来界定,然后进一步完善健身推荐系统。