基于Android的大学生知识交流与共享平台

2020-09-10 09:53郭世浩董帅张欣国梁策冯金栋
科教创新与实践 2020年32期
关键词:推荐系统

郭世浩 董帅 张欣国 梁策 冯金栋

摘要:近年来,伴随着我国计算机科技以及社会经济的飞速发展,智能手机应用程序已经成为学生在日常学习过程中获取和交流知识的绝佳平台。尽管教育类软件已是数不胜数,但用户却不能有个性化并且针对强的推荐服务。因此,依托推荐算法、爬虫等技术搭建基于Android的应用程序作为大学生知识交流与共享的平台将具有很大的应用价值。

关键词:Android;推荐系统;大学生知识共享

1 引言

一部智能手机是我国大学生的基本配置,由于大学提倡学生自主学习加上智能手机的便携性,因此在日常学习中学生大都是通过智能手机获取知识解答疑惑。可纵观手机应用市场大都为与某教育机构相关的适合中学生的应用程序却鲜有针对大学生这一群体的应用软件。这是由于大学有众多的专业,每个专业又有众多的课程,所以任何教育组织都难以提供如此多的服务。也因此造成了应用市场上与大学生相关的教育类软件这一缺口。而且大学生的需求也是多样化,他们不但希望能获取更加有针对性的知识或信息,还需要进行更多的交流。建设一个既能为大学生提供个性化、多样化推荐服务,又能让同所高校的学生之间进行交流和分享知识的移动应用平台,无论是弥补应用市场的这块空缺还是为高校学生的日常学习提供实质性的帮助都具有重大意义。

2 基于Android的移动应用程序

Android是由Alphabet旗下Google公司开发的一种基于Linux内核的自由及开放源码的操作系统,主要用于移动设备。目前我国除受美国制裁的华为公司正在逐渐使用自家研发的Harmony操作系统外,几乎所有智能手机科技公司均使用Android操作系统作为自家智能手机及平板的操作系统。根据近年来大学市场调查显示高校学生中使用国产手机比例高达80.16%。Android操作系统也是全球市场占有比例最大的移动操作系统,因此互联网有丰富的开发经验可以获取,再加上Google为了推动Android发展,为开发者提供了一套完整详尽的开发文档等等,这些都使得Android应用程序的开发变得高效便捷。

前述中提到高校课程成百上千,没有以任何一家教育公司可以提供一套完整的服务。但随着近几年来自媒体的崛起,用户不单是网络资源的浏览者更是资源的贡献者。受这一思想启发。在我们编写的这一应用程序中,用户均可以原创或转载的方式上传学习资源。这样一来,尽管高校课程众多,但只要是某个课程的某个知识点有上传的价值就不会被正在学习它的某些同学忽略,被上传的相关资源会越来越多,根据用户点赞或评论的情况就可以筛选出优质资源进而可以更好的帮助需要的用户。系统工作原理如图1所示:

注册应用用户时需要上传高校学生身份证明进行认证,一方面是为了将用户可见的其他用户锁定到同一所高校内,学生浏览到的用户上传资源均为同校学生所上传的,这样可以让用户浏览的资源更具有针对性。另一方面是因为此应用提供了一定的社交功能,当用户浏览某资源时,除了点赞还可以在下方进行评论,若是有需要还可以与其他用户进行有偿或无偿得进行线下辅导等活动。这样,不仅提高了服务质量还在一定程度避免了校外不法分子的诈骗、诱拐等威胁。

3 实现技术

3.1 基于协同过滤的推荐算法

面对如此多的学习资源,如何在这些资源中找到最符合用户的需要的并推荐给用户是我们首先要解决的问题,这就需要推荐系统的搭建。一般来说,推荐系统这一研究领域起源于协同过滤算法的提出,协同过滤算法又可分为基于用户的协同过滤算法和基于物品的协同过滤算法,下面对这两个算法进行详细介绍。

基于用户的协同过滤算法是推荐算法中一个非常古老的算法,甚至可以说它的提出标志着推荐系统的诞生。其原理以一言概之就是将用户进行分类,想象一下你是一名大一新生,初入大学的你想要学习一个与专业相关的课外课程奈何没有经验找不到合适的入门书籍,这时有两个学长都给你推荐了一本书,这两个人一位是你的专业的,另一位是与你专业关联性不强的。毫无疑问,同专业学长的推荐更具有参考价值,因为你们有相同的研究领域和兴趣。这就是基于用户的协同过滤算法,它主要包括两个步骤:1.找到和目标用户有相似兴趣的其他用户构成一个集合。2.在这个集合中找到用户所感兴趣的并且目标用户并未浏览过的信息资源并推荐给目标用户。

