当前位置: 首页 > 工具软件 > Myrrix > 使用案例 >

Myrrix——基于Mahout的开源推荐系统

邵兴怀
2023-12-01

<h3>Myrrix简介</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix是一个完整的、实时的、可扩展的集群和推荐系统,基于Mahout实现。<br/> &nbsp;&nbsp;&nbsp;&nbsp;主要架构分为两部分:服务层:在线服务,响应请求、数据读入、提供实时推荐;计算层:用于分布式离线计算,在后台使用分布式机器学习算法为服务层更新机器学习模型。Myrrix使用这两个层构建了一个完整的推荐系统,服务层是一个HTTP服务器,能够接收更新,并在毫秒级别内计算出更新结果。<br/> &nbsp;&nbsp;&nbsp;&nbsp;服务层可以单独使用,无需计算层,它会在本地运行机器学习算法。<br/> &nbsp;&nbsp;&nbsp;&nbsp;计算层也可以单独使用,其本质是一系列的Hadoop jobs。<br/> </p> <h3>Myrrix优点</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;1.No Ratings<br/> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix提供了一个广义的模型,可以处理任何事件,不止是评分,还可以是点击、浏览等。<br/> &nbsp;&nbsp;&nbsp;&nbsp;2.Cold Start<br/> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix基本上解决了用户冷启动问题,当用户第一个行为数据进入Myrrix后推荐就会生成。<br/> &nbsp;&nbsp;&nbsp;&nbsp;3.Temporary Users<br/> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix提供了特殊的支持为游客进行推荐。<br/> &nbsp;&nbsp;&nbsp;&nbsp;4.Non-numeric Data<br/> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix中不用再像Mahout中那样硬性规定userID或itemID必须是数字,userID也可以用字符串表示,例如“Jane”。<br/> &nbsp;&nbsp;&nbsp;&nbsp;5.Privacy & Security<br/> &nbsp;&nbsp;&nbsp;&nbsp;Myrrix中可以不用将真实的用户或物品数据发送给服务端,代替做法客户端可以发送不透名的散列。<br/> </p> <h3>Myrrix功能</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;1.客户端功能<br/> &nbsp;&nbsp;&nbsp;&nbsp;可以通过MyrrixRecommender接口实现类对用户进行推荐,方法如下:<br/> &nbsp;&nbsp;&nbsp;&nbsp;setPreference userID itemID [value]<br/> &nbsp;&nbsp;&nbsp;&nbsp;removePreference userID itemID<br/> &nbsp;&nbsp;&nbsp;&nbsp;ingest csvFile.csv(.gz|.zip) [csvFile2 ...]<br/> &nbsp;&nbsp;&nbsp;&nbsp;estimatePreference userID itemID1 [itemID2 ...]<br/> &nbsp;&nbsp;&nbsp;&nbsp;recommend userID<br/> &nbsp;&nbsp;&nbsp;&nbsp;recommendToAnonymous itemID1 [itemID2 ...]<br/> &nbsp;&nbsp;&nbsp;&nbsp;mostSimilarItems itemID1 [itemID2 ...]<br/> &nbsp;&nbsp;&nbsp;&nbsp;similarityToItem toItemID itemID1 [itemID2 ...]<br/> &nbsp;&nbsp;&nbsp;&nbsp;recommendedBecause userID itemID<br/> &nbsp;&nbsp;&nbsp;&nbsp;refresh<br/> &nbsp;&nbsp;&nbsp;&nbsp;isReady<br/> &nbsp;&nbsp;&nbsp;&nbsp;getAllUserIDs<br/> &nbsp;&nbsp;&nbsp;&nbsp;getAllItemIDs<br/> &nbsp;&nbsp;&nbsp;&nbsp;getNumUserClusters<br/> &nbsp;&nbsp;&nbsp;&nbsp;getNumItemClusters<br/> &nbsp;&nbsp;&nbsp;&nbsp;getUserCluster n<br/> &nbsp;&nbsp;&nbsp;&nbsp;getItemCluster n<br/> &nbsp;&nbsp;&nbsp;&nbsp;2.服务层API<br/> &nbsp;&nbsp;&nbsp;&nbsp;与客户端API相对应:<br/> &nbsp;&nbsp;&nbsp;&nbsp;Set / Add Preference<br/> &nbsp;&nbsp;&nbsp;&nbsp;Remove Preference<br/> &nbsp;&nbsp;&nbsp;&nbsp;Ingest<br/> &nbsp;&nbsp;&nbsp;&nbsp;Set User Tag<br/> &nbsp;&nbsp;&nbsp;&nbsp;Set Item Tag<br/> &nbsp;&nbsp;&nbsp;&nbsp;Refresh<br/> &nbsp;&nbsp;&nbsp;&nbsp;Ready<br/> &nbsp;&nbsp;&nbsp;&nbsp;Recommend<br/> &nbsp;&nbsp;&nbsp;&nbsp;Recommend To Many<br/> &nbsp;&nbsp;&nbsp;&nbsp;Recommend To Anonymous<br/> &nbsp;&nbsp;&nbsp;&nbsp;Most Similar Items<br/> &nbsp;&nbsp;&nbsp;&nbsp;Similarity To Item<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get # User Clusters<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get # Item Clusters<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get User Cluster<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get Item Cluster<br/> &nbsp;&nbsp;&nbsp;&nbsp;Estimate<br/> &nbsp;&nbsp;&nbsp;&nbsp;Estimate For Anonymous<br/> &nbsp;&nbsp;&nbsp;&nbsp;Because<br/> &nbsp;&nbsp;&nbsp;&nbsp;Most Popular Items<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get All User IDs<br/> &nbsp;&nbsp;&nbsp;&nbsp;Get All Item IDs<br/> &nbsp;&nbsp;&nbsp;&nbsp;<br/> &nbsp;&nbsp;&nbsp;&nbsp;3.计算层 &nbsp;&nbsp;&nbsp;&nbsp; </p> <h3>Documents</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://myrrix.com/quick-start/">Quick Start</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://myrrix.com/documentation-java-client/">client API</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://myrrix.com/docs/client/java/javadoc/index.html">clinet JavaDoc</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://myrrix.com/rest-api/">rest-api</a><br/> </p>

转载于:https://my.oschina.net/wxcchd/blog/140440

 类似资料: