APP下载

基于情境感知的餐饮推荐模型设计

2018-09-12王伟伟段富

现代电子技术 2018年18期
关键词:协同过滤

王伟伟 段富

摘 要: 针对移动餐饮个性化推荐的情境敏感性,结合传统基于内容和协同过滤推荐方法的不足,以移动餐饮推荐为应用背景,详细设计了基于餐饮本体的情境模型和基于SWRL规则的推理方法。将基于情境的推荐和基于用户兴趣的推荐相结合,得到一个自适应的混合推荐模型。实验结果表明,该模型相比传统推荐模型解决了冷启动等问题,并提高了推荐结果的准确率和召回率。

关键词: 餐饮推荐; 情境感知; 协同过滤; 用户兴趣; SWRL; 混合推荐

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2018)18?0154?04

Design of food recommendation model based on context awareness

WANG Weiwei, DUAN Fu

(School of Computer Science and Technology, Taiyuan University of Technology, Taiyuan 030024, China)

Abstract: In allusion to the context sensitivity of mobile food personalized recommendation and the disadvantages of the traditional recommendation method based on content and collaborative filtering, the context model based on food ontology and the inference method based on the SWRL rule are designed detailly, taking mobile food recommendation as the application background. An adaptive hybrid recommendation model is obtained by combining context?based recommendation with user interest based recommendation. The experimental results show that in comparison with the traditional recommendation model, this model can solve the problem of cold boot, and improve the precision and recall rates of recommendation results.

Keywords: food recommendation; context awareness; collaborative filtering; user interest; SWRL; hybrid recommendation

伴隨着互联网技术的蓬勃发展,人们已经从信息匮乏迈入信息过载的年代。于是,各型各色的推荐系统应运而生。目前,推荐系统已经在各种大型多媒体和电子商务网站上得到广泛应用。当前被研究者普遍认可的基本推荐策略有两种,分别是基于内容和协同过滤推荐。但是这些推荐都忽略了一点,就是用户所处的情境,如时间或者位置。如何对用户情境进行定义、有效获取和建模计算,并将其融入到信息推荐的过程中,成为个性化推荐系统研究的重点之一。根据Dey等人的定义,情境感知是利用用户和设备环境等情境信息,向用户推送符合当前环境下的信息或者服务[1]。而本体模型是当前较为主流的情境建模方法。比如武汉大学的李枫林等人将本体和SWRL规则相结合为用户提供高质量个性化健康信息服务[2]。湖南人文科技学院的贺桂和等人提出利用本体和Agent技术相结合的方法,实现了基于情境感知的电子商务平台的个性化推荐[3]。传统的基于内容的推荐和协同过滤推荐均各有优缺点,结合这点,张弛等人提出一种混合推荐模型,相比传统推荐技术,有效提高推荐质量,并在Web资源系统中得到应用[4]。国外的Woerndl等人将基于内容的情景感知推荐、基于知识的情境感知推荐和基于协同过滤的情境感知相混合,根据位置、加油站信息、剩余汽油量等情境因素,实现了加油站推荐系统[5]。Yu等人混合了基于内容过滤的情境感知推荐和基于知识的情境感知推荐,根据位置、时间等信息,为智能手机提供多媒体信息推荐服务[6]。

1 情境推荐

1.1 情境建模

本体是目前公认的表示情境语义建模的最有效的方法[7]。本体提供了很好的情境语义建模手段。情境语义建模是对情境的概念抽象,情境推理则是基于低层情境对用户的高层情境做出识别或者预测。在移动信息推荐中主要实体有用户、对象和环境。本人以餐饮推荐为基础,设计了三层结构的情境本体模型,即用户本体、餐饮本体和情境本体及相应的实例。

1.1.1 用户本体

用户本体包括两个类,分别是:

1) 用户情境,描述用户的基本属性,包括用户姓名、性别、年龄、家乡、身体状况等子类;

2) 用户社会情境,包括信仰和民族两个子类。

1.1.2 餐饮本体

餐饮本体包括7个子类,分别是餐饮名称、餐饮类型、口味、主料、佐料、烹饪方式和食物疗效。

1.1.3 情境本体

情境本体包括两大类,分别是:

1) 时间情境,包括日期、时间和季节3个子类;

2) 物理情境,包括温度、季节和位置。

1.2 推理设计

本文采用SWRL设计的推理规则主要分为两大类,分别是情境演绎规则和推荐优化规则。

1) 情境演绎规则是对用户当前所处的情境做出识别或者预测,是情境感知系统实现的基础。本文的餐饮推荐模型中的情境推荐服务主要是识别当前用户情境,结合用户自身属性,给用户推荐适合当前情境的饮食选择。例如,如果用户A的Hometown=“四川省”,且Location=“山西省”,则系统会将FoodStyle=“川菜”的餐饮食品a推荐给该用户。SWRL规则设计如下:

