月中在香港参加recsys2013会议,文章不少,对我有价值的并不算多,再跟目前工作相关的就更少了。这里过滤了几篇我觉得比较有意思的文章,加上了自己的理解,作为导读。

A Fast Parallel SGD for Matrix Factorization in Shared Memory Systems (best paper,p249.pdf)

这篇来自台湾国立大学libsvm团队的文章获得了本次大会的best paper。无论文章还是ppt,思路表达得非常清晰饱满。这是一篇偏工程实现的文章,比较适合搭平台的,未必对纯粹做model的算法人员有帮助,但仅仅为了开拓一下视野也值得一看。

基于SGD的矩阵分解的并行化计算有过很多的实践,因为无重叠的(p_u,q_v) pair的更新可以独立进行,所以利用这个特性可以进行并行化。这篇文章针对并行化矩阵分解中存在的locking problem和memory discontinuity问题,提出了一种矩阵分解的高效算法,主要的思路是把评分矩阵分成至少n+1*n+1个block(n是计算节点个数),随机为计算节点分配一个合适的block(解决第一个问题),每个节点内则按user序或item序进行更新(解决第二个问题)。过程比较简单,看文章里地算法流程应该就很明了。最后,秉承这个实验室的一贯作风,他们把自己的方法实现并开源(libMF)。

题外话:这届会议上仍然有很多矩阵分解相关的文章,这些理论性的工作是学术界比较喜欢做的事情,而且也是自netflix prize以来形成的比较有“推荐领域”特色的技术。但个人认为它对数据类型和稠密程度有一定的要求(netflix prize提供的数据稠密度在1%左右,算很稠密了,并且是1-5分的分值预测问题,所以SVD会比较容易得到好的效果),且容易碰到cold-start问题,使用过程中需要相当谨慎。但一直以来(包括这次会议)也有不少把这项技术用于0-1无负面反馈的数据(实际中更多碰到的就是这种0-1的top-k推荐问题),可以仔细实践一下,再下定论。

Efficient Top-N Recommendation for Very Large Scale Binary Rated Datasets (p273.pdf)

作者是MSD音乐推荐竞赛的优胜者,这篇文章是他的优胜文章的扩展版。因为MSD数据的特点,作者的思路主要聚焦于0-1且主要是正向反馈的数据集(这种数据集跟我们日常面对的数据集是类似的)。做推荐的思路也比较接近传统的推荐方法——基于CF的各种优化。这里他主要通过对相似性计算的形式化抽象,提出了一种非对称的相似性矩阵的思路。非对称相似性有时会收到奇效,我们以前就用过一些这样的技巧。文中提到的一些参数化的思想是有价值的,非对称的相似性是通过参数化解决的,推荐时的k近邻问题也是通过参数化的方式解决的(这种参数化的思维方式对于培养实际问题解决时的形式化思维很有帮助)。据称,这样的方式计算效率也很不错。

Learning to Rank Recommendations with the k-Order Statistic Loss (p245.pdf)

这是一篇来自google的文章,非常贴近工程应用,据称文中的算法应用在youtube的推荐上,比原来的要好。文章讨论的主题也是大家最近比较关注的learning to rank,这项技术在解决top-k推荐问题上很受追捧。文中使用的还是基于矩阵分解思想的factor学习,主要创新点在于提出了几个损失函数,既能使用SGD比较快速地训练模型,又同时强调了top-k推荐列表里k个元素的重要性。另外一个比较有意思的就是提出了一个mean maximum rank的评价指标。

To Personalize or Not: A Risk Management Perspective (p229.pdf)

看起来是一篇给推荐唱反调的文章,其实是一个很不错的思考,我之前在考虑推荐的多源融合时也考虑到这个问题——什么时候才应该采用个性化推荐。作者把风险管理的概念引入到推荐领域,对每个推荐结果进行风险分析,并提出了一个切换的策略——什么时候使用个性化的推荐,什么时候使用热门推荐(实际中,也有可能让位给其它类型的业务需求)。其实冷启动问题也是这种思路的一个应用场景。

Rating Support Interfaces to Improve User Experience and Recommender Accuracy (p149.pdf)

来自GroupLens团队的文章,是之前Tag系列工作的延续。其实这是一篇做交互设计的同学更要关注的文章,解决的问题是使得用户的评分数据一致性更好,数据质量更高,这样推荐的质量才会好。提出的解决方案是:1、给item展示合理的Tag信息,2、把该用户历史相关的item评分和item信息提示给用户。并做了一个评分交互系统,大家可以看看文章里的网站页面截图,基本就明白这篇文章在讲什么。将来跟PD和UED合作时也可以对外输出价值观了。

Recommending Branded Products from Social Media (p77.pdf)

