Sparse Text Generation
Summary
文章提出了entmax的训练和sampling策略,解决文本生成中的退化问题的同时,得益于去训练和预测时都是基于entmax所得的稀疏概率分布,又不会额外引入train-test mismatch。文章中对entmax所得的稀疏概率分布没有细致的证明,而是用于19年ACL的一篇文章的结果。
当我去年九月初得知自己进清华九推复试的时候,我在听热狗的 九局下半。在复试进行到一半,却得知自己没有推免名额的时候我苦笑无奈,更多的是心疼我父母供我奔波的操劳。22岁的我怀着青春遥远的梦,深夜和清本直博的挚友晃荡在清华园里,他问我之后打算怎么办,我说考研,相信一定会有大逆转。
认真开始备考,已是10月初。三个月的复习,从B4000转战B3000, 昨日清欢,到恨觉今日情非旧。我以为在变的,其实只是心未澄澈。水灯节,我和研友一起定下了必上岸的约定,不单单因为吃了两顿黄袍加身馄饨,或是住在台儿庄路出门便是大捷,“我的前途,三分老天爷注定,七分靠我自己。”
四月初的天气时常阴晴未定。
由于好兄弟去年参加了这个比赛的缘故(见他的博客),我今年也尝试报名参赛,并也进入决赛,不过可惜只拿到优秀奖。我自己甚是失望,故属文于此,记录下整个答题过程和反思。
赛事方提供的游戏部分公开言语数据(中文),每条记录包括了言语内容本身和对应的细分类标签(正常和4种广告细分类,共5个分类)。首先我对数据进行初步分析,得到数据的数量分布以及对应的标签含义如下表:
数据标签 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
数量/条 | 73034 | 25466 | 500 | 1000 | 2000 |
标签含义 | 普通非广告文本 | 出资源广告 | 退款广告 | 社交广告 | 代练广告 |
由此可见,各类标签的数据十分不均衡,因此我做了以下两种数据增强操作。
在一条直线坐标轴上有V个村庄,P个邮局,邮局建在村庄上,求一种建法,让V个村庄到最近邮局的距离之和最小。
输入:第一行包括两个整数, 1 <= V <= 300,1 <= P <= 30;第二行输入有序的村庄的位置a[i]
输出:输出最小的V个村庄到最近邮局的距离之和
输入
10 5
1 2 3 6 7 9 11 22 44 50
输出
8
首先需要考虑到,如果对$[0, \cdots , i]$的村庄只建一座邮局,那一定是把邮局建在中央的村庄[i/2]中使得到邮局的距离和最小。以下给出证明:
设对于$[0, \cdots , i]$的村庄,将邮局建在$[i/2]$中得到的距离和为S,下标为i的村庄的位置为a[i]。假设只建一座邮局时,邮局建筑的最优位置为$[j](j \ne i)$,则邮局建在[j]的距离和为$S+ abs(a[i/2] - a[j]) \times (i - i/2 - j)$,因为 $S+ abs(a[i/2] - a[j]) \times (i - i/2 - j) > S$,与 [j]为最优位置矛盾,所以 j = i / 2,即得证。
我们可以设置$dp[i][j] := [0, \cdots , i]$村庄中建j座村庄的距离和最小值。由之前证得的定理很容易得到状态转移方程:(min_distance(i,j)表示在$[i, \cdots, j]$建一座邮局的距离和最小值)
给定一个数字序列 $A_{1}, A_{2}, \cdots, A_{n}$,求i,j(1$\le i \le j \le n$),使得$A_{i} + \cdots + A_{j} $最大,输出这个最大和。
样例:
-2 11 -4 13 -5 -2
显然 11+(-4)+13=20为和最大的选取情况,因此最大和为20
使用动态规划,复杂度为O(n)的做法:设置dp[i]表示以A[i]作为末尾的连续序列的最大和,如此一来,要求的最大和其实就算dp[0],dp[1],$\cdots$,dp[n-1]中的最大值,下面想办法求解dp数组。
因为dp[i]要求必须是以A[i]作为末尾的连续序列的最大和,那么只有两种情况:
对于第一种情况,最大和就是A[i]本身。对于第二种情况,最大和是dp[i-1]+A[i]。于是得到状态转移方程