阅读211 返回首页    go 阿里云 go 技术社区[云栖]


离线算法开发手册__算法规范_开发者指南_推荐引擎-阿里云

概述

推荐引擎为了方便开发能力强的客户针对自己的业务做定制开发,基于ODPS-SDK二次开发,提供推荐引擎自己的SDK。公测版目前支持ODPS原有的操作,如SQL Task、MapReduce Task、Graph Task。之后会逐渐增加对阿里机器学习平台(PAI)及EMR的支持。目的是给用户统一的接口使用,降低开发成本。

推荐引擎提供了适用于个性化推荐的多种算法和模板,了解详情请访问系统内置算法和模板说明

什么是DataForm?

DataForm

推荐引擎对整个离线推荐算法流程做了数据抽象。每种数据抽象就是一种DataForm,DataForm实体存储对应ODPS的一张表。比如标准的ITEMCF推荐流程。需要输入用户对物品的评分,这个评分矩阵就可以抽象成一个DataForm,即附件的 USER_ITEM_SCORE;产生的推荐列表,即USER_ITEM_REC_LIST,生成用户对物品的评分有很多种方法,每种方法就是我们要实现的算法。所以推荐引擎的算法输入输出都是标准化的。

算法类目

为了进一步标准化,我们会抽象出一些标准的计算输入输出模式,比如解析物品数据得到物品特征的步骤,一般基于内容的推荐都会做这一步。它的输入输出固定为 ITEM_META,ITEM_FEATURE。我们把一组特定输入输出的算法归到同一个算法分类,新建算法的时候必须要指定算法类目,这样推荐引擎才知道如何给你需要的参数,已经如何把这个算法放到算法流程的合适位置。

自定义

公测版本目前不支持用户自定义DataForm和算法类目,后续会根据客户需求来评估自定义的模式。也希望客户能够和我们积极沟通,完善目前的推荐范式。

进阶的ODPS开发

因为推荐引擎是基于ODPS运算的,所以开发离线算法需要ODPS的开发能力。

ODPS开发能力 推荐引擎可以完成的工作
学会ODPS SQL和数据导入导出。可以完成基本的数据转换和数据清洗工作。 准备数据
精通SQL和UDF 开发简单的规则性算法,如tfidf
学会MR和Graph 开发复杂逻辑算法,如itemcf、逻辑回归

离线算法开发

JAVA开发

开发准备

客户需要先下载推荐平台的SDK jar包。将下载的jar包以及依赖的jar包加到java的classpath,或者通过IDE构建。后续会提供Maven配置,客户可以使用Maven构建工程。

SDK中主要用到的类

RecAlgorithmPlugIn

客户开发的每个算法都要继承这个基类。实现evalute 方法。 传入RecPlatformContext实例化对象。

  1. public class TestPlugIn extends RecAlgorithmPlugIn {
  2. @Override
  3. public void evaluate(RecPlatformContext context) throws Exception {
  4. }
  5. }

RecPlatformContext

推荐平台上下文,用于获取推荐引擎传入的参数、启动ODPSTask以及上报需要报警错误。全部方法请查询javadoc,下面列举部分关键的方法。

  • ODPSTableData runSQLTask(String sql) 启动SQL任务,如果是select操作返回一个 ODPSTableData对象,可以通过 get(int row,int col)方法获取ODPS表数据。
  1. public class TestPlugin extends RecAlgorithmPlugIn{
  2. @Override
  3. public void evaluate(RecPlatformContext context) throws Exception {
  4. context.runSQLTask("select * from dual;");
  5. }
  6. }
  • ActivityNode context.getOutputNode() 获取输出Node元信息
  • List<ActivityNode> context.getNodesByDataForm(ActivityNode.RecPlatformDataForm df)

获取输入Node元信息列表。 ActivityNode.RecPlatformDataForm 是DataForm的枚举类型。每个算法节点的输入按照DataForm分组构建一个Map表。上面两个方法也规定了离线算法是多输入单输出的算子。

  • String context.getExtParam(String key) 获取算法额外参数。

ActivityNode

Node元信息。包含nodeCode,tableName,alg,nodeWeight,datafrom字段

  • nodeCode 表示算法的唯一标识
  • tableName 表示算法的输出数据表,对于系统内置dataform,tablename是”前缀+dataform“的格式拼接,且会在业务初始化时新建完成。
  • dataform 表示算法的输出数据抽象格式
  • alg 表示在当前流程中的唯一标识,默认为”nodeCode+节点顺序“格式拼接。对应数据表的alg分区值。用于区分流程中多次出现的相同算法。

本地测试

main函数里面用文件的方式加载ODPS配置,即可本地测试

  1. public static void main(String[] args) throws Exception {
  2. RecPlatformContext context = new RecPlatformContext("./odps_conf.ini");
  3. context.parseParam("");
  4. Client.run(context, TestPlugin.class);
  5. }

参数是固定的JSON字符串,其中ds,biz,path 都与输入输出表的分区相关,external_params表示算法额外参数,prefix表示内置DataForm的表前缀。

  1. {
  2. "ds":"",
  3. "biz":"",
  4. "path":"",
  5. "external_params":{
  6. "p1":"v1"
  7. },
  8. "input_nodes":[
  9. {
  10. "node_code":"",
  11. "data_form":"",
  12. "tableName":"",
  13. "node_weight":1.0
  14. },
  15. {
  16. "node_code":"",
  17. "data_form":"",
  18. "tableName":"",
  19. "node_weight":1.0
  20. }
  21. ],
  22. "output_node":{
  23. "node_code":"",
  24. "data_form":"",
  25. "tableName":"",
  26. "node_weight":1.0
  27. },
  28. "prefix":"alidata_rp",
  29. "task_id":""
  30. }

打包

编写完算法逻辑并且本地测试通过,就可以打包在界面上传jar包注册算法。需要注意的是, 所有依赖包都不要打入jar包,包括SDK本身。

界面注册

配置流程

系统内置DataForm

输入类DataForm

作为整个算法流程的输入,无法导入在线存储。不区分场景和abtest

USER_META

描述:用户原始数据,由客户上传或者日志解析。

字段

列名 数据类型 注释 Nullable
user_id string 用户ID,可以是AID,device id,淘宝ID等各种唯一标识用户身份的ID。不能出现(u01-u03)特殊字符。以下user_id字段同此意
tags string 标签-标签值kv串。不同tag之间用u02分隔,tag和value之间用u03分隔(方括号不保存在数据库中,以下同)。[t1u03v1u02t2u03v2…]
比如用户有两个标签年龄和性别,tag可以取age,gender;value 取对应的值,如18、1
config_name string 参见type分区说明
config_value string 参见type分区说明

分区字段

分区名 数据类型 注释 Nullable
type string type分区有两个取值:data和config
取值为data:保存数据,该分区中config_name和config_value两个字段均为空
取值为config:保存配置数据,该分区只有config_name和config_value两个字段不为空,其他字段均为空。
config_name字段中的值为tags中的key,每个key一条记录,对应的config_value取值为mv_enum,kv_num,sv_enum,sv_num,分别代表多值枚举型,KV数值型,单值枚举型,单值数值型四种标签取值类型
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
ITEM_META

描述:物品原始数据,由客户上传或者日志解析。

字段

列名 数据类型 注释 Nullable
item_id string 物品ID,唯一标识
category string 物品所属类目,最好以ID的形式给出
keywords string 关键词串。关键词可以有权重(需要归一化到0-1之间),也可以没有权重,没有权重时所有词的权重都是1。Keywords之间用u02分隔,keyword和score之间用u03分隔(如果score存在)[kw1u03s1u02kw2u03s2u02…] 是,不过category,keywords,properties,description,bizinfo五者不能都为空
description string 用于描述这个物品C的一段文本
properties string 属性-属性值kv串。不同key之间用u02分隔,key和value之间用u03分隔。不同property的key最好以ID的形式给出(注释1)[k1u03v1u02k2u03v2…]
比如电影作为item,那么properties中的key可以是演员、风格、制片人等
bizinfo string 物品的业务信息,KV格式。不同KV之间以u02分隔,key和value之间以u03分隔。可以留NULL。bizinfo和properties的区别在bizinfo不参与特征提取的计算
config_name string 参见type分区说明
config_value string 参见type分区说明

分区字段

分区名 数据类型 注释 Nullable
type string type分区有两个取值:data和config
取值为data:保存数据,该分区中config_name和config_value两个字段均为空
取值为config:保存配置数据,该分区只有config_name和config_value两个字段不为空,其他字段均为空。
config_name字段中的值为tags中的key,每个key一条记录,对应的config_value取值为mv_enum,kv_num,sv_enum,sv_num,分别代表多值枚举型,KV数值型,单值枚举型,单值数值型四种标签取值类型
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定

REC_ITEM_INFO

描述:可被推荐物品及信息,由客户上传。

字段

列名 数据类型 注释 Nullable
item_id string 物品ID,唯一标识。本表中的物品都是允许被推荐的物品
item_info string 如果业务方希望RecEng在返回推荐物品时同时返回物品的其他信息,保存在这里。RecEng不需要了解item_info的内部格式,原样返回给业务方。
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
type string 固定为‘data’

USER_BEHAVIOR

描述:用户行为类,由客户上传或者日志解析。

字段

*行为类数据(user_behavior)注意:如果业务方无法上传用户行为表,并且业务方使用了UT埋点,则可以由RecEng从UT日志中解析出用户行为表。

列名 数据类型 注释 Nullable
user_id string 用户ID
item_id string 物品ID
bhv_type string 行为类型:
view:物品曝光
click:用户点击物品
collect:用户收藏了某个物品
uncollect:用户取消收藏某个物品
search_click:用户点击搜索结果中的物品
commen:用户对物品的评论
share: 分享
like:点赞
dislike:点衰
grade:评分
consume:消费
use:观看视频/听音乐/阅读
行为表记录的用户行为用于用户偏好建模
bhv_amt double 用户对物品的评分、消费、观看时长等。
bhv_cnt double 行为次数,默认为1,消费可以埋购买件数
bhv_datetime datetime 行为发生的时间,UTC格式。
content string 用户对物品的评价文本
media_type string 如果bhv_type=share,该字段记录分享到目标媒体。短信:sms,邮件:email,微博:sina_wb,微信好友:wechat_friend,微信朋友圈:wechat_circle,QQ空间:qq_zone,来往好友:laiwang_friend,来往动态:laiwang_circle
pos_type string 行为发生的位置类型,和下面position字段联合使用,有三种取值:
ll:经纬度格式的位置信息
gh:geohash格式的位置信息
poi:poi格式的位置信息
position string 行为发生的位置,根据pos_type有不同的取值格式:
如果pos_type=ll,position格式[longitude:latitude]
如果pos_type=gh,position格式[geohashcode]
如果pos_type=poi,position格式[poi_string]
env string JSON String
{
“IP”:””,
“network”:””,
“device”:””
}
IP: IP地址。行为发生时用户的IP地址。IPv4为点分十进制格式;IPv6为冒号分隔的标准6段格式(不使用IPv6嵌套IPv4的格式)
network: 网络制式。行为发生时用户所使用的接入网络,取值为solid,2G,3G,4G,WIFI。分别表示固网,2G,3G,4G和WIFI接入方式
device: 发生行为所使用的设备,包括mobile,pad,pc等,可添加
其他自定义环境变量也可以添加到JSON中
trace_id string 返回的推荐列表用于跟踪效果。如果对item_id 的行为不是来自推荐引导,则为NULL
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
type string 固定为‘data’

离线算法类DataForm

可以作为离线流程的中间数据,也可导出到在线存储

USER_ASSET

描述:用户历史行为记录汇总。

字段

列名 数据类型 注释 Nullable
user_id string 用户ID
assets string 记录用户历史曾经消费过的物品清单,KV组格式。某些业务需要利用用户资产进行推荐过滤,或用户行为建模。一个kv组描述用户的一项资产。KV组之间用u02连接,kv组内的不同KV间用u03分隔,key和value间用u04分隔。Key可以是:item_id:物品ID, bhv_type:行为类型
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为‘data’

ITEM_POOL

描述: 推荐池,用于导出到线上数据,做规则匹配

字段

列名 数据类型 注释 Nullable
item_id string 物品ID
category string 物品所属类目,最好以ID的形式给出
item_info string 如果业务方希望RecEng在返回推荐物品时同时返回物品的其他信息,保存在这里。RecEng不需要了解item_info的内部格式,原样返回给业务方。
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为‘data’

ITEM_FEATURE

描述:物品特征

字段

列名 数据类型 注释 Nullable
item_id string 物品ID,唯一标识
feature string 物品特征,向量形式。视向量的稀疏程度,有两种表示方式:
平坦的向量形式:[f1u02f2u02…]
稀疏的向量形式:[p1u03f1u02p2u03f1…]
其中pi代表非0特征fi的位置,fi都是double类型的数字,以文本形式存储
simhash string feature的simhash值。有两个用途:
1.加速item similarity计算
2.当item_id不能很好的区分物品时(同样的物品存在多个item id),RecEng利用物品的simhash在线去重
config_name string 参考type定义
config_value string 参考type定义

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string type分区有两个取值:data和config
取值为data:保存数据,该分区中config_name和config_value两个字段均为空
取值为config:有两条配置。
config_name为feature_len:feature的维度;
config_name为density:feature的存储形式,0表示稀疏格式,1表示平坦格式

USER_FEATURE

描述:用户特征

字段

列名 数据类型 注释 Nullable
user_id string 用户ID,唯一标识
feature string 用户特征,向量形式。视向量的稀疏程度,有两种表示方式:
平坦的向量形式:[f1u02f2u02…]
稀疏的向量形式:[p1u03f1u02p2u03f1…]
其中pi代表非0特征fi的位置,fi都是double类型的数字,以文本形式存储
simhash string feature的simhash值
config_name string 参考type定义
config_value string 参考type定义

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string type分区有两个取值:data和config
取值为data:保存数据,该分区中config_name和config_value两个字段均为空
取值为config:有两条配置。
config_name为feature_len:feature的维度;
config_name为density:feature的存储形式,0表示稀疏格式,1表示平坦格式

SYMMETRIC_FEATURE

描述:用户物品对称特征

字段

分区字段

列名 数据类型 注释 Nullable
id string 用户ID,如果type=user_data;物品ID,如果type=item_data
feature string 用户或者物品特征,向量形式。视向量的稀疏程度,有两种表示方式:
平坦的向量形式:[f1u02f2u02…]
稀疏的向量形式:[p1u03f1u02p2u03f1…]
其中pi代表非0特征fi的位置,fi都是double类型的数字,以文本形式存储
simhash string item feature的simhash值。用途和item_feature表一样。
config_name string 参考type定义
config_value string 参考type定义

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string type分区有三个取值:user,item,config
取值为user:
保存user feature数据,该分区中config_name和config_value两个字段为空.
取值为item:
保存item feature数据,该分区中config_name和config_value两个字段为空.
取值为config:有两条配置:
config_name为feature_len:feature的维度;
config_name为density:feature的存储形式,0表示稀疏格式,1表示平坦格式

USER_ITEM_FEATURE

描述:用户物品交互特征

字段

列名 数据类型 注释 Nullable
user_id string 用户ID
item_id string 物品ID
feature string 用户或者物品特征,向量形式。视向量的稀疏程度,有两种表示方式:
平坦的向量形式:[f1u02f2u02…]
稀疏的向量形式:[p1u03f1u02p2u03f1…]
其中pi代表非0特征fi的位置,fi都是double类型的数字,以文本形式存储
simhash string item feature的simhash值。用途和item_feature表一样。
config_name string 参考type定义
config_value string 参考type定义

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string type分区有两个取值:data和config
取值为data:保存数据,该分区中config_name和config_value两个字段均为空
取值为config:有两条配置。
config_name为feature_len:feature的维度;
config_name为density:feature的存储形式,0表示稀疏格式,1表示平坦格式

USER_ITEM_SCORE

描述:用户物品偏好评分

字段

列名 数据类型 注释 Nullable
user_id string 用户ID
item_score string 用户对有评分物品的评分,KV组格式。KV之间以u02分隔,key和value之间以u03分隔,格式:[Item_id1u03score1u02item_id2u03score2…]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

ITEM_ITEM_REC_LIST

描述:物品-物品推荐候选集

字段

列名 数据类型 注释 Nullable
item_id string 物品ID,唯一标识
rec_list string 基于item相似度推荐的item清单,选取topN个最相似的结果,每个推荐结果包括以下内容:
item_id:被推荐物品的ID
weight:被推荐物品与输入物品的相关性
alg:推荐策略标识,CB多列表合并时,节点附加,没有使用CB节点则为空
simhash:用于在线去重。如无此需求,可为空
rec_list依照weight从大到小排序
不同的推荐物品之间用u02分隔;每个推荐物品的内部信息用u03分隔,格式:[itemidu03weight(u03alg)(u03simhash)]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

USER_ITEM_REC_LIST

描述:用户-物品推荐候选集

字段

列名 数据类型 注释 Nullable
user_id string 用户ID,唯一标识
rec_list string 基于item相似度推荐的item清单,选取topN个最相似的结果,每个推荐结果包括以下内容:
item_id:被推荐物品的ID
weight:被推荐物品与用户的相关性
alg:推荐策略标识,CB多列表合并时,节点附加,没有使用CB节点则为空
simhash:用于在线去重。如无此需求,可为空
rec_list依照weight从大到小排序
不同的推荐物品之间用u02分隔;每个推荐物品的内部信息用u03分隔,格式:[itemidu03weight(u03alg)(u03simhash)]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

DEFAULT_REC_LIST

描述:默认推荐候选集

字段

列名 数据类型 注释 Nullable
rec_list string 基于item相似度推荐的item清单,选取topN个最相似的结果,每个推荐结果包括以下内容:
item_id:被推荐物品的ID
weight:被推荐物品与用户的相关性
alg:推荐策略标识,CB多列表合并时,节点附加,没有使用CB节点则为空
simhash:用于在线去重。如无此需求,可为空
rec_list依照weight从大到小排序
不同的推荐物品之间用u02分隔;每个推荐物品的内部信息用u03分隔,格式:[itemidu03weight(u03alg)(u03simhash)]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

TAG_ITEM_REC_LIST

描述:基于标签的推荐候选集

字段

列名 数据类型 注释 Nullable
tag_id string tag_id ,不限于用户tag,物品tag。比如类目的推荐列表,城市的推荐列表
rec_list string 基于item相似度推荐的item清单,选取topN个最相似的结果,每个推荐结果包括以下内容:
item_id:被推荐物品的ID
weight:被推荐物品与用户的相关性
alg:推荐策略标识,CB多列表合并时,节点附加,没有使用CB节点则为空
simhash:用于在线去重。如无此需求,可为空
rec_list依照weight从大到小排序
不同的推荐物品之间用u02分隔;每个推荐物品的内部信息用u03分隔,格式:[itemidu03weight(u03alg)(u03simhash)]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

RANKING_MODEL

描述:LTR模型数据

字段

列名 数据类型 注释 Nullable
group_id string 特征组id,唯一
value string KV串,由feature_id和对应的weight组成:[f_id1u03w1u02f_id2u03w2…]
config_name string 保留字段
config_value string 保留字段

分区字段

分区名 数据类型 注释 Nullable
ds string 日期分区,表示数据的业务日志,启动数据导入任务的时候指定。格式yyyymmdd
biz string 业务分区,值为biz_code,启动数据导入任务的时候指定
path string 流程分区,用于区分场景和abtest,值系统分配
alg string 算法名,值为node_code+顺序后缀
type string 固定为 ‘data’

相关下载

依赖库

  1. <dependency>
  2. <groupId>net.sf.json-lib</groupId>
  3. <artifactId>json-lib</artifactId>
  4. <version>2.4</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>xom</groupId>
  8. <artifactId>xom</artifactId>
  9. <version>1.2.5</version>
  10. <scope>provided</scope>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.aliyun.odps</groupId>
  14. <artifactId>odps-graph-local</artifactId>
  15. <version>0.18.3-public</version>
  16. <scope>provided</scope>
  17. </dependency>
  18. <dependency>
  19. <groupId>com.aliyun.odps</groupId>
  20. <artifactId>odps-sdk-core</artifactId>
  21. <version>0.18.3-public</version>
  22. <scope>provided</scope>
  23. </dependency>
  24. <dependency>
  25. <groupId>com.aliyun.odps</groupId>
  26. <artifactId>odps-sdk-mapred</artifactId>
  27. <version>0.18.3-public</version>
  28. <scope>provided</scope>
  29. </dependency>
  30. <dependency>
  31. <groupId>com.aliyun.odps</groupId>
  32. <artifactId>odps-sdk-graph</artifactId>
  33. <version>0.18.3-public</version>
  34. <scope>provided</scope>
  35. </dependency>
  36. <dependency>
  37. <groupId>com.aliyun.odps</groupId>
  38. <artifactId>odps-sdk-commons</artifactId>
  39. <version>0.18.3-public</version>
  40. <scope>provided</scope>
  41. </dependency>
  42. <dependency>
  43. <groupId>httpclient</groupId>
  44. <artifactId>httpclient</artifactId>
  45. <version>4.1.2</version>
  46. <scope>provided</scope>
  47. </dependency>
  48. <dependency>
  49. <groupId>httpcore</groupId>
  50. <artifactId>httpcore</artifactId>
  51. <version>4.1.2</version>
  52. <scope>provided</scope>
  53. </dependency>

推荐引擎SDK jar包下载

推荐引擎SDK javadoc下载

最后更新:2016-11-23 17:31:33

  上一篇:go 实时修正__用户指南_推荐引擎-阿里云
  下一篇:go 在线算法开发手册__算法规范_开发者指南_推荐引擎-阿里云