211
iPhone_iPad_Mac_手機_平板_蘋果apple
離線算法開發手冊__算法規範_開發者指南_推薦引擎-阿裏雲
概述
推薦引擎為了方便開發能力強的客戶針對自己的業務做定製開發,基於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實例化對象。
public class TestPlugIn extends RecAlgorithmPlugIn {
@Override
public void evaluate(RecPlatformContext context) throws Exception {
}
}
RecPlatformContext
推薦平台上下文,用於獲取推薦引擎傳入的參數、啟動ODPSTask以及上報需要報警錯誤。全部方法請查詢javadoc,下麵列舉部分關鍵的方法。
- ODPSTableData runSQLTask(String sql) 啟動SQL任務,如果是select操作返回一個 ODPSTableData對象,可以通過 get(int row,int col)方法獲取ODPS表數據。
public class TestPlugin extends RecAlgorithmPlugIn{
@Override
public void evaluate(RecPlatformContext context) throws Exception {
context.runSQLTask("select * from dual;");
}
}
- 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配置,即可本地測試
public static void main(String[] args) throws Exception {
RecPlatformContext context = new RecPlatformContext("./odps_conf.ini");
context.parseParam("");
Client.run(context, TestPlugin.class);
}
參數是固定的JSON字符串,其中ds,biz,path 都與輸入輸出表的分區相關,external_params表示算法額外參數,prefix表示內置DataForm的表前綴。
{
"ds":"",
"biz":"",
"path":"",
"external_params":{
"p1":"v1"
},
"input_nodes":[
{
"node_code":"",
"data_form":"",
"tableName":"",
"node_weight":1.0
},
{
"node_code":"",
"data_form":"",
"tableName":"",
"node_weight":1.0
}
],
"output_node":{
"node_code":"",
"data_form":"",
"tableName":"",
"node_weight":1.0
},
"prefix":"alidata_rp",
"task_id":""
}
打包
編寫完算法邏輯並且本地測試通過,就可以打包在界麵上傳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’ | 否 |
相關下載
依賴庫
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
<version>1.2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-graph-local</artifactId>
<version>0.18.3-public</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.18.3-public</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>0.18.3-public</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-graph</artifactId>
<version>0.18.3-public</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-commons</artifactId>
<version>0.18.3-public</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>httpclient</groupId>
<artifactId>httpclient</artifactId>
<version>4.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>httpcore</groupId>
<artifactId>httpcore</artifactId>
<version>4.1.2</version>
<scope>provided</scope>
</dependency>
最後更新:2016-11-23 17:31:33
上一篇:
實時修正__用戶指南_推薦引擎-阿裏雲
下一篇:
在線算法開發手冊__算法規範_開發者指南_推薦引擎-阿裏雲
手動擴展係統盤__擴容磁盤概覽_磁盤_用戶指南_雲服務器 ECS-阿裏雲
阿裏雲竟然降價53% 為智慧城市注入新活力
新增媒體工作流__媒體工作流接口_API使用手冊_視頻點播-阿裏雲
獲取可部署的 ECU 列表__資源管理類 API_Open API 參考_企業級分布式應用服務 EDAS-阿裏雲
RAM和STS介紹__權限管理_最佳實踐_對象存儲 OSS-阿裏雲
OSS常用工具匯總__常用工具_對象存儲 OSS-阿裏雲
產品介紹__交通行業解決方案_大數據解決方案-阿裏雲
功能特點__產品簡介_雲數據庫 Redis 版-阿裏雲
根據設備名稱查詢設備信息__接口列表_服務器端API_阿裏雲物聯網套件-阿裏雲
專有網絡類型的實例通過內網連接OSS的方式__配置_用戶指南_專有網絡 VPC-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