User(? x)∧hasHometown(? x ,四川省)∧hasLocation(? x ,山西省)∧Food(? y)∧hasFoodStyle(? y ,川菜)→ Acquired(? x,? y)

2) 推荐优化规则是在得到基于情境的初始推荐结果后,结合基于用户兴趣的混合推荐,得到最终的初始推荐结果(下面会介绍)。这里得到的初始推荐结果一般会包含不适合用户的推荐结果。所以引入推荐优化规则目的是对这些初始推荐结果进行过滤。例如,如果用户B的PhysicalCondition=“糖尿病”,则系统会将初始结果中Taste=“甜”或者Condiment=“糖”的餐饮食品b进行过滤删除。SWRL规则设计如下:

B(? x)∧hasPhysicalCondition(? x,糖尿病)∧ b(? y)∧hasTaste(? y ,甜)∨hasCondiment(? y ,糖)→ unAcquired(? x,? y)

2 模型融合

1) 当用户第一次进入系统时,由于用户还没有任何系统行为,比如收藏、打分等,内容推荐和协同过滤推荐必然出现冷启动问题。所以只有情境推荐引擎介入,结合当前物理情境和用户情境,将情境数据和待推荐餐饮实施匹配,形成初始推薦,解决冷启动问题。比如用户来自四川省,并且当前时间是午餐时间,则会给他推荐关键字是“川菜”和“午餐”的食物。

2) 随着用户浏览、收藏和打分行为的发生,提取处理用户行为,得到用户特征向量,内容推荐引擎和协同推荐引擎介入,分别得到基于既有兴趣和潜在兴趣的推荐结果。最终初始推荐结果是将三个引擎推荐结果按照一定权重设置和优先级合并、组合、排序得到的。情境、内容和协同三个推荐引擎的权重分别设为α,β和γ。当用户第一次登录时,权重设置为α=1,β=γ=0;当情境性很强时,比如当天气温骤升或者持续,或当情境性很弱且用户刚开始使用系统不久,权重设置为α>β=γ;当情境性很弱且用户行为数据很多时,权重设置为α<β=γ。

3) 初始推荐结果一般会包括一些不符合要求的结果,所以首先要进行过滤操作。比如某用户有糖尿病,系统则会匹配推荐优化规则库把有关键字“甜味”或者“糖”的结果过滤。此外还会过滤掉一些用户已经产生过行为或者用户评分普遍很低的餐饮对象。

4) 经过过滤的推荐结果直接展示给用户一般没有问题,但是如果给他们进行一些排名,则可以更好地提升用户满意度。排名策略一般包括新颖性排名和用户反馈排名。综合排名后,将Top?N个结果作为最终推荐列表。

3 实验分析

3.1 实验设计

本文所使用的数据集是通过爬虫程序抓取并分析了来自中华美食网的四十几个菜系,900多种食材以及3 000多种食品的相关信息。保存到本地MySQL数据库后,根据本文对数据的要求,将餐饮食品根据其类型、口味、主料、烹饪方式和疗效等特征进行预处理,得到每种餐饮食品的特征向量。比如对于“鱼香肉丝”这道菜,其特征集合为{热菜,川菜,家常菜,鱼香味,猪肉里脊,冬笋,胡萝卜,黑木耳,炒},计算出各个特征对应的权重,得到该食品的特征向量。

系统原型采用Android 5.0平台开发,情境本体采用Protégé 3.4工具建模,本体描述语言为OWL2,推理规则描述语言为SWRL,推理机使用的是JESS(Java Expert System Shell)。本文在情境本体的基础上,构建了36条情境演绎规则和19条情境优化规则。

本文实验总共召集30名大学生志愿者使用系统原型,以三个阶段的形式依次进行,分别进行5次实验,实验控制最终推荐结果的个数Top?N中的N取值为10~30,每次增加5。第一个阶段系统设定α=1,得到情境推荐列表Top?N;第二个阶段设定α=0,β=γ=0.5,得到兴趣推荐列表Top?N;第三个阶段分别取α=0.7,0.6,0.5,0.4和0.3,得到情境推荐和兴趣推荐的混合推荐列表Top?N。

3.2 评测指标

评测一个推荐系统的效能通常采用召回率(Recall)和准确率(Precision)。定义如下:

[Recall=推荐正确的项目数感兴趣的项目总数]

[Precision=推荐正确的项目数被推荐的项目总数]

一般综合考量一个推荐系统的推荐效率会选择F?Measure值,计算公式如下:

[F=2×Precision×RecallPrecision+Recall]

3.3 结果分析

1) Top?N中N值的确定

分析表1,图1和图2后发现,随着推荐项目N的增大,准确率逐渐下降而召回率在逐渐上升,这点符合一般推荐系统的规律。在不考虑权重因子对于结果的影响的前提下,当N=25时,F?Measure值最大,准确率最高。

2) 权值α,β,γ的确定

