ML.NET 作为 .NET 跨平台的机器学习套件,在回归、预测、分类甚至是图像识别、异常检测都展现出简洁快速的优势,以往的文章已介绍过不再赘述。其实机器学习场景中还有一类非常常见的,就是推荐,特别是在线购物、文娱产品为了提升用户体验,一个比较好的主意就是让用户优先看到他需要的物品、内容,甚至提供用户意料之外又情理之中的产商品。推荐算法正好能够通过数据实现这一目标。

如上图所示,如果我们有用户、商品的购买关系,并且还有用户的评级、评分、评价内容,那么矩阵因子分解算法非常适用。如果我们还能获取到商品本身的一些属性,比如名称、分类、简介、价格的话,那么场感知分解机算法就能发挥特别好的作用。当然,推荐算法比较难的就是冷启动阶段,可能什么数据都没有,初始阶段没有更多选择,那么也只能从相似用户消费记录入手做推荐了,获取用户与购买商品编号的对应关系也算是容易的,此时用得比较多的是一类矩阵因子分解算法。仍然举一个例子,刚刚营业的某书店,基于借阅书的记录,我们给借了《三国志》的读者小强推荐同样借过这本书的小王借看的其他书,可能不一定是名著,不过没关系,这足够达到推荐的效果,因为算法背后的逻辑是相信他们总有其他书是都喜欢看的。

了解到前面的背景知识后,回头我们再看看 ML.NET 的推荐引擎,它同时支持矩阵因子分解和场感知分解算法,官网文档在《教程:使用矩阵因子分解和 ML.NET 生成影片推荐系统》有过详细的介绍。Sergey Tihon 在 ML.NET 的 Github 仓库中提过一个 Issue,详见《"Label" for One-Class Matrix Factorization #873》,其中谈到了 ML.NET 推荐引擎中一类矩阵因子分解算法存在一处缺陷。具体来看 MatrixFactorizationTrainer 类的详情,针对一类矩阵因子分解,在梯度下降时默认观测值都是表示正向的1,而平方误差函数调用的是MatrixFactorization将按枚举值传递给损失函数。参看《Matrix Factorization and Factorization Machines for Recommender Systems》,注意到以下这一页,预测标签始终为1。

所以如果数据集没有更多的特征可用,我们必须指定矩阵因子工厂并提供对应的参数值1而不是按默认的枚举值生成 Trainer。修复后的示例参见:《Fix Label column meaning in Recommendation sample》。

ML.NET 推荐引擎中一类矩阵因子分解的缺陷相关推荐

  1. 探索推荐引擎内部的秘密系列

    最近要用到协同过滤的算法来解决工作中的问题,先学习,以后再把自己的收获总结下来. 转自:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_rec ...

  2. 【转】探索推荐引擎内部的秘密

    from: http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html?ca=drs- 赵 晨婷 , 软件 ...

  3. 探索推荐引擎内部的秘密 - 推荐引擎初探

    最近要用到协同过滤的算法来解决工作中的问题,先学习,以后再把自己的收获总结下来. 转自:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_rec ...

  4. 推荐系统-推荐引擎的架构

    内容来源:<推荐系统实践> 前面介绍了各种各样的数据和基于这些数据的推荐算法.在实际系统中,前面几章提到 的数据大都存在,因此如何设计一个真实的推荐系统处理不同的数据,根据不同的数据设计算 ...

  5. 推荐系统学习(一)——推荐引擎初探

    信息发现 如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信息将变得越来越难. 在这样的情形下,搜索引 ...

  6. 基于协同过滤的推荐引擎

    探索推荐引擎内部的秘密"系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用.同时在理论讲解的基础上,还会结合 Apache Maho ...

  7. 什么是视频内容推荐引擎?

    ▲扫描图中二维码了解音视频技术大会更多信息▲ 翻译.编辑:Alex 本文来自OTTVerse,作者为Krishna Rao Vijayanagar. Easy-Tech #035# 推荐引擎通常是指利 ...

  8. [Python嗯~机器学习]---对于音乐推荐引擎的基本理解

    音乐推荐引擎 数据集 百万歌曲数据库 百万歌曲数据量可以在https://labrosa.ee.columbia.edu/millionsong/ 上下载.原始的数据包含了多年间上百万首歌曲的量化音频 ...

  9. 主流推荐引擎技术及优缺点分析

    本专转自:DataFunTalk 导读: 在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎.个性化推荐引擎.基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点. ...

最新文章

  1. 图神经网络方法总结(Graph Neural Network)
  2. 东芝再曝财务造假丑闻 日企百年老店怎么了?
  3. 通过AI技术研究网红对其粉丝的消费品牌意识的影响
  4. 在服务器上用Fiddler抓取HTTPS流量
  5. HTTPGet 与HTTPPost的区别
  6. 静态链接库与动态链接库的区别(Sqlite\Visual Studio 2017)
  7. matlab逆变换法产生随机数_matlab数值积分方法(一)
  8. Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码
  9. vue项目开发实战案例
  10. CDN的原理技术及使用方法
  11. 数据可视化大屏_大数据可视化应用典型案例
  12. 【机器学习算法】集成学习-1 强学习器的融合学习
  13. Servlet内存马
  14. bluetooth a2dpsink
  15. Linux解压tar.gz和tar.bz2的命令
  16. soul 总是显示登录聊天服务器,用soul聊天莫名其妙被封了号,并没有发广告就被封...
  17. OpenCV学习三十四:watershed 分水岭算法
  18. 使用python生成随机中奖姓名和电话号码并存入excel
  19. 人工智能数学基础--概率与统计11:离散随机变量的超几何分布和负二项分布
  20. Android7.0编译出现问题(Failed to contact Jack server)

热门文章

  1. php变量的判空和类型判断
  2. StackExchange.Redis 使用 (一)
  3. 一款好的折线图、饼图、柱形图
  4. 基于visual Studio2013解决C语言竞赛题之0710排序函数
  5. 在主窗体中打开一个新子窗体,如果已有子窗体,则激活它,而不打开新的。...
  6. sql里如何for循环
  7. imessage_如何在所有Apple设备上同步您的iMessage
  8. 如何在Windows 7、8、10,Vista或XP中删除Windows服务
  9. Android风格ppt,Material Design风格的快手PPT
  10. Pixel相机是怎么做到自动补抓最不错的自拍照