来自ebay的这篇文章跟我目前的工作关联度很高,social media website + e-commerce,社交网络的数据可以为电商网站做些什么,这里举的案例是facebook+ebay,你会不会想到来往/微博+淘宝?文章指出,纯粹使用facebook的社交数据,就可以对ebay的品牌推荐做出预测,证明了社交数据与电商数据的相关性。

Nonlinear Latent Factorization by Embedding Multiple User Interests (p65.pdf)

这是来自google的另一篇短文,连作者都是一样的。文章研究的还是基于矩阵分解的模型,要点是:user factor应该比item factor更多样,所以表达上需要更为丰富,而不是像item用同样的k维factor来表达。所以作者提出为user训练多个factor向量,推荐时取factor列表里与item-factor相似度最高的作为user-item相似度。这个假设直观上来说是对的,如果某首歌曲可以用一个factor空间来加以描述其风格等潜在特点,而用户对歌曲的偏好是多风格的,那么是否应该用多个factor空间来描述?其实是一种增加参数来换表达能力的做法,难免不会出现过拟合的情况。

Query-Driven Context Aware Recommendation (p9.pdf)

会议上关于context aware的推荐也不少,关注历史偏好和短时兴趣的融合,类似于会上经常被人提及的介乎与online和offline之间的nearline。文章里介绍的领域比较接近文本和搜索,用LDA来描述用户的偏好,提出了一个融合user, item, context的推荐框架,p(i|p,q)。想对nearline、场景推荐有一些感性认识的同学不妨一看。

这些paper我目前读得还比较粗略,远未到实用的层面。即便只是浅读,也是有好处的,作为工业界的算法工程师,paper要看,但不可多看。看paper可以了解学术界和工业界在做什么,怎么思考这个领域的问题,开拓自己的思路,甚至启发自己走出原来已经禁锢的圈子。但多看则容易陷入做学术的套路,paper是永远看不完的,作为工业界做应用的,谨记熟读百篇不如实现一篇。

转:Recsys2013论文导读的更多相关文章

  1. AeroSpike踩坑手记1:Architecture of a Real Time Operational DBMS论文导读

    又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库.而笔者维护的数据库正是基于社区版本的 Aerospike打造而来.所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospi ...

  2. FPGA 17最佳论文导读 ESE: Efficient Speech Recognition Engine with Compressed LSTM on FPGA

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 后面陆续写一些关于神经网络加 ...

  3. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  4. ISSCC 2017论文导读 Session 14:A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight

    A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Mem ...

  5. ISSCC 2017论文导读 Session 14 Deep Learning Processors,DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN

    转载请注明,本文出自Bin的专栏http://blog.csdn.net/xbinworld,谢谢! DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Process ...

  6. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  7. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network SOC

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  8. 【超分辨率】- CVPR2019中SR论文导读与剖析

    CVPR2019超分领域出现多篇更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路.具体来说,以前论文训练数据主要使用的是人为的bicubic下采样得到的,网络倾向于学习bicubic下采样的逆 ...

  9. Acceleration for ML 论文导读

    Energy efficient parallel neuromorphic architectures with approximate arithmetic on FPGA Motivation ...

随机推荐

  1. ztree树样式的设计

    ztree的功能虽然很是强大,但是唯一有一点就是样式有点普通,所以如果我们需要修改样式,那么就只能进行样式重新覆盖了 样式代码,这些都是根据实际样式进行覆盖 /** * tree的选中样式 */ .c ...

  2. 【Lua】linux下lua+mod_lwt环境搭建

    Lua 是一个小巧的脚本语言.它具有轻量级.可扩展等优势.它可以作为一个强大.轻量的脚本语言,供任何需要的程序使用. LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并 ...

  3. Nginx的Permission denied错误

    Nginx的Permission denied错误 环境: CentOS7 问题描述 今天搭建了nginx+uwsgi+django的环境,之后通过浏览器访问遇到下面问题: 2017/03/31 19 ...

  4. C#笔试题-我的答案

    (1)面向对象的语言具有__继承性_性._封装性_性._多态性_性. (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型. ...

  5. vue基础知识之vue-resource/axios

    Vue基础知识之vue-resource和axios(三)   vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没 ...

  6. postgres entityframework foreignkey

    public class Model { [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identit ...

  7. spring web.xml基本配置

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmln ...

  8. c#实现16进制和字符串之间转换的代码

    以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值. 获取与十六进制字符串中的每个值对应的字符. 将十六进制 string 转换为整型. 将十六进制 string 转换为浮点型. 将字节 ...

  9. jquery ajaxFileUpload异步上传文件

    ajaxFileUpload.js 很多同名的,因为做出来一个很容易. 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http:/ ...

  10. javaweb带属性的自定义标签

    带属性的自定义标签: 1.先在标签处理器中定义setter方法,建议把所有的属性类型都设置为String类型. package com.javaweb.tag; import java.io.IOEx ...