基于协同过滤算法的志愿者服务平台的实现
2021-09-14赵雨帆郭梦洁
赵雨帆 郭梦洁
摘 要:本文基于协同过滤算法,设计了一款志愿者服务平台。该志愿者服务平台能够较好地解决当今志愿者行业活动信息杂乱、低志愿者服务平台效管理、活动匹配不当三大核心问题。与现有的服务平台相比,本文设计的志愿者服务平台极大地缩减了用户搜寻和查找的时间,帮助用户更好地参与志愿者活动,具有一定的实用价值。
关键词:协同过滤算法;志愿者服务平台;用户相似度
中图分类号:TP393.09文献标识码:A文章编号:1003-5168(2021)11-0014-03
Implementation of Volunteer Service Platform Based on
Collaborative Filtering Algorithm
ZHAO Yufan GUO Mengjie
(International Education College, Henan University,Kaifeng Henan 475004)
Abstract: This paper designed a volunteer service platform based on collaborative filtering algorithm. The volunteer service platform can better solve the three core problems of today's volunteer industry activities: disordered information, inefficient management and improper matching of activities. Compared with the existing service platform, it greatly reduces the user search and search time, and helps users better participate in volunteer activities, which has a certain practical value.
Keywords: collaborative filtering algorithm;volunteer service platform;user similarity
志愿者服务对个人和社会的发展起着促进作用,如今越来越多的人关注并参与志愿者服务活动。但当前的志愿者服务行业存在活动信息杂乱、志愿者流动性大、活动匹配不当、浪费资源等问题。如何帮助志愿者在海量数据中寻找可靠的信息成为需要解决的主要问题。
目前,电子商务行业会根据用户兴趣进行推荐,促进潜在用户的增加,有效提高其购买力。例如:亚马逊、京东等都利用相关算法推荐用户感兴趣的信息来提高其销售成绩[1]。推荐算法在电商的广泛应用引起了人们的思考。传统的志愿者服务平台对活动的查找依赖于用户对其所需服务的精准描述,且不同的用户会得到相同的结果。然而,推荐系统通过分析用户的历史行为就可以挖掘到用户所需要的信息,为用户提供个性化服务。
1 协同过滤算法分析
1.1 协同过滤算法
互联网技术的飞速发展为人们带来了海量的数据信息,一方面导致用户对信息的搜寻和处理变得更加困难;另一方面,有用的信息被信息海洋稀釋,用户与内容生产者之间的区隔越发明显。一个优秀的推荐系统能为用户提供个性化服务。协同过滤算法是在众多信息过滤技术中最受人们欢迎的。协同过滤算法分为基于用户的协同过滤算法UserCF和基于物品的协同过滤算法ItemCF。基于用户的协同过滤算法是通过用户历史行为数据来推荐与该用户兴趣相似的其他用户所喜欢的物品。基于物品的协同过滤算法与基于用户的协同过滤算法相类似,只是将商品和用户角色互换,通过计算其他用户对物品的评分获得到物品之间的联系,再利用物品之间的相似度对该用户进行相似物品的推荐。协同过滤算法最大的优点是对推荐的对象没有特殊要求,可以处理非结构化的复杂对象。协同过滤算法提供个性化的推荐是根据用户的相似度,而不是物品的客观属性,因此,它可以过滤任何类型的物品,如电影、音乐、文本等[2]。由于本志愿者服务平台的实现只使用了基于用户的协同过滤算法,因此下文只分析基于用户的协同过滤算法。
1.2 基于用户的协同过滤算法
协同过滤算法是推荐系统中最常用的个性化推荐方法之一,并且基于用户的协同过滤算法的核心组件是相似性度量[3]。传统的基于用户的协同过滤算法是根据其他用户的偏好向目标用户推荐,首先找到一组与目标用户具有相同偏好的邻居用户,然后对邻居用户进行分析,向目标用户[4]推荐邻居用户最喜欢的商品。此算法主要分为两个步骤:第一,计算目标用户与其他用户之间的相似度,并找到相似用户集合[A];第二,找到集合[A]中的相似用户所喜欢的物品集合[B],将集合[B]中未被目标用户所浏览的物品推送给目标用户。
1.3 余弦相似度
余弦相似度是通过计算两个向量的夹角余弦值来衡量其相似性的。其中,余弦值的范围在[-1,1],余弦值越趋近于1,表示两个向量越相似。在协同过滤算法中,每一个用户评分都被视作空间上的向量,该算法通过计算向量之间的余弦值来判断不同用户之间的相似度。现给定用户U和用户V,令[N(U)]和[N(V)]分别表示他们喜欢的物品集合,将余弦相似度公式列出:
[WUV=|NU?NV||NU||NV|] (1)
2 系统设计
2.1 内容模块
本文提出的志愿者服务平台实施流程分为四步:①个人信息储存,用户进行信息注册后,进行活动类型测试;②平台基于算法推送相对应的志愿者活动信息,用户选择适合的活动加入;③双向沟通管理,参加活动的用户自动在板块内组建群聊;④活动信息和人员变更进行实时更新。结束后,平台自动记录每一位志愿者对应的诚信档案和活动表现,并将其储存在数据库中,作为奖励和处罚的依据,帮助活动方审核志愿者的信誉度和完成度。此外,板块内设置了志愿者服务知识答题竞赛等内容,用户可以在板块内进行趣味测试以增加知识储备。总体流程如图1所示。
该平台的最终目的是实现志愿者招募、管理、分配三步一体化,并有效解决当前志愿者服务行业存在的活动信息杂乱,志愿者流动性大;低效管理,浪费资源;活动匹配不当,素质水平不均等问题。通过全面覆盖志愿者活动流程,重点解决管理、分配难题,平台将建立起一套行之有效的志愿者服务体制,广泛招募优秀的志愿者,以扩大志愿者资源库。
2.2 实施运行的代码
以下为实施运行的关键代码:
similarity_dic = {}
similarity_dic[currentUserid] = 0
for userid, items in data_dic.items():
if currentUserid != userid:
temp = 0
temp2 = 0
temp3 = 0
for itemid, rating in data_dic[currentUserid].items():
if itemid in items.keys():
temp += float(rating) * float(items[itemid])
temp2 += pow(float(rating), 2)
temp3 += pow(float(items[itemid]), 2)
distance = 0
if temp2 == 0 or temp3 == 0:
distance = 0
else:
distance = temp / (sqrt(temp2) * sqrt(temp3))
similarity_dic[userid] = distance
return similarity_dic
3 平台有效性检验
为了验证基于协同过滤算法的志愿者服务平台的有效性,本文抽取50名用户进行问卷调查,着重提问了本平台推送成功率以及用户的满意度等问题。其中,98%的用户表示通过该平台匹配到了合适的活动内容,2%的用户表示活动内容过于困难,自身能力有待提高。此外,分别选取活动前、活动中、活动后三个时间段对50名志愿者、20名管理者、20名策划人进行满意度调查,调查的效果见图2。从结果来看,三方人员都表示该系统表现良好。
3 结语
本文依据协同过滤算法的相关技术,构建了志愿者服务平台,以解决志愿者活动信息杂乱、低效管理、活动匹配不当三大问题。在未来的应用中,将优化算法,综合构建用户兴趣模型,进一步提高推荐系统性能和推荐精度[5]。
参考文献:
[1]蒋宗礼,于莉.基于用户特征的协同过滤推荐算法[J].计算机系统应用,2019 (8):190-196.
[2]秦育华.基于Python的用户协同过滤推荐系统的研究与实现[J].电脑知识与技术,2020(31):234-236.
[3]ZOU Z , WANG Z , ZHANG S , et al. An improved user-based collaborative filtering algorithm[C]// 2018 14th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD). 2018.
[4] KARYPIS G.Evaluation of Item-Based Top-N Recommendation Algorithms[C]// 10th International Conference on Information and Knowledge Management. University of Minnesota, Department of Computer Science and Army HPC Research Center, Minneapolis, MN 55455. Atlanta, USA, 2001:247-254.
[5]迪盼祺,夏春明,王憶勤,等.基于协同过滤算法的中医智能问诊系统研究[J].世界科学技术-中医药现代化,2021(1):247-255.