当α=1时,只根据情境推荐饮食,虽然能解决冷启动的问题,但是推荐效率不是很高。当α=0时,只根据兴趣推荐饮食,推荐的准确率和召回率相比情境推荐得到了提高。

由表1可得,当α=0.4时,无论最终推荐饮食数目有多少,F?Measure值都最大。再结合图1~图3,最终证明本文提出的混合推荐模型在应对不同情境下的饮食推荐策略都有着不错的效果。

4 结 语

为了面向广大用户提供个性化的饮食推荐服务,本文综合考虑了基于用户情境和基于用户兴趣的两方面因素,构建了混合用户情境和兴趣的混合推荐模型。经过大量实验证明,所设计的推荐模型能有效解决推荐系统存在的冷启动和数据稀疏的问题。相比情境推荐和兴趣推荐,能有效提高准确率和召回率,较好满足用户对于个性化饮食服务的需求。同时,本文的模式还可以推广到其他一些领域的信息服务。

由于问题的复杂性,还可以从以下几个方面进行改进:更好更详细地描述用户的情境因素,提高推荐质量;推理规则设置需要领域专家的配合,对于某种食材是否和其他不同名字的食材是同一个,以及菜系别名的确定都需要食品领域专家的帮助;由于用户兴趣是多变的,所以对于基于兴趣推荐引擎,未来需要加入用户特征模型更新模块,已达到更加准确推荐的目的。

参考文献

[1] DEY A K. Providing architectural support for building context?aware applications [D]. Atlanta: Georgia Institute of Technology, 2000.

[2] 李枫林,李娜.基于情景的医药信息服务本体建模及规则推理研究[J].情报理论与实践,2016,39(5):120?124.

LI Fenglin, LI Na. Context?based medical information service ontology modeling and rule inference research [J]. Information studies: theory & application, 2016, 39(5): 120?124.

[3] 贺桂和,曾奕棠.基于情境感知的电子商务平台个性化推荐模型研究[J].情报理论与实践,2013,36(6):81?84.

HE Guihe, ZENG Yitang. Research on personalized recommendation model of e?commerce platform based on context awareness [J]. Information studies: theory & application, 2013, 36(6): 81?84.

[4] 张驰,陈刚,王慧敏.基于混合推荐技术的推荐模型[J].计算机工程,2010,36(22):248?250.

ZHANG Chi, CHEN Gang, WANG Huimin. Recommendation model based on blending recommendation technology [J]. Computer engineering, 2010, 36(22): 248?250.

[5] WOERNDL W, BROCCO M, EIGNER R. Context?aware recommender systems in mobile scenarios [J]. International journal of information technology & web engineering, 2009, 4(1): 67?85.

[6] YU Z, ZHOU X, ZHANG D, et al. Supporting context?aware media recommendations for smart phones [J]. IEEE pervasive computing, 2006, 5(3): 68?75.

[7] 艾丹祥,张玉峰,左晖,等.基于情境语义推理的O2O移动推荐系统研究[J].情报杂志,2015,34(8):182?189.

AI Danxiang, ZHANG Yufeng, ZUO Hui, et al. Research on O2O mobile recommendation system based on contextual semantics inference [J]. Journal of intelligence, 2015, 34(8): 182?189.

[8] 项亮.推荐系统实践[M].北京:人民邮电出版社,2012.

XIANG Liang. Recommended system practice [M]. Beijing: Posts and Telecom Press, 2012.

[9] 王道平,李秀雅,杨岑.基于内容相似度的知识协同过滤推送算法研究[J].情报理论与实践,2013,36(10):86?90.

WANG Daoping, LI Xiuya, YANG Cen. Research on knowledge collaborative filtering push algorithm based on content similarity [J]. Information studies: theory & application, 2013, 36(10): 86?90.

[10] 葛桂丽,袁凌云,王兴超.基于情境感知的用户个性化兴趣建模[J].计算机应用研究,2017,34(4):995?999.

GE Guili, YUAN Lingyun, WANG Xingchao. Personalized user interest modeling based on context aware [J]. Application research of computers, 2017, 34(4): 995?999.

[11] 杨武,唐瑞,卢玲.基于内容的推荐与协同过滤融合的新闻推荐方法[J].计算机应用,2016,36(2):414?418.

YANG Wu, TANG Rui, LU Ling. News recommendation method by fusion of content?based recommendation and collaborative filtering [J]. Journal of computer applications, 2016, 36(2): 414?418.

猜你喜欢

协同过滤
基于用户评分和项目类偏好的协同过滤推荐算法
基于用户相似度加权的Slope One算法
图书推荐算法综述
改进的协同过滤推荐算法
基于链式存储结构的协同过滤推荐算法设计与实现
基于相似传播和情景聚类的网络协同过滤推荐算法研究
基于协同过滤算法的个性化图书推荐系统研究
混合推荐算法在电影推荐中的研究与评述
关于协同过滤推荐算法的研究文献综述
基于混合信任模型的协同过滤推荐算法