获取推荐结果
在线服务创建完成,部署成功后,当服务状态会显示“运行中”,表示服务状态正常。您可以通过在线预测功能测试推荐结果进一步调整作业参数,也可以通过预测接口来调用API,获取推荐结果。
界面预测
获取预测接口
- 登录RES管理控制台,在左侧菜单栏中选择“推荐业务>自定义场景”,进入自定义场景列表页面。
- 单击“已完成”状态的目标服务名称进入自定义场景详情页面,单击“预测”页签,您可以获取该服务的“API接口地址”。单击,复制接口地址,调用服务。
图3 获取预测接口
调用接口
Mozilla、Google都为REST提供了图形化的浏览器插件,发送处理请求消息。
此处以Postman为例,指导您如何通过调用预测接口获取推荐结果。更多接口信息请参见《推荐系统API参考》。
- 下载Postman软件并安装,您也可以直接在Chrome浏览器添加Postman扩展程序(也可使用其它支持发送post请求的软件)。
- 打开Postman,如图4所示。
- 在Postman界面填写参数。
- 预测请求参数说明。
表1 参数说明 参数
子参数
说明
id
-
主体的id。此参数为必选。
items
-
客体的id列表,非必选项。有下面两种场景使用:
- 在线上策略使用到关联推荐召回策略时需要提供。例如,给用户推荐物品,主体是用户,客体是物品;给物品推荐用户,主体是物品,客体是用户;给用户推荐用户,主体是用户,客体是用户;给物品推荐物品,主体是物品,客体是物品。
- 纯排序场景中,该参数为传入待排序物品列表的字段,传入物品集供模型排序使用。
rec_num
-
推荐个数,默认值为20。此参数为必选。
目前最大配额是20,如需要调整,需要提工单进行调整。
search_info
-
配置动态搜索召回候选集,需要在线服务配置部分增加 "dynamic-search" 候选集,为非必选项。
match_infos
进行召回匹配的参数配置,即搜索的匹配信息。
- label:客体的属性名称(可为字符串或字符串数组类型)。
- value:相应的属性值。
- weight:该属性值的匹配权重,多个匹配条件做加权汇总后按分值从大到小给出候选集。
filter_info
搜索的过滤信息。
- black_list:客体需要过滤的黑名单。
- range:选定一个数值型属性(label),输出的候选集该值必须大于等于设定的值才不会被过滤掉。
- category:选定一个字符串或字符串数组类型属性(label),输出的候选集该值必须包含或等于设定的值才不会被过滤掉。
sort_info
搜索的排序信息。
- label:客体的属性名称。
- orde:排序规则,asc是升序排列,desc是降序排列。
profile_query
-
对用户画像进行字段查询,传入string数组进行查询。
- 单纯用户推荐预测JSON请求体如下,仅针对用户进行个性化推荐。
{ "id":"user1", "rec_num": 10 }
- 全量推荐请求预测样例,增加非必选参数项。
该示例的请求结果作为在线召回的候选集进行在线服务候选集的融合。
{ "id":"user1", "rec_num":20, "items":[ "item1", "item2" ], "search_info":{ "match_infos":[ { "label":"author", "value":"author8", "weight":0.9 }, { "label":"extend_strArray", "value":"walk", "weight":0.8 } ], "filter_info":{ "black_list":[ "item169", "item5555", "c" ], "range":{ "label":"expireTime", "value":1579790256 }, "category":{ "label":"extend_string", "value":"basketball" } }, "sort_info":[ { "label":"score", "order":"asc" }, { "label":"publishTime", "order":"desc" } ] }, "profile_query":[ "gender", "tag" ] }
- 参数填写完成,单击“Send”发送请求,结果会在“Response”下的对话框里显示。其中,“id”为推荐的itemId,“score”为该物品的得分。示例如下:
{ "flow_id": "movielens", "rec_num": 10, "candidates": [ { "score": "0.7978985", "id": "260", "source": "itemcf-UIREC" }, { "score": "0.7043743", "id": "608", "source": "itemcf-UIREC" }, { "score": "0.6727448", "id": "527", "source": "itemcf-UIREC" }, { "score": "0.6604858", "id": "36", "source": "itemcf-UIREC" }, { "score": "0.6387838", "id": "50", "source": "itemcf-UIREC" }, { "score": "0.624376", "id": "593", "source": "itemcf-UIREC" }, { "score": "0.61491776", "id": "296", "source": "itemcf-UIREC" }, { "score": "0.59284353", "id": "858", "source": "itemcf-UIREC" }, { "score": "0.58551335", "id": "318", "source": "itemcf-UIREC" }, { "score": "0.49690145", "id": "1", "source": "itemcf-UIREC" } ], "stats": { "itemcf-UIREC": 10, "hot-DIREC": 0 }, "profile":{ "gender":"male", "tag":"VIP" } }