当我们在做推荐系统模型时,有考虑过模型推荐结果的可解释性吗?比方说推荐系统给用户推荐了item A,并在推荐结果后标明该用户最要好的朋友喜欢item A,或者和该用户有着相似兴趣(协同过滤)的人喜欢A,这使得推荐结果非常透明且具有说服力,能够提升用户的接受度.这篇论文<Learning from User Feedback on Explanations to Improve Recommender Models>就从可解释性出发,提出了一个新的框架ELIXIR,来提升推荐系统的效果.

简介

推荐要得到用户的信任,就要让用户理解到当前推荐结果是和之前行为(搜索,点击,喜欢,评论等)有着关联,这样用户就可以对推荐结果给出肯定或反对的反馈,从而影响下一次的推荐结果.这篇论文就是通过一个Active Learning的框架,通过用户在可解释性的推荐结果上的行为线索,提升推荐效果.如下图所示,Alice收到一个电影推荐Fight Club,基于历史观看和item2item,该推荐结果伴随着3个相关的电影(Alice之前喜欢的),出于以下原因:

  • exp1 有着喜欢的演员
  • exp2 结局有惊喜
  • exp3 有着暴力的内容

我们看到alice喜欢前两部推荐的电影不喜欢包含暴力内容的推荐,当给予alice有解释性的推荐结果后,alice会给出不同类型的反馈结果,这就是推荐系统需要学习的.不过Alice也可能不喜欢推荐系统的解释,也有可能她之前这些电影都喜欢,现在不喜欢了,这也会使得推荐系统更加"困惑".如果alice能告诉推荐系统她喜欢演员Brad Pitt,喜欢有惊喜的结局和讨厌暴力,然而现实是用户不愿意花时间去填写这种信息.这篇论文就是探讨如何使用用户在可解释推荐结果的反馈.主要有以下两个问题:

  • 反馈:如何引导用户在可解释性的推荐结果上做反馈,而不给用户增加负担?
  • 可行性:如何使用这些反馈,影响用户的下一次推荐?

该文提出的方法给用户两个反馈的选择,对可解释的与推荐item相关的的选择喜欢/不喜欢,这样就能形成推荐和可解释item的pair对<rec, exp>.需要注意的是,用户对exp的item需要非常熟悉,并且这种反馈方式让用户体验非常好,不用思考rec和exp之间的关联,而且能产生大量<rec,exp>的pairs.有了这些pairs就可以构建user-feedback矩阵了,该矩阵不可避免是稀疏的.为了解决这个问题论文还做了数据增强,用LSH为每个<rec,exp>pair找最近邻扩充样本.该论文提出的核心方法就是通过用户反馈矩阵和先验的相似度矩阵学习用户潜在的向量.

ELIXIR框架

首先定义所有的items集合I = {v1, v2, ..., v|i|},和用户历史交互Hu, 以往的推荐系统只用了用户历史交互数据Hu,该框架使用了pair-level的用户反馈Fu = {-1, 0, +1}|I|*|I|,Fu(vi, vj)表示用户u推荐的vi和可解释的item vj, 1表示喜欢它们之间的相似度,0表示没反馈,-1表示不喜欢他们之间的相似度.

因为item极为稀疏,所以该文在图上使用了label propagation(LP) algorithm去缓解数据稀疏,节点表示items,边表示item之间的相似度,假节点vij表示有标签的pair对<vi, vj>, Fu(vi, vj) != 0,并有下式:

vi向量表示物品i的特征,vij的向量表示两物品的几何平均.然后我们就可以为这样的假节点使用cos相似度寻找k近邻.最终我们就要优化下式:

生成推荐结果:该文使用了RECWALK,一个基于随机游走的方法,该模型的输入是一个异质图。

节点有两种类型,用户和item,边表达了用户和item的关系和item之间的相似度.

在RECWALK中,为用户u推荐item vi的分数由下式计算, PPR(u, vi)表示个性化的pagerank分:

alpha表示restart概率,eu向量表示用户one-hot向量,beta表示走一条边的概率,由上式我们可以看到,一次游走有1-alpha的概率返回用户节点u ,item中PPR(u,v)分最高的将被推荐给用户u.

生成exp

rec已经被选出推荐给用户u,Item-level的exp推荐用了PRINCE算法.我们需要计算每个exp的item对推荐rec的贡献度,找出topk贡献度的作为exp,如下式所示:

在RECWALK,item之间相似度用矩阵S显示表达:

为了包含用户反馈Fu,式(2)引入了用户向量矩阵wu,式(2)中的g将item的统一向量表达转变成了用户表达:

代入到式(2)就是:

最终我们的推荐模型如下:

从实验看,融合用户反馈的方法的推荐离线指标还是不错的,更多细节参考原文.

参考文献:

ELIXIR: Learning from User Feedback on Explanations to Improve Recommender Models

