我们正在尝试为我们的系统创建一个“下一步”推荐器:给定一个用户和一个上下文,我们希望有一个模型能够给出用户可能想要采取的下一步建议。
Matchbox 推荐器接受评分、用户和项目。在我们的案例中,下一步是项目,用户和其上下文的组合是用户,使用数据是评分。
“评分”:
UserID ScreenID Rating1 ScreenA 501 ScreenB 353 ScreenA 553 ScreenB 603 ScreenC 105 ScreenA 505 ScreenB 355 ScreenD 10
“用户”:
UserID EmployeeID Role ContextCategory ContextTask1 078570 Representative C Assignment/Reassignment3 076545 Representative A Assignment/Reassignment5 076545 Representative G Assignment/Reassignment
我已经训练了一个模型,创建了一个预测实验,并发布了 Web 服务。我不得不更改 Web 服务的输入,要求提供用户及其上下文的组合(本质上是用户特征),并期望 Web 服务根据其他相似“用户”给我提供建议:
然而,当我测试 Web 服务时,它只是返回了所有训练用户及其建议的列表,而不是我输入的指定新用户/冷启动用户的建议。
结果: {“Results”:{“output1”:{“type”:”table”,”value”:{“ColumnNames”:[“User”,”Item 1″,”Item 2″,”Item 3″],”ColumnTypes”:[“String”,”String”,”String”,”String”],”Values”:[[“1″,”ScreenA”,”ScreenB”,”ScreenC”],[“3″,”ScreenA”,”ScreenB”,”ScreenC”],[“5″,”ScreenA”,”ScreenB”,”ScreenC”]]}}}}
关于为 Matchbox 推荐器创建训练模型,有很多文档/示例,但大多数都以项目作为输入,并给出推荐项目作为输出。我找不到任何以用户作为输入,并将其转换为有用 Web 服务的示例。
回答:
这是冷启动问题。为了允许没有评分的用户使用,你需要使用用户特征来训练推荐器 – https://msdn.microsoft.com/en-us/library/azure/dn905846.aspx
这是一个示例,其中用户和项目特征被传递用于冷启动情况 – https://gallery.cortanaintelligence.com/Experiment/Recommender-Restaurant-ratings-2
这是上述情况的预测实验,展示了如何在这种情况下为 Web 服务设置实验 – https://gallery.cortanaintelligence.com/Experiment/Recommender-Restaurant-ratings-Predictive-Exp-2