阿里云
发表主题 回复主题
  • 873阅读
  • 1回复

[交流乐园]推荐引擎工作原理

级别: 论坛版主
发帖
1678
云币
5387
翻译:青蛙跳 4/tp-dBip  
8#MiM . f  
Q{0!N8']"  
对每个人而言,购物是必不可少的一件事。而当我们购物时,我们通常会购买我们所信任的人推荐的商品。如今是数字时代,人们网上购物时常会使用购物推荐引擎。 Uj[E_4h  
推荐引擎是一种数据过滤引擎,它通过算法及数据来给特定的用户推荐相关商品。简而言之,它只不过是一个动的“商店导购员”。你访问在线商店时,它不仅给你展示你要的产品。与此同时,它还向你展示你可能感兴趣的商品(推荐商品通常情况下,价格会更昂贵)。推荐引擎被用于交互销售、提升产品销量。 TE.O@:7Z  
随着网络数据的日益暴涨,用户数量的显著提升,推荐引擎对于网店及电商公司的重要性日渐提高。其重要性表现在:电商公司通过推荐引擎查找信息,根据用户的喜爱偏好为其提供相关商品信息。 i!JVGs  
S EeDq/h  
推荐引擎如何工作? j%qBNoT~  
kr|u ||  
J!GWP:b3  
根据“ 使用计算引擎进行机器学习制作产品建议 ”(Using Machine Learning on Compute Engine to Make Product Recommendations)一文,典型的推荐引擎通过以下四个阶段处理数据:收集,存储,分析和过滤。 CI )89`  
3bi,9 >%  
收集数据 <+oTYPgD9  
v iJK%^U=-  
sX~ `Vn&  
创建推荐引擎的第一步是收集数据。数据既可以是显式数据,也可以是隐式数据。显式数据由用户输入的数据组成,如对产品的评分和评论。隐式数据可以包括订单历史记录、退货历史记录、购物车历史、页面浏览量、点击量和查找历史。这些数据是为每个访问任何特定网站的用户收集的。 ,'m<YTF  
行为数据极易获得,因为你可以轻易地记录用户在你网站上的活动日志。你无需让用户做更多的操作,这部分数据基于用户的正常操作,但该方法有一个缺点——难以分析数据。比如,从不重要的数据中过滤出必要的日志是个很棘手的问题 >;A7mi/  
因为每个用户对于一件产品有不同的喜好,他们的数据集必然不相同。花费大量时间,给予引擎大量数据,它会变得更加聪明,所给出的推荐结果更加精确。用户也会更乐于去点击、购买商品。(就像亚马逊推荐引擎一样,拥有“组合购买”、“为你推荐”标签)  H?(I-vO  
;x=k J@  
存储数据 {|kEGq~aE  
?<iinx   
RnX:T)+o  
通过算法处理越多的数据,推荐结果就更加精准。这意味着,任何推荐引擎项目都可以转变成大数据项目。 -$[o:dLO  
在创建推荐引擎数据库时,你需要根据你的数据类型选择相应的数据库。供选择的数据库有NoSQL数据库、标准的SQL数据库,或者也可以选择对象存储。你的选择主要取决于你存储的数据来自于用户的直接输入还是用户的行为数据,当然其因素也包括数据范围、环境集成、轻便性。 x]Nk T  
在保存用户评分或评论时,需要一个可灵活管理的数据库,以此尽量减少任务请求量,更加注重推荐本身。云数据库版SQL可以满足上述的需求,同时能够简单、直接地加载数据。 }? W[D  
tX$ v)O|  
分析数据 $dp;$X3  
n!r<\4I  
R4V~+tnbG&  
我们如何发现相似用户参与度数据?通过使用不同分析方法过滤数据,我们就能找到答案。如果想让用户在访问产品时马上获得推荐,则需要更加灵活的分析方式。以下是几种我们分析数据时常用的方法:
  • 实时系统(Real-time systems)可以实时处理产生的数据。这种系统通常用于处理和分析事件流。实时作出推荐是对实时系统的基本要求。
  • 批量分析(Batch analysis)需要定期处理数据。这种方法需要相当体量的数据为基础,来分析相关性,例如日销售量数据。
  • 近实时分析(Near-real-time analysis)能快速的收集数据。你可以时时刻刻刷新数据。近实时分析的最佳使用场景是为每个相同的浏览环节提供推荐。
H7 xyK  
'w8k*@cQ  
%`cP|k  
12yr_   
'TF5CNX  
过滤数据 Me HlxI  
E8Jy!8/X9T  
KL8G2"Z  
下一个步骤是过滤数据,得到必要的相关数据,以此为用户提供推荐。我们需要从各式各样的算法中选择适合推荐引擎的算法。以下为推荐的过滤方法:
  • 基于内容(Content-based):推荐可以根据用户所浏览过或所喜欢的产品特征,关联相同特征的产品。
  • 集群(Cluster):无论用户做了什么,推荐的产品都可以很好地结合在一起。
  • 协作(Collaborative):根据其他浏览过相同产品或喜欢相同产品的用户所产生的记录,为当前用户提供“浏览过该产品的用户还购买了/浏览了”推荐。
t@`w}o[#  
协作过滤需要你为所有产品设定属性信息,根据用户的喜好作出理论上的推测。输出的过滤数据基于假设,两个喜欢相同产品的用户很有可能喜欢同样的产品。 )e$}sw{t  
您可以将有关评分或交互的数据表示为一组矩阵,并将产品和用户作为维度。假设下面两个矩阵是相似的,但是我们从第一个中扣除第二个,通过用第一个数字替换现有的评级,并且由“0”丢失评级。得到的矩阵是一个真值表,其中第一个表示用户与产品的交互。 W]]@pbG"H\  
$fhb-c3  
}'y=JV>l  
资源 INd:_cT4l  
我们使用K-nearest算法,Jaccard系数,Dijkstra算法和余弦相似度来更好地根据评级或产品关联推荐人的数据集。 _7h:NLd  
CBqeO@M  
O]>FNsh!  
K-nearest算法集群过滤 't+ J7  
最后,通过过滤和使用该算法后得到的结果,根据推荐类型及时向用户给出推。可以提供实时推荐,或者过一段时间发送含推荐信息的电子邮件给用户。 P9Yw\   
[ 此帖被青蛙跳在2018-07-23 20:14重新编辑 ]
级别: 管理员
发帖
136
云币
246
只看该作者 沙发  发表于: 07-24
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 42 + 27 = ?
上一个 下一个