首页 理论教育 智能推荐服务与微服务

智能推荐服务与微服务

时间:2023-11-23 理论教育 版权反馈
【摘要】:服务是基于SOA架构而形成的,将应用程序的不同功能单元进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。将服务进行封装即形成了服务构件,服务构件对外向用户提供一个具有独立功能的服务。在软件开发过程中,可以借助推荐算法,完成服务构件的推荐。其中,构件是服务与微服务思想架构的工程化落地产物。

智能推荐服务与微服务

服务是基于SOA架构而形成的,将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口采用中立的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务能够以一种统一和通用的方式进行交互。

将服务进行封装即形成了服务构件,服务构件对外向用户提供一个具有独立功能的服务。根据不同粒度的划分,可以将服务构件划分为基础服务构件、系统服务构件、业务服务构件及行业服务构件。

当今国内外大多数软件开发公司,都已从传统的软件开发转换为基于SOA的服务构件开发模式,在一个面向服务的体系中,一个应用模块可以轻易地被替换,也可以快速地被重新组合成新的模块。但是基于服务构件的开发模式需要有软件平台的支撑,才能打造出能够灵活应变的SOA服务,才能在一定程度上提高软件功能和模块的复用率,避免传统的烟囱式开发模式,从而提高软件开发效率,减少软件开发人员的工作量。

微服务也是服务,其关键是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。这种所谓的“统一的整体”表现出来的是统一风格的界面、统一的权限管理、统一的安全策略、统一的上线过程、统一的日志和审计方法、统一的调度方式、统一的访问入口等。

虽然借助服务和微服务能够提高软件开发效率,但是在实际的产品化软件工具中,对服务构件的业务流程进行编排时,仍然需要大量的时间,且对软件开发人员的能力要求较高,否则就会对实际开发造成困难。因此,在软件开发人员使用工具过程中为用户智能化的推荐服务构件成为一个必然的发展趋势。

在信息过载的推动下,推荐系统成为各大互联网公司攻城略地、开疆拓土的必备工具。针对实际的服务场景,可以采用传统的推荐算法,如基于用户的协同过滤推荐算法、基于物品的协同过滤推荐算法、基于SVD的推荐算法、基于矩阵分解的推荐算法;也可以采用基于机器学习的推荐算法,如循环神经网络结果,分析服务构件之间的逻辑关联,从而为用户推荐服务构件。在软件开发过程中,可以借助推荐算法,完成服务构件的推荐。

(1)基于用户的协同过滤推荐是当用户需要个性化推荐时,可以先找到与他相似的其他用户(通过兴趣、爱好或行为习惯等),然后把那些用户喜欢的并且自己不知道的物品推荐给用户。

基于用户的协同过滤算法主要包括以下两个步骤:

①找到与目标用户兴趣相似的用户集合。

②找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

(2)基于物品的协同过滤推荐是给用户推荐那些和他们之前喜欢的物品相似的物品。此算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B。

基于物品的协同过滤算法主要包括以下两个步骤:(www.xing528.com)

①计算物品之间的相似度。

②根据物品的相似度和用户的历史行为给用户生成推荐列表。

无论是基于用户的协同过滤推荐还是基于物品的协同过滤推荐,在服务构件推荐的过程中,都可以将物品转换为服务构件,计算出服务构件之间的关联度,从而为用户进行推荐。

(3)基于SVD的推荐是运用奇异值分解技术,将一个比较复杂的矩阵用更小、更简单的3个子矩阵的相乘来表示,这3个小矩阵描述了大矩阵重要的特性。在推荐过程中,能够获取到构件与构件之间的使用频率信息,通过这种方式,能够构建出构件-频率矩阵,但是此矩阵是稀疏矩阵,随着构件数目的增多,稀疏程度将会更大,因此,使用SVD推荐算法可以有效降维,提高推荐算法的计算效率。

(4)基于矩阵分解的推荐算法活跃在推荐领域,刚刚描述的SVD推荐算法其实也属于矩阵分解算法的一种。推荐矩阵分解就是希望能通过用户已有的评分来预测用户对未打分或者评价项目的评价情况,而通过矩阵分解则能挖掘用户的潜在因子和项目的潜在因子,来估计缺失值。在此服务构件推荐过程中,构件频率矩阵即可用来转化通常在推荐系统中所说的用户评分矩阵。

(5)采用深度学习算法需要根据实际的应用场景和数据集特征搭建深度学习网络模型来进行模型训练和使用。

本书提供的各种思路都可供读者自己去练习或尝试。

在实际的软件开发过程中,一个软件的开发过程如图8-1所示,包含构件下载、构件流程化编排等各个环节,其中智能化在软件制造过程中的应用即是图中构件智能化推荐环节。其中,构件是服务与微服务思想架构的工程化落地产物。用户在实际的软件开发过程中,构件是软件开发平台的基本单元,用户的操作主要是基于构件进行。将构件与上述的各种推荐算法相结合,基于实际的软件开发场景,最终能够达到在实际软件开发过程中,为用户推荐业务场景所需的构件。

图8-1 软件开发过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