用户在浏览资源时,用户行为是直接受其兴趣影响的,因此我们只需要计算两个用户的行为相似度作为两者之间的兴趣相似度。对于给定的两个用户u和v利用Jaccard公式可以得到u和v的兴趣相似度:

其中,N(u)表示用户u曾经有过正反馈(用户对某个资源感兴趣的行为,如点赞,评论,转发等)的资源集合。同理,N(v)表示用户v曾经有过正反馈的资源集合。若相似度达到某个数值,该用户正反馈资源集合中目标用户未浏览过的资源便可推荐给用户。

基于用戶的协同过滤算法虽然简单易用,但是也有明显的不足。比如,随着用户数量的增加,计算用户相似度虽然也越来越困难,其运算时间复杂度和空间复杂的增长和用户数量的增长近似于平方关系。因此,我们又加入了基于物品的协同过滤算法与基于用户的协同过滤算法进行协调使用。该算法最初是由亚马逊提出,亚马逊的理由是购买某商品的用户也会经常购买其他的商品,这些商品便是与该商品相似的。比如购买羽毛球拍的卖家往往会购买羽毛球。浏览学习资源与购买商品本质上都是获得自己想要的,因此该算法可以用于本应用。该算法也是分为两步:1.计算资源之间的相似度。2.根据资源的相似度和用户的历史行为给用户生成推荐列表。从亚马逊对该算法的描述中我们可以用如下公式计算两个资源之间的相似度:

其中,N(i)是对资源i有正反馈的用户的数量,N(j)是对资源j有正反馈的用户数量。但是为了预防马太效应的出现,我们要对上述公式进行一些改进:

依照其他资源与目标资源的相似度从大到小对其他资源进行排序,若用户对某资源有正反馈行为,便可按照排序结果将其他的相似资源推荐给用户。

3.2 网络爬虫技术

任何交流共享应用都有一个必须要面对的问题,那就是冷启动问题。推荐系统依托找到志趣相投的用户或者类似的资源进而将资源推荐给相关用户,而在应用运营初期,用户数量不足,依托用户上传的资源更是匮乏。此外,前面说过此应用是同所高校内学生信息交流和共享的平台,之所以是同一所高校就是为了让用户浏览的信息的针对性足够强,但“闭关锁国”终归不是好的。所以我们需要加入一些来自互联网上的资源。

网络爬虫又称为网络机器人,是一种按照正则表达式,自动地抓取万维网信息的程序或者脚本。利用爬虫技术在不同专业相关的万维网网站之上,在法律允许的范围里可以分门别类地爬取海量的信息之后通过推荐系统推荐给相关用户。在应用运营初期投放这些资源可以有效解决推荐系统的冷启动问题,随着用户数量的增加,推荐系统的服务质量便可逐步增高。

4 结语

此应用设计的目的在于为我国高校学生搭建一个可以共享交流知识的平台,基于全球智能手机市场所占比最大的Android操作系统,保证了我们的应用可以被绝大部分的高校学生使用。為了追求高质量的服务,我们在服务端搭建了基于协同过滤算法的推荐系统,它以用户近期在应用上的行为作为基础计算出用户可能感兴趣的资源并推送给用户。利用网络爬虫技术按照一定的规则从互联网上相关的网站上爬取海量的资源不仅解决了推荐系统的冷启动问题,还极大的丰富了应用的资源数量。我们采用高校机构号和学生个人ID的注册方式并添加了通讯功能,同学校学生可以进行线下有偿或无偿地辅导解答等活动,这不但促进了大学生之间的知识交流更丰富了学生的大学生活。

参考文献:

[1]《MobData-2018Q3中国智能手机市场报告》.

[2]张小雷.基于协同过滤的推荐系统研究综述[J].数码世界,2021(01):8-9.

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

[4]李文华.解析网络爬虫技术原理[J].福建电脑,2021,37(01):95-96.

[5]李慧敏,孙佳亮.论爬虫抓取数据行为的法律边界[J].电子知识产权,2018(12):58-67.

基金项目:西北民族大学国家级大学生创新创业训练计划资助项目(项目编号:202010742066)

西北民族大学 数学与计算机科学学院 甘肃 兰州 730100

猜你喜欢
推荐系统
数据挖掘在选课推荐中的研究
基于用户偏好的信任网络随机游走推荐模型
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
关于协同过滤推荐算法的研究文献综述