Quora是如何做推荐的
光环大数据培训,讲师都是实战专家,有十几年的软件开发经验和5年以上的实战经验,在业内口碑非常不错。关于师资质量这点非常重要,大家可以去了解一下。优秀的大数据培训机构能让自己能和大数据行业最前沿的项目、最主流的技术接触,这对你的学习成长非常的重要。
前段时间,Quora的VPEngineering机器学习大牛XavierAmatriain,在WWW2016大会的QuestionAnsweringWorkshop做了一个报告,《MachineLearningforQ&ASites:TheQuoraExample》,我周末学习了一下,分享给大家。
Quora的Mission:Toshareandgrowtheworld’sknowledge。
Quora主要考虑的三个因素:Relevance、Quality和Demand。
Quora核心的数据模型及其之间的关系。
FeedRanking
Quora做推荐的一个最核心问题就是PersonalizedFeedRanking。Quora是以问题、答案与主题为核心把「知识」串联起来,然后基于用户的顶和踩等动作来划分内容质量,最后再通过人和问题的Follow关系让知识在社区内流动起来。而个人Feed正是这种「流动」的最主要的载体。
Xavier说Quora做FeedRanking的难度要比Netflix大,这也正常,没有更大的挑战想来Xavier也不会跳槽是吧。QuoraFeedRanking的首要目标是确保推送进用户Feed的内容应该是和用户兴趣高度相关的,其次还需要考虑的包括用户之间的Follow关系以及互动,Xavier管这个叫做socialrelevance,另外还有时间因素,比如一些和热点事件相关的问答,也应该及时地推送进用户Feed。
1、目标:Presentmostinterestingstoriesforauseratagiventime
Interesting=topicalrelevance+socialrelevance+timeliness
Stories=questions+answers
2、主要使用的是个性化的learning-to-rank方法
3、Xavier确认了一点,相比于时间排序(time-ordered),相关度排序大大提升了用户参与度。
4、面临的挑战,
potentiallymanycandidatestories
real-timeranking
optimizeforrelevance
简单讲就是使用一个「行为加权函数」来预测用户对一个story的感兴趣程度。有两种可选的计算方法,一种是把所有行为弄到一个回归模型里面直接预测最终值,另外一种就是先分别预测每个动作的可能性(比如顶、阅读、分享等)然后再综合起来加权求和。第一种简单,但可解释性稍差,第二种可以更好的利用每个动作信号,但需要给每个动作配一个分类器,计算消耗大。
另外Xavier也强调了特征工程的重要性,在这块下功夫搞一下对最终能得到一个好的ranking结果非常有帮助,如果能够实时在线的更新特征就更好了,这样可以更及时地对用户的行为作出响应。Quora最主要的特征包括:
user(e.g.age,country,recentactivity)
story(e.g.popularity,trendiness,quality)
interactionsbetweenthetwo(e.g.topicorauthoraffinity)
从整体框架来看,Quora的FeedRanking也没有什么太特别的地方,基本上也是业界的标准打法。Quora比较特别的是它的数据模型相对其他网站更复杂,之间的关系也更多样化。比如从用户角度看,既可以follow其他用户User,又可以follow问题Question,还可以follow主题Topic。
Follow用户接收到的信息范围更广也更多样化,惊喜内容很可能就是来自于自己关注的有趣的用户,但也可能最容易制造不相关的内容噪音,这块的最重要工作是用户专业度的评估。
Question/Answer是Quora最核心的内容元素,也是驱动Quora体系里知识流动的原力,这块的主要工作是引导更多的高专业度用户来贡献优质答案,另外就是如何激发生产出更多的好问题(甚至是自动生成问题),要计算answerranking,还有要做反sapm的工作。
Topic是对一个主题内容的聚合,Topic在Quora的信息架构里面承载着极其重要的角色,是知识结构的骨架,Quora管这个叫做TopicNetwork,如何构建TopicNetwork本身就是一个非常大的挑战,另外还需要解决的问题包括,如何把Topic下(潜在)优质的问题发掘出来,以及如何把水问题降权和过滤/合并重复问题等。
围绕着这些核心问题,Quora分别都进行了更深入的工作。
AnswerRanking
Goal:Givenaquestionandnanswers,comeupwiththeidealrankingofthosenanswers.
Quora主要考虑了下面三大维度来进行Ranking计算,每个大维度下面又包含了很多的features。
答案内容本身的质量度。Quora对什么是「好的答案」有明确的指导[2],比如应该是有事实根据的,有可复用价值的,提供了解释说明的,进行了好的格式排版的等等。
互动,包括顶/踩、评论、分享、收藏、点击等等。
回答者本身的一些特征,比如回答者在问题领域的专业度。
另外这块的工作也包含非个性化的与个性化的两部分,某些类问题的排序是非个性化的,最好的答案对所有用户而言都是一致的,而另外一些问题则是个性化的,对于每个人而言最好的答案会有自己个性化的判断。总之,AnswerRanking对Quora非常重要,这块Quora做得很细致,Quora的blog上有一篇专门的文章讲这个,有兴趣的朋友可以去看看原文[3]。
36大数据
Ask2Answers
A2A是Quora产品里面非常重要的一个功能,本来Quora是可以直接把相关问题推荐给系统认为的合适的回答者的,Quora最开始也是这么做的,但系统自动做这事儿显然不如发动群众人肉邀请回答来得感觉好,A2A操作增强了仪式感,让被邀请者有种被人需要的感觉,心理上很满足,另外这也是一种社交动作,社交的精髓之一就是为用户制造「装逼」的便利,回答问题前很随意的「谢邀/泻药」,一切尽在不言中了。
这个功能看似很简单,Quora也是下了功夫的,Quora把A2A这事model成了一个机器学习问题:Givenaquestionandaviewerrankallotherusersbasedonhow「well-suited」theyare。其中「well-suited」=likelihoodofviewersendingarequest+likelihoodofthecandidateaddingagoodanswer,既要考虑浏览用户发送邀请的可能性,又要考虑被邀请者受邀回答的可能性。Quora的blog上也有一篇文章详细讲解了他们的做法[4]。
TopicNetwork
Quora花了很大力气来正确引导用户给内容打标签,持续不断坚持这项工作的好处开始逐渐显露出来了,他们发现[5],
随着用户群体的扩大,Topic正在呈现出迅速多样化的势头。
很多领域都自组织出了相当不错的层级知识结构。
Quora相信这种依靠社群来组织领域知识的方式是可行的。
UserTrust/ExpertiseInference
这是Quora另一件非常重要的事情,Quora需要找出某个领域的专家,然后通过产品引导这些专家在这个领域里贡献更多的优质答案。Quora会考虑用户在某个领域里回答问题的多少,接收到的顶、踩、感谢、分享、收藏及浏览等数据。另外还有一个很重要的是专业度的传播效应,比如Xavier在推荐系统领域对某个答案顶了一下,那么这个答案作者在推荐系统领域很可能具备较高的专业度。
其他
其他相关的,包括推荐主题、推荐用户、相关问题、重复问题、反Spam等等,Quora大量地在使用机器学习的方法来解决这些问题。
Quora最大的宝藏,就是这几年在各个领域不断积累下来的大量有价值的内容,Quora自然也少不了对这些的挖掘,有篇《MappingtheDiscussiononQuoraOverTimethroughQuestionText》[6],就是一个很好的挖掘数据价值的案例。作者陶雯雯,看个人简介是北大元培计划的,妥妥地又一个美女学霸,感觉知乎可以出手了。
大数据培训,就选光环大数据!
原创文章,转载请注明出处:光环大数据
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!