title: 文献管理系统设计方案date: 2018-04-26 09:49:16
tags: 文献推荐
项目成员
队长:姚胤楠
队员:李松谦、张方略、刘方涵
系统架构
平台
PC端
以Web作为平台
前端基于Vue.js(与移动端小程序配套),页面初步设计仿照 “知乎”
后端基于ThinkPHP和MySQL
PHP或JAVA实现推荐算法。
移动端
初步以小程序作为平台,后期较为成熟后再考虑开发APP。
推荐系统架构
一个常见的推荐系统架构一般如下图:
分为数据来源、推荐引擎和推荐交互三个方面
数据来源
涉及到的对象有两个,文献和用户。还有两者的交互。所以数据源有三个方面。
- 文献数据:标签(关键词),类别等
- 用户数据: 研究领域、研究方向、文献发表、订阅等
- 交互数据:对文献的喜好打分(构建评价模型)
评价模型,通过真实的用户行为数据构建,包括对文献是否浏览,浏览时间,是否收藏,是否分享等等。通过这些指标构建评价模型。(相关性分析+回归?)
用户兴趣偏向
通过以下方式获取用户兴趣偏向
1、我订阅的文献
(1)RSS订阅
(2)出版社期刊官网
(3)Google Scholar订阅
(4)用户自添加的文章My Favorite Paper
2.My Published Paper(个人发表过的文章)
(1)论文关键词
(2)共同作者发表的论文
(3)引用文献
后续改进
后两者可以结合知识图谱,计算出学者作者知识图谱,计算学者关键词(标签),计算云图等
3. ResearcherID
在用户使用之初询问其ResearcherID,验证其身份后通过网络上获取的信息构建出用户初步喜好模型。
让用户无需在使用之初面临选择过多。
可以较为合理的优化冷启动问题。
推荐引擎
推荐引擎主要是推荐系统的算法,主要包括基于人口统计学的推荐,基于内容的推荐,协同过滤三种。
协同过滤
核心是用户交互数据建模
基于协同过滤的推荐可以分为三个子类:
基于用户的推荐(User-based Recommendation)
基于项目的推荐(Item-based Recommendation)
基于模型的推荐(Model-based Recommendation)
下文以电影推荐为例介绍推荐引擎:
基于Apache Mahout的协同过滤算法来建立和训练机器学习模型,以及基于Elasticsearch的搜索技术来简化推荐系统的开发。
电影信息数据被重新格式化,然后将其存储在Elasticsearch中用于搜索。
来自Apache Mahout的物品相似度算法根据用户对电影的已有评分来创建电影推荐的标识符。这些标识符被添加到存储在Elasticsearch的对应电影文件里。
通过用户喜欢电影的标识符去搜索其它电影,将返回一份新的按照用户喜好相关性排序的电影列表。
推送流程
DOI的使用
构建元搜索—>通过爬虫来获取文章DOI(DOI符合一个正则表达式)—>使用DOI检索到对应论文—>**过滤筛选最适宜的对用户推送
元搜索:将搜索请求发送至多个搜索引擎,并根据一定的算法对于这些搜索引擎返回的结果进行排序,呈现给用户。
*用户交互
将“推荐”理解为“推送”
如果主动推送给用户,很有可能会引起用户反感,虽然在一定程度上会提升用户活跃度。当然这个也可以通过算法去控制要不要主动推送,对于活跃度一直很低的可以主动推荐,甚至是通过发短信来推送,其他用户则可以转为被动。
当下无数的互联网产品都有一个“发现”模块,包括微信,Twiiter等大量产品。用户有需求的时候,会主动的找“推荐”,避免被打搅。而对于推荐系统,也避免对用户形成打扰,引起用户反感。
*冷启动问题
用户方面:本身有订阅及初始喜好
论文方面:本身有特定属性
两个方面的冷启动问题并不是太过严重
项目开发流程及相关学习内容
阶段一:初步实现自动推荐
1.DOI检索
实现仅通过关键词不做处理地返回相关论文
关键词—>利用元搜索模式进行搜索请求—>返回论文DOI—>通过DOI检索到对应论文链接
通过不断改变人工关键词获得不同论文
时间:预定一周,最多两周
2.增加用户状态初始化
构建系统后台及数据库
根据ResearcherID来构建最初的用户兴趣模型
通过订阅和用户发表文章来优化用户兴趣模型
3.用户模型(基于人口统计学的推荐)
构建单一用户模型,存放用户特征关键词
实现用户不断点击访问请求返回的相关论文,算法自动实现关键词的改变
4.基于用户的协同过滤推荐
实现多个相似兴趣用户之间的协同过滤推荐
阶段二:优化推荐结果
1.筛选搜索结果
对搜索结果进行筛选和排序,通过权值计算,选出最优论文向用户推荐
2.自我搜索导致的兴趣改变
通过用户使用过程中进行的自我搜索和对订阅文章新领域的涉及,不断更新、丰富用户模型
当用户接触新领域论文时会询问用户是否对相关文章 感兴趣/无感
或者当用户对新出现的内容不断刷新想获得新内容(表明用户对该内容暂时不感兴趣)
3.页面设计和显示
推送的文章不再以链接形式存在
页面显示文章的题目、作者、介绍、关键词、Download PDF功能(免费文章)
设置免费文章和收费文章分类,对不同情况用户进行相应推荐
阶段三:拓展优化
*1.计算学者知识图谱
构建图数据库等形式的知识图谱
通过共同作者,进行用户之间更优化的协同过滤
*通过文献引用,进行文献之间的关系建立
存在的疑问
- 我们做这个课题时,Web端是否需要注册域名?移动端可否通过注册小程序与PC端连接?小程序是否会有局限性?
- 我们是先做好系统然后再研究算法实现功能,还是先学习算法将单一功能实现然后再写系统将二者结合?
- 老师在邮件里指出用DOI查询文献,我们这个通过关键字在搜索引擎搜索DOI,再进行DOI搜索返回文献的方法是否得当?
- ElasticSearch这类搜索引擎的概念,我们在网上搜寻很多专业解释难以很快理解,可否用通俗的语言进行解释?