新闻中心

EEPW首页 > 智能计算 > 设计应用 > 活用自编码器:以CF推荐系统为例

活用自编码器:以CF推荐系统为例

作者:高焕堂(铭传大学、长庚大学 教授,台北)时间:2021-10-26来源:电子产品世界收藏


本文引用地址:http://www.eepw.com.cn/article/202110/429081.htm

1   认识协同过滤(CF)推荐系统

在大数据时代里,数字信息太多了,让人眼花缭乱,因而需要有一个懂您的工具来协助您,例如在您想听歌曲时,它会推荐您喜欢的音乐,当你想去一个陌生地方购物时,它就为您规划一条最流畅的路线,这种工具就通称为:推荐系统(recommender system)。推荐系统是一种信息过滤系统,在大量信息之中,帮你过滤你不感兴趣的信息(又称噪声),它随时精确细腻地锁定那些让您会心一笑的有意义信息。也就是,它不需要您提出明确的需求,就会根据您的偏好和行为提供一些您可能会感兴趣的物品或服务。推荐系统之所以会懂您,是基于一个假设:相似的客户群,其成员会有相似的(similar)兴趣或偏好。以电商购物场景为例,如果能找到一群与您相似的“邻居”成员,然后从这一群相似的邻居的偏好来协同分析,来挖掘出您潜在的兴趣。例如,下图里的客户A 和客户B是邻居(具有很高的相似度)。如下图所示:

1635216769629432.png

依据上图,就可以把客户A 喜欢的葡萄和西瓜推荐给客户B。由于是从一群邻居成员的偏好来协同分析的,所以通称为:协同过滤(collaborative filtering,简称CF)。

2   使用传统的CF推荐算法

协同过滤(CF)是推荐系统的流行算法,基于客户对物品的行为(如消费、点赞、评分等),来建立客户兴趣的模型,然后依据其兴趣而推荐物品给客户。利用算法将客户和物品联结起来,而且不仅仅根据自己的喜爱来判断,还从一群相似的“邻居”的喜好来协同分析出潜在的兴趣。现在来举例说明之,有一家水果店,卖5 种水果。目前收集了4 位客人对于这5 种水果的评比,其中有买过的水果才有评比,对于没有买过的水果就没有评比数据。如果能推测出这些缺失的评比,就能据之来进行推荐了。例如,从客服大数据中取得客户评比(rating)历史数据档案(如.csv),并呈现如下:

1635216834462800.png

然后,读取这档案里的数据,以阵列方式呈现于Excel 画面上:

1635216875245238.png

这张图看起来就更清晰了,其中的灰色空格部分,就是欠缺(missing)的评比数据,而CF 推荐系统就是要找出合理的值,来替代这些欠缺的(评比)数据。当您按下“传统CF 推荐”按钮,就会利用传统CF 推荐算法找出各位客户的邻居,然后通过协同过滤方法找出合理的值来填入上图里的灰色格子里,如下图:

1635216901444356.png

于是,在图上方的阵列里,已经预测出各位客户对所有物品的评比了(将空白处填满了)。而在图下方的阵列(推荐表)里,则输出优先推荐的列表。例如,针对Lily 客户,建议优先推荐物品#4(香蕉),其次是物品#3(橘子)。还有针对Melody 客户,则优先推荐物品#1(草莓),其次是物品#4(香蕉)。还有针对Peter 客户,则建议优先推荐物品#1(草莓),其次是物品3(橘子)。

3   活用ML瑞士刀:

在上一期里[1],已经介绍过(autoencoder,AE),它是一种小而美的ML 模型,它的用途非常多,所以有“ML 瑞士刀”之称。或称为:深度学习瑞士刀。在本期里,就来活用AE(),来实践CF 推荐。现在,就来设计一个AE 模型。在上一期里,也已经说明了,AE 模型的特色就是:目标值(t)等于输入值(x)。如下图:

1635216955493522.png

这是一个5×2×5 的AE 模型。首先将缺失的数据都补值为-1,然后按下“AE 模型CF 推荐”按钮,就展开训练了。几分钟之后,就训练好了,出现如下图:

1635216979742488.png

于是,就很快地把缺失的数据填补起来了,而且可以依据填补的数据来制作出优先推荐的列表。例如,针对Lily 客户,建议优先推荐物品#4(香蕉),其次是物品#3(橘子)。针对Melody 客户,则优先推荐物品#1(草莓),其次是物品#4(香蕉);针对John 客户,则只推荐物品3(橘子);还有针对Peter 客户,则建议优先推荐物品#1(草莓),其次是物品3(橘子)。以上展示了AE 模型的神奇用途之一,至于它(AE)的神奇技能的来源,则因篇幅的关系,就留待下一期再详细说明之。

4   介绍:基于物品的协同过滤(Item CF)推荐

在本期所谈的CF 推荐系统中,最常见的算法有两种:User CF 和Item CF。在本期的前面3 节里,已经介绍过User CF 了。它有个特性:如果针对一位用户,而能找到更多相似的邻居,这种CF 能够提供给他更准确度的估算和推荐。然而,如果找不到相似的邻居,其效果就会下降。此时,可以考虑其他的推荐算法,例如:Item CF。现在,就来介绍Item CF。它是通过分析用户标签数据和行为数据,判断出用户喜好商品的类型,然后从这类喜欢共同类型商品的用户中挑选一些类似的商品推荐给该用户。例如,该算法会因为你购买过“阿里山茶”而给你推荐“茶具”。该算法目前在一般电商平台最常用的算法。Item CF 并不基于物品本身的属性和类目来计算出物品之间的相似度,而是通过分析用户行为来找出物品之间的相关性。所以不是计算阿里山、茶具与高山茶之间的相似度,而是基于喜欢“阿里山茶”的用户群也喜欢茶具,来判断阿里山茶与茶具之间是邻居(有相关性)。例如,上图里的“阿里山茶”与茶具比较相似,而且客户C 喜欢“阿里山茶”,那么可以预测出客户C也会喜欢茶具,于是就将茶具推荐给客户C。综上所述,User CF 算法是基于一项假设:一位客户会喜欢他邻居(具有相同喜好的客户)所喜欢的物品。但如果一个用户没有邻居的话,则User CF 就无法准确推荐了。

1635217071112220.png

而Item CF 算法也有一个基本假设:用户会喜欢和他以前喜欢的物品的相似物品。也就是,他喜欢的东西都是比较具有相关性的,这通称为:客户对喜欢物品的自相似度。一个用户喜欢物品的自相似度大,就愈符合Item CF 的假设,则Item CF 的推荐效果就愈好。

参考文献:

[1] 高焕堂.AI讲座:自编码器——神奇的ML瑞士军刀[J].电子产品世界,2021(9):27-29.

(本文来源于《电子产品世界》杂志2021年10月期)



关键词: 202110 自编码器

评论


技术专区

关闭