数据化运营指标体系之内容运营指标体系

内容运营是媒体信息化运营的核心,指的是对内容策划、编辑、发布、优化以及营销等一系列工作。其中内容生产的方式上包括 UGC、PGC 以及 OGC(职业化生产内容,和 PGC 存在一些差异——内容生产者更多样,不仅仅是一类专业化内容生产)。在内容运营的数据指标类型方面,包括了内容类指标、SEO 指标、内容流量指标、内容互动指标以及目标转化指标。

阅读更多

数据不平衡处理

数据不均衡问题指样本数据中不同类别的容量差异过大,这类数据集在特定的领域会更容易遇见,例如: 信用欺诈、垃圾邮件检测、客户流失以及广告点击等。在搭建这类数据集的分类模型,容易出现过拟合情况,因此需要对数据集进行一定的处理。

阅读更多

数据分析之留存分析报告搭建

对用户进行分析过程中,留存是一个重要的指标,它体现了新用户/会员在经过一定时间之后,仍然具有访问、登陆、使用或者转化等属性或行为。用户的留存才有可能产生收入,同时作为监控产品的指标也是需要进行周期性分析。

阅读更多

自然语言语言模型

1. 背景

语言模型,其中最重要的是能够表达一个语言序列,而在验证序列是否是“自然的”。对应一个句子序列 $P(E)=P(w_1, w_2, \cdots, w_n)$ 的联合概率表示的是序列中从第一个单词到最后一个单词到序列,使用这种形式直接创建这个分布概率模型的难度较大,因此采用另一种形式——以单词组合的方式作为第二方案。

以 “she went home” 为例子,改用条件概率的模式——表达计算单词随着单词变化的概率,这样间接实现序列概率计算。在这个例子中,明确使用 表示句子结尾,这样可以用于最终判断在 “she went home” 之后是否结束。因此对应的概率表达式为:

$P(E)=P(w_1)P(w_1|w_2)P(w_3|(w_1,w_2))=\prod_{(t=1)}^{(T=1)}P(w_t|w_1^{t-1}), w_{T+1} \text{是}$

1.1 基于计数的 N-Gram 语言模型

基于计数的语言模型,是以最大似然数估计的方式来构建模型(Maximum Likelihood Estimation):

$P_{ML}{(w_t|w_1^{t-1})}=\frac{C(w_1^{t})}{C(w_1^{(t-1)})^*}$
上面的意思中表示的是以出现第一个单词 $w_1$ 到 $w_{(t-1)}$ 的前序(prefix)情况下,下一个单词为 $w_t$。
需要注意这样创建的语言模型是基于已经遇到过的数据,因此存在“过拟合”的问题。

假设用上面构建的模型去预测”i am from utah”,其结果会是 0,因为根据上面的例子 $P(w_4=\text{utah}|(w_1=\text{i}, w_2=\text{am}, w_3=\text{from})$ 是 0,导致整个结果是 0。因此这种模式直接就失去了语言模型评估语言的“自然性”的意义。为了解决这种问题,目前有两种解决方案:1)马尔可夫假设类似的原理,当前单词的出现仅由最近出现的单词决定——采用 N-gram。N-gram 模型参数由给定的 N - 1 个单词确定下一个单词,例如 unigram,的参数仅由自身确定,bigram 是由上一个单词确定,而 trigram 是由上两个单词确定。根据这个假设更新公式 $P(w_t|w_1^{t-1})\approx P_{ML}(w_t|w_{t-n+1}^{t-1})=\theta_{w_{t-n+1}^t}$,其中 $n$ 即表示是 Gram 是几元,而 $\theta$ 即是对应于 N-Gram 下给定的前 $n-1$ 个词条件下的下一个单词的概率。

不论是上面提到的那种方法,都可能存在从训练语料中得到组合存在限制,测试时可能出现某些组合不存在的问题。为了避免和出现 概率值情况时,导致整个句子序列的概率为 ,因此引入了 平滑(Smoothing)的方式来修正该问题。例如其中最简洁的方式——插值法(Interpolation),直接将 Unigram 和 Bigram 合并考虑以达到平滑的效果:$P(w_t|w_{t-1})=(1-\alpha)P_{ML}(w_t|w_{t-1})+\alpha P_{ML}(W_t)$。这种方式是相对来说更稳健地构建低频词概率模型之一。对于需要更复杂的上下文语言模型,例如 N 为 3,4 等的条件的概率需要使用递归的方式来构建
$$
\rm{对应于 TriGram 语法概率} \
P(w_t|w_{t-2}w_{t-1})=\alpha_1 P(w_t|w_{t-2}w_{t-1}) +\alpha_2 P(w_t|w_{t-1}) +\alpha_3 P(w_t) \
\displaystyle \sum_{i}\alpha_i = 1
$$
其中 $\alpha$ 是作为超参数,在训练过程中是使用保留语料库(Held-out corpus)中学习,是附加的训练语料库——但并没有用于设置 N Gram 语法的计数,是用于设置其他的参数。因此在处理数据上通过训练语料嫁给你 N Gram 语法的概率固定下来,在通过保留语料库训练 $\alpha$

1.1.1 Bigram 模型示例

  1. <s> I am sam </s>
  2. <s> Sam I am </s>
  3. <s> I do not like green eggs and ham </s>

根据 NGram 公式 $P(w_t|w_1^{t-1})\approx P_{ML}(w_t|w_{t-n+1}^{t-1})=\frac{C(w_{t-n+1}^{t-1}w_t)}{C(w_{t-n+1}^{t-1})}$ ,右侧为实际统计计算方式 $C(w_{t-n+1}^{n-1}w_t)$ 表示 从 $t-n+1$ 到 $t-1$ 的单词序列 $w_{(t-n+1)}$ 计数和 单词 $w_t$ 的联合事件。

NGram 训练语料重要性
从两个语料训练的结果来看,不同语料训练出来的“英语句子‘模型存在差异。因此在训练时使用大语料库,多来源语料库是有必要的。毕竟N-gram 的统计模型不能在简单语料库中模拟出各种不同 风格

2. 平滑

在有限的训练数据集中,通过最大似然数估计来训练 N Gram 语言模型,得到的结果中必然会有稀疏性的问题。导致训练预料库存在着大量零概率 N 元语法,但实际上也会存在某些非零的概率,这种非零计数比较小的时候,最大似然数估计会产生非常糟糕的结果。因此引入的平滑的方式来解决小数据集的可变形造成的糟糕的估计结果。其内核是削减高计数的概率,用以弥补零计数的概率,从而使得概率分布不至于过于参差不齐

2.1 Laplace 平滑——加一平滑

这是一个简单的平滑方法,是在归一化为概率之前,将所有的计数加一。一般的加一方式为 $P_{Laplace}(w_i)=\frac{c_i+1}{N+V}$,其中 表示的是词汇表中单词个数。但在使用中计算概率的方式可以只调整分子不增加分母,也可以不同时地调整分子与分母。对于平滑之后对于分子的影响,可以通过调整计数 (Adjusted Count)$c^\star$ 来量化。同 MLE 用单词总数量 $N$ 来进行归一化,计算调整计数为概率的话,需要添加一个归一化因子 $\frac{N}{N+V}$,最终表达式为:
$$
c_i^\star=(c_i+1)\frac{N}{N+V} \
P_i^\star=(c_i+1)\frac{1}{N+V} \
\text{即同 MLE 一样,使用 N 进行归一化处理,得到概率}P_i^\star
$$
另一种通过相对比较的方法来解释平滑——打折(Discounting),通过吧非零的计数调低分派给哪些为零的计数。因此前面 $c^\star$ 是被计作打折的计数,而用相对折扣(Discount) 的方式来描述平滑 $d_c=\frac{c^\star}{c}$,其中 $c$ 是原始计数。

2.1.1 Smoothing 示例

示例来源于 SALP 中的 Berkeley Restaurant Project 例子,其中包括了单词数量 $V$ 为 $1446$,

i want to eat chinese food lunch spend
i 5 827 0 9 0 0 0 2
want 2 0 608 1 6 6 5 1
to 2 0 4 686 2 0 6 211
eat 0 0 2 0 16 2 42 0
chinese 1 0 0 0 0 82 1 0
food 15 0 15 0 1 4 0 0
lunch 2 0 0 0 0 1 0 0
spend 1 0 1 0 0 0 0 0

以 Bigram 的方式计算出相应的概率值 $\P(w_n|w_{n-1})=\frac{C(w_{n-1}w_n}{C(w_{n-1})}$ 如下:

i want to eat chinese food lunch spend
i 0.002 0.330 0.0036 0 0 0 0.00079
want 0.00220 0.66 0.0011 0.00650.0065 0.0054 0.0011
to 0.00083 0 0.0017 0.28 0.00083 0 0.0025 0.087
eat 0 0 0.0027 0 0.021 0.0027 0.0560
chinese 0.00630 0 0 0 0.52 0.0063 0
food 0.014 0 0.0140 0.00092 0.0037 0 0
lunch 0.00590 0 0 0 0.0029 0 0
spend 0.00360 0.0036 0 0 0 0 0

采用 Add-one smoothing 方式,调整计数:

i want to eat chinese food lunch spend
i 6 828 1 10 1 1 1 3
want 3 1 609 2 7 7 6 2
to 3 1 5 687 3 1 7 212
eat 1 1 3 1 17 3 43 1
chinese 2 1 1 1 1 83 2 1
food 16 1 16 1 2 5 1 1
lunch 3 1 1 1 1 2 1 1
spend 2 1 2 1 1 1 1 1

调整之后的 Bigram 概率值 $P_{Laplace}(w_i)=\frac{c_i+1}{N+V}$ :
| | i | want | to | eat | chinese | food | lunch | spend |
| ——- | ——- | ——- | ——- | ——- | ——- | ——- | ——- | ——- |
| i | 0.0015 | 0.21 | 0.00025 | 0.0025 | 0.00025 | 0.00025 | 0.00025 | 0.00075 |
| want | 0.0013 | 0.00042 | 0.26 | 0.00084 | 0.0029 | 0.0029 | 0.0025 | 0.00084 |
| to | 0.00078 | 0.00026 | 0.0013 | 0.18 | 0.00078 | 0.00026 | 0.0018 | 0.055 |
| eat | 0.00046 | 0.00046 | 0.0014 | 0.00046 | 0.0078 | 0.0014 | 0.02 | 0.00046 |
| chinese | 0.0012 | 0.00062 | 0.00062 | 0.00062 | 0.00062 | 0.052 | 0.0012 | 0.00062 |
| food | 0.0063 | 0.00039 | 0.0063 | 0.00039 | 0.00079 | 0.002 | 0.00039 | 0.00039 |
| lunch | 0.0017 | 0.00056 | 0.00056 | 0.00056 | 0.00056 | 0.0011 | 0.00056 | 0.00056 |
| spend | 0.0012 | 0.00058 | 0.0012 | 0.00058 | 0.00058 | 0.00058 | 0.00058 | 0.00058 |
如果对平滑方法对影响进行分析,即平滑之后调整的计数情况 $c^\star(w_{n-1}w_n)=\frac{[C(w_{n-1}w_n)+1]\times C(w_{n-1})}{C(w_{n-1}+V)}$:
| | i | want | to | eat | chinese | food | lunch | spend |
| ——- | —- | —– | —– | —– | ——- | —- | —– | —– |
| i | 3.8 | 527 | 0.64 | 6.4 | 0.64 | 0.64 | 0.64 | 1.9 |
| want | 1.2 | 0.39 | 238 | 0.78 | 2.7 | 2.7 | 2.3 | 0.78 |
| to | 1.9 | 0.63 | 3.1 | 430 | 1.9 | 0.63 | 4.4 | 133 |
| eat | 0.34 | 0.34 | 1 | 0.34 | 5.8 | 1 | 15 | 0.34 |
| chinese | 0.2 | 0.098 | 0.098 | 0.098 | 0.098 | 8.2 | 0.2 | 0.098 |
| food | 6.9 | 0.43 | 6.9 | 0.43 | 0.86 | 2.2 | 0.43 | 0.43 |
| lunch | 0.57 | 0.19 | 0.19 | 0.19 | 0.19 | 0.38 | 0.19 | 0.19 |
| spend | 0.32 | 0.16 | 0.32 | 0.16 | 0.16 | 0.16 | 0.16 | 0.16 |

可以看出调整之后对原来的计数数量影响较大,前缀词例如 $C(want\ to)$ 的数量从 $609$ 变为了 $238$,体现在 $P(to|want)$ 的概率降到 $0.26$,而后缀词则在增加 $

3. 评估指标

外在评测:在语言模型中评估模型的最佳方式是,将语言模型嵌入到具体的应用任务测试应用的总体性能的方式,即端到端的外在评测(Extrinsic Evaluation),也称为现实评测(in vivo evaluation)。
内在评测(Intrinsic Evaluation),是与应用任务无关的模型质量评测。

前者能显性评估两个模型的性能,但是评测消耗的代价很高,应该常采用内在评测。困惑度(Perplexity) 是对于 N 元语法模型常见的内在评测度量指标,虽然这个指标不能保证任务模型性能得到真实改进,但是应用任务的性能改进是和困惑度改进具有相关关系。而且它是一个快速的检验算法。

困惑度(Perplexity, PP) 是语言模型指派给测试集的概率函数。对一个句子序列来说,就是一个语言模型下的序列概率函数。困惑度可以理解为,如果每个时间步都根据语言模型计算的概率分布随机挑词,那么平均情况下,挑多少个词才能挑到正确的那个。其公式如下:
$$
PP(W)=P(w_1w_2\cdots w_n)^{-\frac{1}{N}} \
=\sqrt[N]{\frac{1}{P(w_1w_2\cdots w_n)}} \
=\sqrt[N]{\frac{1}{\displaystyle{\prod_{i=1}^N}P(w_i|(w_1\cdots w_{i-1}))}} \
\text{第三个等式是使用链式展开}
$$

另一种研究困惑度的方式,是通过加权平均转移因子(Weighted Average Branching Factor),它的表示基础是转移因子(Branching Factor)——任何一个单词后面可能连续的单词数量。举个以数字字符串例子来说,每个数字字符出现概率为 $\frac{1}{10}$,以这种方式得到的困惑去为 $PP(W)=(\frac{1}{10}^N)^{\frac{-1}{N}}=10$。但是实际情况下 0 发生的概率比较高,例如训练数据集中 0 发生了 91 次,而其他数字数据发生了 1 次。那么在测试数据中 0003000,测试集中的预测掉一个数字为 0 的困惑度比较小,也就是有较高的概率为 0。在这个例子中,虽然转移因子依然是 10,但是困惑度或者使用加权平均转移因子更小。

数据化运营指标体系之会员运营指标体系

数据化运营的体系分类包括:会员数据化运营、商品数据化运营、流量数据化以及内容数据化运营。运营指标体系是量化分析的 metrics,是说明命题的参考依据。本文从相关分类上的指标体系进行收集和归纳.

阅读更多

Python 调用 StanfordNLP 服务

Stanford NLP Group 提供了自然语言软件处理工具,目前(2021年)能够非常非常方便快捷的调用 POS、NER 等功能。本例是以 Server 方式提供服务,让 Python 能够调用相关服务。相关的步骤如下:

阅读更多

Matplotlib 可视化应用基础

笔记是针对 Python 可视化工具 Matplotlib 基本信息总结,针对的版本是 3.3.1

TL;DR

  1. 图形是对象,所有对象都是 Artists
  2. 图形对象是具有层级关系
  3. 图像优化可以选择具体的对象进行分别优化
  4. 数据可视化建议,先简单摸索后优化

作为 Python 可视化中的重要工具,matplotlib 有广泛的应用——不仅是一个独立 package,而且常被作为其他可视化依赖工具——例如 pandasseaborn 可视化均有相关依赖。

阅读更多

需求和价格分析

对于商品来说不同的定价策略会影响到收益和利润,理解不同的需求的消费者的消费意愿对价格的响应具有重要的实践意义。从分析的角度利用需求曲线,以及价格对市场环境拟合可以用于评估利润的最大值。在基础信息包括:

  • 成本产量,生产单位产品的成本
  • 产品的需求曲线,反映用户对产品不同价格的需求数量。本次的讨论不扩大影响产品需求变化的其他因素——例如经济环境以及竞争者价格,单纯从价格方面讨论
  • 价格弹性,反映给定的需求曲线下,价格每增加一个百分点致使需求减少的百分比 $\text{price elasticity} =-\frac{(\text{demand}_2 - \text{demand}_1)*100}{1% \text{price}_1\text{demand}_1}$ 。具有价格弹性的表现是价格弹性大于 1,反之当数据值小于 1 时,则是不具有价格弹性
阅读更多

RFM 模型与使用 RFE 模型分析用户价值

1. RFM 背景

RFM 是分析用户价值的一种营销分析方法,其目的是为了找到最佳用户的方式,利用帕累托效应衡量当前用户价值和和客户潜在价值。分析的方法正如其名:

  • Recency 最近消费时间间隔,指距离最近一次消费的时间长度,在评分上可以采取 rank 为 10 的方式,其中 1 为最低[^1]
  • Frequency 指定时间段内的消费次数,针对的是在给定是时间跨度范围内(例如 12 个月),用户消费的消费次数。在分析中同样可以采取 rank 为 10 的方式评分[^1]
  • Monetary 消费总额或者平均消费额
阅读更多