我正在使用ML.Net来利用一级矩阵分解实现推荐引擎。
我的输入数据如下:UserId,ProductId
我像这样[...].AddPredictionEnginePool<DataPoint,Prediction>()
创建我的预测引擎。
使用这些类
public class DataPoint
{
public string UserId { get; set; }
public string ProductId { get; set; }
public Single Label { get; set; }
}
和
public class Prediction
{
public float Score;
}
这很好用,即我可以给推荐引擎一个DataPoint(由一个userId和一个productId组成)并获得一个分数。因此,给定用户的购买历史记录,我可以通过迭代该用户的所有可能产品并推荐得分最高的产品来获得推荐产品。
尽管这可行,但是似乎有点蛮力。我不知道是否有更好的方法可以做到这一点。
我还希望能够附带productId或productId列表,并基于此获得建议(忽略userId部分),但是鉴于我的输入数据,我不知道该怎么做。任何想法或指针将不胜感激。
(我已经看过microsoft的示例代码和教程,但在那儿找不到我的答案。)