您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 移动环境下的内容推荐初探
移动环境下的内容推荐初探Agenda●什么是推荐系统●移动内容推荐的特点●豌豆荚移动内容推荐关键技术●总结什么是推荐系统Recommendersystemsorrecommendationsystems(sometimesreplacingsystemwithasynonymsuchasplatformorengine)areasubclassofinformationfilteringsystemthatseektopredictthe'rating'or'preference'thatuserwouldgivetoanitem.-fromwikipediaRecommendersystems/enginesareasubclassofinformationretrievalsystems/enginesinpassivemode.Searchsystems/enginesareasubclassofinformationretrievalsystems/enginesinactivemode.常用的推荐功能●有哪些值得看的电影?●去哪儿下馆子腐败?●淘点啥宝贝?●装什么有意思的应用?●大家都在讨论什么话题?●NetflixPrize$1MillionChallenge?应用场景排行榜推荐个性化推荐使用海量数据电影推荐多多是餐馆推荐多少是商品推荐多多是应用推荐多多是话题推荐多少是广告推荐少多是推荐技术应用场景推荐用户(User)海量数据是推荐之本推荐位置●推荐位所在页面内容●推荐位在页面中位置推荐物品(Item)推荐物品●种类、主题、关键词●生命周期、投放规则●大小、颜色、价格●…...推荐用户●人口学属性(性别、年龄等)●行为属性/兴趣特征(浏览、搜索、缓存)●Social内容(社交关系、小组发帖)●上下文(时间、地点等)●…...推荐算法关键规则挖掘协同过滤CF(User-basedCF,Item-basedCF)矩阵分解图挖掘基于热度/知识/规则的推荐基于内容的推荐基于预测模型的推荐混合推荐方法推荐算法推荐用户用户行为属性Social内容人口学属性行为属性/兴趣特征用户全局画像推荐场景一个用户在多个物品有行为用户-物品行为矩阵不能过于稀疏用户对物品的兴趣规律可观察适用于解决冷启动(coldstart)问题真实系统大都这么做推荐算法优点缺点示例基于知识的推荐算法(基于人工观察和经验,抽象出规则进行推荐)1.方法简单2.规则易解释、易运营3.所需数据少1.规则来源于人工知识,覆盖率差2.有效周期难以判断好友推荐基于内容的推荐算法1.可以解决冷启动问题2.方便整合各种用户/物品特征3.推荐结果易于理解1.受限于特征提取的准确性2.需要大量的支撑数据3.常局限于特征稀疏的情况GoogleNewsAmazon淘宝豌豆荚协同过滤的推荐算法1.原理简单有效,易于理解2.算法灵活,支持海量用户/物品3.无需考虑复杂特征,支持特征空间极其复杂的用户/物品的高效计算1.很明显的冷启动问题2.常受限于用户/物品行为矩阵稀疏的情况3.受限于用户/物品rating的正确性Netfix淘宝Amazon豆瓣豌豆荚常用推荐算法比较协同过滤-User-basedCF协同过滤-Item-basedCF移动推荐的特点使用次数多时间碎片化内容消费占大头用户易定位(用户-设备)特点原因实时推荐非常重要移动设备/应用使用次数多推荐的准确率要求更高移动设备/应用使用时间碎片化内容推荐是关键移动设备/应用消费中内容是大头可利用用户信息更丰富移动设备可以用来准确定位用户移动推荐的新特点豌豆荚移动内容推荐关键技术豌豆荚移动内容推荐框架关键技术之知识图谱知识图谱-KnowledgeGraphKnowledgeGraphunderstandsreal-worldentitiesandtheirrelationshipstooneanother:things,notstrings,helpsthemachinetounderstandtheworldabitmorelikepeopledo.KnowledgeGraphconsistsofnodeswithedgesbetweenthem.Eachnodecorrespondstoanentityinrealwork,eachedgedescribetherelationshipbetweenthebeginandendnodes.GoogleKnowledgeGraphDataSources●PublicSources(Wikipedia,Freebase,CIAWorldFactbook)●KnowledgeMiningfromWebpages(Lists,Tables,etc.)●KnowledgeMiningfromuserqueries(xxattributesofyyentity)GoogleKnowledgeGraphUsages●Findtherightthing○Recognizetheentitiesinqueriesandassociatesthemwiththerelevantinformation,anddisambiguateentitiesusingcontextinformation.●Getthebestsummary○Usetheuserssearchbehaviortodeterminethemostneededaspectsforeachentity.●Godeeperandbroader○Helpuserstogetsomeunexpecteddiscoveries.豌豆荚知识图谱数据来源●公开来源(Wikipedia,Freebase,IMDB、豆瓣电影)●应用内内容/网页信息中解析出来的实体和实体关系信息(应用,游戏,书,视频,音乐等)●豌豆荚用户贡献的Userprofile信息和UGC内容●用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱数据来源●公开来源(Wikipedia,Freebase,IMDB、豆瓣电影)●应用内内容/网页信息中解析出来的实体和实体关系信息(应用,游戏,书,视频,音乐等)●豌豆荚用户贡献的Userprofile信息和UGC内容●用户-实体的关系(搜索、浏览、消费、豌豆荚知识图谱用途●信息展示○全面展示内容相关的实体及相互关系●用户意图理解○○重名区分查询意图识别●内容推荐○○○○豌豆荚首页内容推荐-追新有趣豌豆荚详情页内容推荐-相关而非相似豌豆荚各频道列表页内容推荐-追热有趣…...关键技术之Giraph-图挖掘平台Giraph-图挖掘平台Giraph是GooglePregel的开源实现,它基于Hadoop,通过在Hadoop上运行map-only的job来实现常见的图挖掘算法。Giraph提供了一个简单的“面向节点”(Thinklikeavertex)的编程模型。所有的图挖掘算法都可简化为在每一个Vertex上的两类操作:1)在vertext上进行数值计算(computation);2)将数值计算的结果通过边传递给相邻的全部/部分节点(communication)。上述编程模型极大简化了图挖掘算法的实现,使得每个算法都可以迭代地实现,这一切是建立在Giraph内嵌的bulksynchronousparallel编程模型基础上。GiraphTimeline●受GooglePregel启发开发(2010)●被Yahoo!捐献给ASF(2011)●成为Top-levelApacheProject(2012)●发布1.0版本(2013)●发布1.1版本(2014)Giraph典型应用●Ranking○Popularity,Importance,etc.●LabelPropagation○Location,School,Interest,gender,etc.●Community○Groups,ClustersMap-onlyMap-Reduce●Thinklikeakey-valuepairpublicclassMapperKEYINVALUEINKEYOUTVALUEOUT{voidmap(KEYINkey,VALUEINvalue,Contextcontext)throwsIOException,InterruptedException;}Giraph●ThinklikeavertexpublicclassVertextIextendsWritableComparable,VextendsWritable,EextendsWritable,MextendsWritable{voidcompute(IteratorMmsgIterator);}GiraphAPI(当前Vertex上可用)IgetVertextId()VgetVertextValue()voidsetVertextValue(VvertextValue)IteratorIiterator()EgetEdgeValue(ItargetVertextId)booleanhasEdge(ItargetVertextId)booleanaddEdge(ItargetVertextId,EedgeValue)EremoveEdge(ItargetVertextId)voidvoteToHalt()booleanisHalted()GiraphAPI(Vertex间传递消息可用)voidsendMsg(ItargetVertexid,Mmsg)voidsendMsgToAllEdges(Mmsg)voidaddVertextRequest(BasicVertex(I,V,E,Mvertex)voidremoveVertextRequest(IvertexId)voidaddEdgeRequest(IsourceVertexId,EdgeI,Eedge)voidremoveEdgeRequest(IsourceVertextId,IdestVertextId)一个简单的例子-计算最大节点值publicclassMaxValueVertexextendsEdgeListVertexIntWritable,IntWritable,IntWritable,IntWritable{@overridepublicvoidcompute(IteratorIntWritablemsgIterator){booleanchanged=false;while(msgIterator.hasNext()){IntWritablemsgValue=msgIterator.next();if(msgValue.get()getVertexValue().get())}setVertexValue(msgValue);changed=true;}}if(getSuperStep()==0||changed){sendMsgToAllEdges(getVertexValue());}else{voteToHalt();}}}复杂点的例子-PageRankpublicclassSimplePageRankVertexextendsEdgeListVertexLongWritable,DoubleWritable,FloatWritable,DoubleWritable{@overridepublicvoidcompute(IteratorDoubleWritablemsgIterator){if(getSuperStep()=1){doublesum=0;while(msgIterator.hasNext()){sum+=msgIterator.next().get();}setVertexValue(newDoubleWritable((0.15f/getNumVertices())+0.85f*sum);}if(getSuperStep()300){longedge
本文标题:移动环境下的内容推荐初探
链接地址:https://www.777doc.com/doc-921040 .html