open-rec:基于开源技术栈的推荐系统

项目地址

https://github.com/open-rec

运行模式

standalone模式

image.png

SDK

数据推送与推荐接口交互client,目前仅支持java版本

rec-server

推荐系统在线服务,整合实时数据链路、运营操作以及召回+排序链路,完成整套推荐系统在线服务功能串通

rec-algorithm

推荐算法模块,基于pandas实现,故而目前仅支持单机环境:包含i2i,word2vec,hot以及new四种召回算法

recall-engine

推荐召回引擎,包括两部分

  1. redis:用户i2i,hot,new以及曝光过滤等
  2. elasticsearch:用于向量召回以及文本检索

example

顾名思义,为了使开发者更容易的了解整套链路的工作流程而准备的辅助模块

cluster模式

主要是rec-algorithm以及实时链路部分会进行集群版本的扩充,挖个坑先... 先将standalone版本放出来试试水,尝试搜集下需求和建议,当然如果能一起参与开发就更好了,说实话一个人搞还是蛮累的...

演示说明

使用了开放的豆瓣数据集,由于太大没有上传至git
其中包含用户数据64w+,物品数据14w+,行为数据210w+ 测试效果:
个性化推荐,当你点了悬疑电影《葬礼之后》

1{ 2 "code": 200, 3 "status": true, 4 "msg": "", 5 "data": { 6 "results": [ 7 { 8 "id": "1768141", 9 "score": 0.08358968296584475 10 }, 11 { 12 "id": "3426877", 13 "score": 0.07665220781278664 14 }, 15 { 16 "id": "1427040", 17 "score": 0.07655959028113997 18 }, 19 { 20 "id": "1427039", 21 "score": 0.07570950809055003 22 }, 23 { 24 "id": "1768209", 25 "score": 0.07437190381291456 26 }, 27 { 28 "id": "3228086", 29 "score": 0.0697870242753483 30 }, 31 { 32 "id": "1421737", 33 "score": 0.06672216347590268 34 }, 35 { 36 "id": "3992966", 37 "score": 0.0652121816197966 38 }, 39 { 40 "id": "4106641", 41 "score": 0.06475048223743467 42 }, 43 { 44 "id": "1768212", 45 "score": 0.06289306435371969 46 } 47 ], 48 "detailInfos": [ 49 { 50 "id": "1768141", 51 "weight": 0, 52 "title": "遗产风波 - 电影", 53 "category": "悬疑/惊悚/犯罪", 54 "tags": "英剧/阿加莎·克里斯蒂/推理/英国/悬疑/Poirot/AgathaChristie/侦探", 55 "scene": "douban_movie", 56 "pubTime": "0", 57 "modifyTime": "0", 58 "expireTime": "0", 59 "status": 1, 60 "extFields": "{}" 61 }, 62 { 63 "id": "3426877", 64 "weight": 7, 65 "title": "鸽群中的猫", 66 "category": "剧情/悬疑/惊悚/犯罪", 67 "tags": "英剧/阿加莎·克里斯蒂/推理/英国/悬疑/AgathaChristie/Poirot/波洛", 68 "scene": "douban_movie", 69 "pubTime": "0", 70 "modifyTime": "0", 71 "expireTime": "0", 72 "status": 1, 73 "extFields": "{}" 74 }, 75 { 76 "id": "1427040", 77 "weight": 7, 78 "title": "空幻之屋", 79 "category": "剧情/爱情/悬疑/犯罪", 80 "tags": "阿加莎·克里斯蒂/推理/英剧/英国/波洛/悬疑/Poirot/AgathaChristie", 81 "scene": "douban_movie", 82 "pubTime": "0", 83 "modifyTime": "0", 84 "expireTime": "0", 85 "status": 1, 86 "extFields": "{}" 87 }, 88 { 89 "id": "1427039", 90 "weight": 8, 91 "title": "H庄园的一次午餐", 92 "category": "剧情/爱情/悬疑/犯罪", 93 "tags": "阿加莎·克里斯蒂/推理/英国/英剧/悬疑/波洛/侦探/Poirot", 94 "scene": "douban_movie", 95 "pubTime": "0", 96 "modifyTime": "0", 97 "expireTime": "0", 98 "status": 1, 99 "extFields": "{}" 100 }, 101 { 102 "id": "1768209", 103 "weight": 7, 104 "title": "底牌", 105 "category": "剧情/悬疑/犯罪", 106 "tags": "阿加莎·克里斯蒂/推理/英剧/英国/悬疑/Poirot/侦探/波洛", 107 "scene": "douban_movie", 108 "pubTime": "0", 109 "modifyTime": "0", 110 "expireTime": "0", 111 "status": 1, 112 "extFields": "{}" 113 }, 114 { 115 "id": "3228086", 116 "weight": 7, 117 "title": "第三个女郎", 118 "category": "悬疑/惊悚/犯罪", 119 "tags": "英剧/阿加莎·克里斯蒂/推理/Poirot/AgathaChristie/英国/悬疑/波洛", 120 "scene": "douban_movie", 121 "pubTime": "0", 122 "modifyTime": "0", 123 "expireTime": "0", 124 "status": 1, 125 "extFields": "{}" 126 }, 127 { 128 "id": "1421737", 129 "weight": 0, 130 "title": "埃奇威尔爵士之死 - 电影", 131 "category": "悬疑/犯罪", 132 "tags": "阿加莎·克里斯蒂/推理/英国/悬疑/英剧/波洛/侦探/Poirot", 133 "scene": "douban_movie", 134 "pubTime": "0", 135 "modifyTime": "0", 136 "expireTime": "0", 137 "status": 1, 138 "extFields": "{}" 139 }, 140 { 141 "id": "3992966", 142 "weight": 0, 143 "title": "三幕悲剧 - 电影", 144 "category": "剧情/悬疑/惊悚/犯罪", 145 "tags": "阿加莎·克里斯蒂/推理/英剧/英国/悬疑/Poirot/波洛/AgathaChristie", 146 "scene": "douban_movie", 147 "pubTime": "0", 148 "modifyTime": "0", 149 "expireTime": "0", 150 "status": 1, 151 "extFields": "{}" 152 }, 153 { 154 "id": "4106641", 155 "weight": 7, 156 "title": "怪钟疑案", 157 "category": "剧情/悬疑/犯罪", 158 "tags": "阿加莎·克里斯蒂/推理/英国/悬疑/英剧/波洛/侦探/Poirot", 159 "scene": "douban_movie", 160 "pubTime": "0", 161 "modifyTime": "0", 162 "expireTime": "0", 163 "status": 1, 164 "extFields": "{}" 165 }, 166 { 167 "id": "1768212", 168 "weight": 7, 169 "title": "蓝色特快上的秘密", 170 "category": "剧情/悬疑/犯罪", 171 "tags": "阿加莎·克里斯蒂/推理/英剧/英国/波洛/悬疑/侦探/Poirot", 172 "scene": "douban_movie", 173 "pubTime": "0", 174 "modifyTime": "0", 175 "expireTime": "0", 176 "status": 1, 177 "extFields": "{}" 178 } 179 ] 180 } 181}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

PPDB:今晚老齐直播

【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。

FLV文件格式

1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  

SpringBoot整合Redis乱码原因及解决方案

问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa