Quora

整体

Quora是如何做推荐的, 原文在 machine-learning-for-qa-sites-the-quora-example
看到了这篇文章,然后顺便追了相关的参考文献
首先是这篇综述
Quora主要考虑的三个因素:Relevance、Quality和Demand。

Feed Ranking

目标:Present most interesting stories for a user at a given time
Interesting = topical relevance + social relevance + timeliness
Stories = questions + answers

Answer Ranking

A Machine Learning Approach to Ranking Answers on Quora

  • 答案内容本身的质量度。Quora对什么是「好的答案」有明确的指导[2],比如应该是有事实根据的,有可复用价值的,提供了解释说明的,进行了好的格式排版的等等。What-does-a-good-answer-on-Quora-look-like-What-does-it-mean-to-be-helpfult

  • 互动,包括顶/踩、评论、分享、收藏、点击等等。

  • 回答者本身的一些特征,比如回答者在问题领域的专业度。

Ask2Answers

Ask-To-Answer-as-a-Machine-Learning-Problem
Given a question and a viewer rank all other users based on how 「well-suited」 they are。其中「well-suited」= likelihood of viewer sending a request + likelihood of the candidate adding a good answer,既要考虑浏览用户发送邀请的可能性,又要考虑被邀请者受邀回答的可能性。

Topic Network

The-Quora-Topic-Network

User Trust/Expertise Inference

Quora需要找出某个领域的专家,在某个领域里回答问题的多少,接收到的顶、踩、感谢、分享、收藏及浏览等数据。另外还有一个很重要的是专业度的传播效应。比如Xavier在推荐系统领域对某个答案顶了一下,那么这个答案作者在推荐系统领域很可能具备较高的专业度。
The-Product-Engineering-Behind-Most-Viewed-Writers 这个感觉稍微有点关系

数据案例挖掘

Mapping-the-Discussion-on-Quora-Over-Time-through-Question-Text

趋势

下面👇针对我比较感兴趣的点一个个看————————————

A Machine Learning Approach to Ranking Answers on Quora

Early Attempts and Baselines
使用upvotes/downvotes进行简单的打分,优点是简单、快速、可解释性强,是一个很好的baseline(想使用观看次数来进行优化,结果发现效果不是很好)
缺点如下,所以想到用丰富的结构化信息:

  • Time sensitivity,必须先有行为才能打分
  • Rich get richer:up得越多获得up的机会越多
  • Joke answers:类似标题党或者有噱头的玩意
  • Discoverability:新用户发的内容很难获得行为
    Our Approach to Solving the Ranking Problem
    In ranking problems our goal is to predict a list of documents ranked by relevance. In most cases there is also additional context, e.g. an associated user that's viewing results, therefore introducing personalization to the problem.下面介绍一种应该是base的模型:
  • non-personalized
  • supervised
  • item-wise regression:给每一个答案打分
    Ground Truth Dataset
    At Quora we define good answers to have the following five properties:
  • 确实是在回答该问题
  • 提供reusable的知识
  • 有理由支持的答案
  • 可证实是正确的
  • 清晰易读


    有效特征的例子

    提取的特征也包括

  • 用户认证信息, 格式, 赞成票
  • 作者和投票者的历史数据来推算主题的专业度和可信度

We explored many different ways to know the true quality of answers.

  • once again consider using a list of answers where the labels are the ratio of upvotes to downvotes.the shortcoming here is that this label would suffer from the same issues as the downvote model presented earlier
  • run a user survey
  • try to combine them into one authoritative ground truth dataset.

