通山一中,杀伐曲,吱吱喳喳kyo让封了
- 效率(Efficiency):效率;
- 稳定性(Stability):选择基于变动频度较低的因子来建立推荐算法。例如,如果商品基本固定,用户不断变化,则选择基于item的算法;
- 说服力(Justifiability):如果要考虑说服力,则优先选择基于item的算法,因为比较容易理解;例如,因为你喜欢三星Galaxy,所以给你推荐HTC One;
惊喜度(Serendipity):如果要考虑惊喜度,则优先选择基于用户的推荐。
在工业界,通常采用的推荐算法如下:
- 多种算法融合+ 统一模型(Model)→划分等级(Ranking/Filtering);
- 通过不同的输出来决定使用不同的算法。
(3)做协同过滤推荐的步骤
1)若要做协同过滤,那么收集用户偏好则是关键。可以通过用户的行为诸如评分(如不同的用户对不同的作品有不同的评分,而评分接近则意味着喜好口味相近,便可判定为相似用户)、投票、转发、保存、书签、标记、评论、点击流、页面停留时间、是否购买等获得。
2)收集用户行为数据之后,接下来便要对数据进行减噪与归一化操作(得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1] 或者[1, 1]的浮点数值)。
3)计算相似用户或相似物品的相似度。
4)计算出来的这两个相似度将作为基于用户、物品的两项协同过滤的推荐。
基于内容的推荐
所谓内容(Content),是指能够描述用户/物品的特征,比如:
对于物品来说,要考虑的内容特征有以下三项。
(1)电影
对电影来说,需要考虑的特征如下。
- 电影:红番区;
- 类型:动作/冒险;
- 演员:成龙;
- 年份:1997。
(2)文本
对文本来说,需要考虑的特征如下。
- 词性;
- 单词转化为向量(Word2vec);
- 主题。
(3)多媒体
对多媒体来说,需要考虑的特征如下。
- Audio;
- 图片像素。
总的来说,对用户特征来说,要考虑的内容特征如图2所示。
图2 用户特征
将用户或物品的特征进行统一表示(例如表示成特征向量),即可利用相似度来进行等级(ranking)划分,从而推荐。
总的来说,协同过滤往往没有考虑用户或物品本身的特征,但能保证有一定的惊喜度。而基于内容的推荐能够充分应用物品(item)和用户自身的特征信息,且能够提供明确的推荐理由,但是容易推荐过于一致的结果。
综上所述,我们已经把推荐系统的数学基础和设计原理讲完了。为了读者能深入了解推荐系统的设计,我们可访问《推荐系统的应用案例剖析》一文,了解更多推荐系统应用案例。
作者简介
贾双成,阿里巴巴资深工程师,擅长于数据编译、数据挖掘的系统分析和架构设计,主持研发过多个高端车载导航及adas数据编译器。曾发表发明专利、论文四十余篇,著有《LBS核心技术揭秘》、《数据挖掘核心技术揭秘》。
超越Web:2015年的JavaScript
感谢对《》一文的翻译。