从用户反馈的可解释性提升推荐模型

从用户反馈的可解释性提升推荐模型相关推荐

  1. 论文浅尝 | 基于用户反馈的交互式自然语言回答系统提升机制

    本文转载自公众号:图谱学苑. 今天介绍的工作是An Interactive Mechanism to Improve Question Answering Systems via Feedback,作 ...

  2. 深度学习核心技术精讲100篇(二十二)-深度解析数学建模核心知识之搜索与推荐模型中用户建模原理

    前言 用户建模是搜索与推荐模型的核心技术.其实很多人对用户模型的概念比较模糊,用户模型更多是在产品生命周期中起关键作用,其结合数据.反馈.行为三个方面的信息总结概括出产品用户模型. 01 背景与意义 ...

  3. 用隐式反馈做推荐模型,你做对了吗

    现在大家都习惯用隐式反馈来学习推荐模型,并作用于线上推荐系统(十方也不例外).大量的隐式反馈数据确实缓解了数据稀疏的问题,但是这些数据很多并没有反馈用户真正的需求.拿电商举例,大量的点击,并不会带来支 ...

  4. 机器学习在高德用户反馈信息处理中的实践

    简介: 本文主要介绍针对用户反馈的文本情报,如何利用机器学习的方法来提高大量用户数据的处理效率.尽可能实现自动化的解题思路. 背景 作为国内领先的出行大数据公司,高德地图拥有众多的用户和合作厂商,这为 ...

  5. 【推荐实践】用户行为序列推荐模型

    文章作者:汪剑 出门问问 算法工程师 编辑整理:Hoh Xil 导读:今天我们谈谈用户行为序列上的推荐模型.首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最 ...

  6. 从用户反馈看简书APP

    最近在系统地学习"第三节课"的产品经理课程.有一个模块是通过用户反馈发现问题,课间思考作业是以简书为例,整理简书在App store的点评情况.恰好我也是简书的用户,同时手机上也装 ...

  7. 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 电子商务网站数量迅速上升,将电子商务网站浏览者变为实际消费者,满 ...

  8. PMCAFF问答精选 | 对于用户反馈,产品经理需要第一时间给出回应吗?

    出品|PMCAFF产品经理社区 编辑|夏然(lxr0907) 产品经理圈一直流行着用户为王.体验至上的"真理",辣么对于用户反馈,产品经理需要在第一时间给出回应吗?下面我们来听听奋 ...

  9. 需求分析||如何分析用户需求-以摩拜单车用户反馈为例

    分析用户需求是产品经理必不可少的一项技能,那么收到用户的反馈后,如何对需求进行优先级分类呢?最后如何建立需求池?下面以摩拜单车app点评为例,进行了比较详细的分析. 由于是之前做的分析,数据比较过时, ...

最新文章

  1. linux终端程序如何编写,[LINUX]利用Ncursesw编写支持中文的终端程序
  2. Git常用命令速查表
  3. gitlab备份与还原:配置文件解读、定时备份、云备份
  4. 算法训练营09-深度优先和广度优先
  5. Android开发之Android Studio第三方库的六种依赖讲解说明
  6. 飞鸽传书 2010Beta2.0正式版预计本月内即可上线
  7. microsoft visual c++ 编译c语言,Microsoft Visual C++ 程序的部署方法
  8. 有钱了不起?!苹果猎头挖到马斯克没脾气,特斯拉股东公开求收购
  9. 批量pingIP脚本
  10. 〖Python 数据库开发实战 - MySQL篇⑤〗- 为大家推荐几款经典的数据库可视化工具
  11. 微信发红包-测试用例(全)
  12. 既是老师又是师兄的临别箴言
  13. 拼多多关键搜索、商品列表接口、商品详情接口
  14. 二维码活码的诞生、技术原理及使用场景
  15. python的pandas重复值处理(duplicated()和drop_duplicates())
  16. 2019届华为实习生招聘
  17. hangfire mysql_Hangfire 后台日志 The underlying provider failed on Open 错误
  18. Gitlab配置Gitlab-Runner实现简单的CI/CD
  19. 客户端Mock服务端的JSON数据
  20. python爬取小说写入txt_零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版...

热门文章

  1. [POJ1155]TELE
  2. excel层级数据获取_量化获取股票市场及金融财经数据到Excel
  3. Java实现归并排序 Merge Sort
  4. 北斗导航 | 卫星导航发展史
  5. mysql索引组织结构_MySQL中创建及优化索引组织结构的思路(3)
  6. 函数调用规范__cdecl和__stdcall的区别
  7. 未来物联网全栈开发 --JavaScript or Python?
  8. mysql eval,mysql中是否有类似于eval的写法的,答案在这里
  9. java例7_在Java 7中处理周数
  10. [AHOI2014/JSOI2014]支线剧情