Features and Models
Feature engineering is a major contributor to the success of a model and it's often the hardest part of building a good machine learning system.The features we tried can broadly be categorized into three groups

  • text-based features
  • expertise-based features
  • author/upvoter history-based features
    一开始用的是文本特征,但是由于有句法复杂性,所以部分有问题。
    通常来说集成别的模型作为特征很有用,比如我们使用了一个预估用户在某个topic下面的专业度的特征就证明了这一点。
    对于这个回归模型来说,gbdt和一些DeepLearning的结果很令人信服,但是dl的可解释性差一点,所以我们也会用一些lr来进行实验。
    Metrics
    We used the following metrics:
  • Rank-based: NDCG, Mean Reciprocal Rank, Spearman's Rho, Kendall's Tau
  • Point-wise: R2, and Mean Squared Error, make sure our scores were close to our training data in scale and that answers between questions can also be compared.
    Productionalization
  • 新答案先用一个快速的特征提取来进行ranking,然后异步的重新计算更为准确的分数。
  • 排序数百个答案是很费时间的,所以分数需要缓存,只有当特征发生变化的时候才更新它。
  • 有一个问题是如果是作者的特征变了,那我们要更新所有这个作者相关的答案,可能会很费时间,所以做了一个特殊的组织和批处理。
  • 另外一个优化是在决策树内部,当这个特征变化不会影响得分的时候就不更新特征。
  • 总共减少了70%的计算

The Quora Topic Network

Introduction
topics form an important organizational backbone for Quora's corpus of knowledge。Our goal is to become the Internet's best source for knowledge on as many of these topics as possible。

  • 越来越多的topics,并且人们提供了很多质量的内容
  • 通过将内容标记为一些topics,人们创造了一个合理的有层次的领域知识
    人们可以关注另外一个人,也可以关注问题和主题


    关系

Quora's Diversification
topic的数量其实代表了多样性的变化,于是计算了拥有100个好问题的topic的数量。
什么是好问题:除了作者,至少有一个人觉得这个问题有价值。2013年底大概5000个topic,而且增长很快,这说明多样性在变好
Defining the Probabilistic Topic Network
topic涨得快,但是新的领域知识提高的没那么快,所以需要将这些知识进行组织和整理。
一个问题可以打上多个topic可以提供topic之间的隐含关系。因此可以只针对topic进行网络关系。

  • 我们先链接topic A和topic B,如果这俩至少被一个问题在一起tag了或者引用了
  • 有很多打了Moon landing的topic会打上NASA,但是反过来不是,所以边是有向边
  • 增加权重,如果有n个人follow这个问题,那么这一次链接的重要性就是n,最后A->B的weight定义如下:


    公式

Hints of the Topic Hierarchy
每一个节点的入度是一个简单的衡量手段。直接把所有指向这个node的权重加起来就行了。
假设topic存在层级关系,那么一个topic就有可能至少从两个不同的途径获得一个大的入度,所有节点入度的平均数和中位数应该会差别很多。中位数主要收到那些典型具体的topic影响,入度应该会比较低,而且随着越来越多的有特点的topic加入进来,中位数会越来越低。平均数主要收到那些大的节点的入度影响,应该会比较大一点,而且相对变化不会那么大。使用NetworkX统计出来的情况确实是这样,所以我们可以从topic网络中演绎出层级关系
Diving Deeper into the Topic Hierarchy

  • degree distribution:power law,proportional to 𝑘−1.6
  • 连通性:99.8% of all topics are connected together in one big "component."
  • the joint degree distribution (JDD):相配的 assortative-如果热门的人一起hangout,不热门的人一起hangout;不相配的disassortative-如果热门的人与不热门的人hangout。这个网络是mildly disassortative: large, well-connected, general topics tend to be linked to smaller, more specific topics.
  • the clustering coefficient (CC):the CC measures the probability that any two of my friends are also friends with each other, given that they are my friends。decreases steeply with the number of links a topic has。这意味着小的topic联系比较紧密,大的topic关系不是那么大,这也说明这个网络是有层级的。

Topic Clustering
我们可以使用层级主题聚类来进行topic的表达。具体的算法如下:

  • 1.Create a list of empty trees with each topic as the root
    1. Find the topic with the largest total outdegree in the topic network
    1. Add the topic, and its subtree, to the subtree of each topic it links to with weight
    1. Remove the topic from the topic network
    1. Goto 2 until only N topics are left
      算法得到的结果包括topic的列表以及每一个node作为root的层次的树结构,可以知道相关的topic连接得多么紧密。有了这些信息,我们就可以选择任意topic通过爬上和爬下找到相关的topic,我们在聚类的时候选择了fuzzy方法来允许一个topic可以有多个parents,这很有用。这个网络他们留下了大概2000个topic。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容