system: [SYSTEM]

user: 3. 本文工作 3.1. 分词纠错 这里用N-gram来对分词进行纠错，将切分过小的词进行合并。例如：“清华大学”可能会被分成“清华”和“大学”，因此要对这些分词进行合并。这里需要将句子分词分成3个词的多个子串。子串如图3所示： 原句：广东工业大学是以工为主的多学科协调发展的大学。 分词后：{广东，工业，大学，是，以，工，为主，的，多学科，协调，发展，的，大学} N-gram子串：{[广东，工业，大学]，[工业，大学，是]，[大学，是，以]，[是，以，工]，[以，工，为主]，[为主，的，多学科]，[的，多学科，协调]，[多学科，协调，发展]，[协调，发展，的]，[发展，的，大学]} 图3. n-gram子串 将每一句话都进行这样的切分，然后将每个子串中的中间的词作为keyword去遍历整个文本集合的keyword，然后在keyword相同的子集里面寻找prefix和postfix，计算出现频率高的prefix或postfix，将其与keyword合并。比如广东工业大学应该是一个词，而分词的时候将其分得过细了，而它们在整个语料库中会同时出现，其同时出现频率会比较高，因此可以将其合并。 3.2. 通过点击率和词相似度特征构建点击预测模型 基于对用户搜索记录的分析来预测用户对于搜索引擎的提示的点击行为。搜索记录包括prefix (用户在输入框的输入)、query_prediction (包含用户输入信息且出现频度最高的前几个词条)、title (搜索引擎推荐或提示词条)、tag (提示词条的标签)、label (用户是否点击提示词条(0或1))。 本文用到的是点击率和词条相似度的特征，如表1。 Table 1 Featur 特征 描述 特征 描述 Prefix_ctr 用户所输入内容点击率 PQ_min_sim 用户输入与高频相关词条的最小相似度 Title_ctr 搜索提示内容点击率 PQ_mean_sim 用户输入与高频相关词条的平均相似度 Tag_ctr 标签点击率 QTi_max_sim 提示词条与高频相关词条的最高相似度 PTi_sim 用户输入与提示词条相似度 QTi_min_sim 提示词条与高频相关词条的最小相似度 PTa_sim 用户输入与提示词条标签相似度 Qti_mean_sim 提示词条与高频相关词条的平均相似度 PQ_max_sim 用户输入与高频相关词条的最高相似度 QTa_max_sim 提示词条标签与高频相关词条的最高相似度 QTa_min_sim 提示词条标签与高频相关词条的最小相似度 QTa_mean_sim 提示词条标签与高频相关词条的平均相似度 表1. 用到的特征 上面的相似性特征都是可以作为判断用户是否会采纳搜索提示的特征。比如用户输入与提示词条之间的相似度，相似度越高而用户的点击概率则会越高。这里增加了11个相似性特征，在预测的时候只需通过训练好的词向量模型多计算11个相似度即可。图4为点击率模型使用特征，图5为添加相似度之后的特征。 图4. 点击率特征 图5. 添加相似度之后特征 基于这些特征，可以使用Boosting来提高预测算法的准确度。Boosting是一种提高任意给定学习算法准确度的方法 [ 14 ] ，图6即为Boosting模型结构。它的思想起源于Valiant提出的PAC (Probably Approximately Correct)学习模型 [ 15 ] 。Valiant和Kearns提出了弱学习和强学习的概念，识别错误率小于1/2，也即准确率仅比随机猜测略高的学习算法称为弱学习算法；识别准确率很高并能在多项式时间内完成的学习算法称为强学习算法。 图6. Boosting模型示意图 这里使用GBDT (Gradient Boosting Decision Tree)来构建模型。GBDT是通过多棵决策树共同影响结果的模型，GBDT学习的过程是每一步都将用到前面的所有树的结论的残差，这个残差就是真实值与预测值之间的差。 3.3. 实验结果分析与比较 实验使用微软的Lihght GBM [ 16 ] 训练模型。Light GBM采用了Leaf-wise (Best-first)的决策树生长策略，可以比level-wise算法 [ 17 ] 减少更多损失。实验硬件平台为Intel酷睿i5-4200U，主频1.6 GHz，内存8G。本实验数据集是使用天池OGeek大数据竞赛提供的数据集，数据样例和各字段的说明如表2、表3所示。实验数据集是用户的搜索记录，训练集包含200万条搜索记录，验证集包含5万条搜索记录。将训练集和验证集合并，使用StratifiedKFold将数据集按五次不同的切分规则切分训练集和验证集，最后计算均值来做比较。 Table 2 Sample dat 挂号{“挂号信是什么”：“0.023”，“挂号网上预约”：“0.029”，“挂号网官网”：“0.015”，“挂号信”：“0.082”，“挂号”：“0.066”，“挂号信单号查询”：“0.075”，“挂号平台”：“0.025”，“挂号网”：“0.225”，“挂号信查询”：“0.201”，“挂号信查询中国邮政”：“0.020”，“挂号预约”：“0.021”}预约挂号网应用1 挂号{“挂号信是什么”：“0.023”，“挂号网上预约”：“0.029”，“挂号网官网”：“0.015”，“挂号信”：“0.082”，“挂号”：“0.066”，“挂号信单号查询”：“0.075”，“挂号平台”：“0.025”，“挂号网”：“0.225”，“挂号信查询”：“0.201”，“挂号信查询中国邮政”：“0.020”，“挂号预约”：“0.021”}挂号网网站0 表2. 样例数据 Table 3 Data field descriptio 字段 说明 数据示例 prefix 用户输入(query前缀) 刘德 query_prediction 根据当前前缀，预测的用户完整需求查询词，最多10条；预测的查询词可能是前缀本身，数字为统计概率 {“刘德华”：“0.5”，“刘德华的歌”：“0.3”，…} title 文章标题 刘德华 tag 文章内容标签 百科 label 是否点击 0或1 表3. 数据字段说明 这里分别使用加了相似性特征和未加相似性特征的模型对比，使用了准确率、召回率和F1-Score。计算方法如公式(3) (4) (5)。 TP (True Positive)真阳性：预测为正，实际也为正 FP (False Positive)假阳性：预测为正，实际为负 FN (False Negative)假阴性：预测与负、实际为正 TN (True Negative)真阴性：预测为负、实际也为负 准 确 率 = T P T P + F P (3) 召 回 率 = T P T P + F N (4) F 1 − S c o r e = 2 * 准 确 率 * 召 回 率 准 确 率 + 召 回 率 (5) 如表4和表5所示，这里使用5组数据的准确率、召回率、F1_SCORE的平均值来对比各个方法。通过对比表4和表5的结果可以看到在这三方面确实是得到了进一步提升。语义相关度可以将一些比较个性化的词语联系到常用的搜索词语，以便于更好的对用户行为进行预测。 Table 4 Results of using only CTR (Click Through Rate 准确率 召回率 f1_score 1 0.7807175 0.6398994887 0.6847090371 2 0.7819975 0.6484725105 0.6888312392 3 0.78199 0.644300217 0.6874386196 4 0.7829825 0.648163451 0.6896990538 5 0.7813425 0.64750502 0.687867357 MEAN 0.781806 0.645668 0.687709 表4. 仅仅使用点击率(CTR)的结果 Table 5 Result after adding semantic similarit 准确率 召回率 f1_score 1 0.84155 0.7516175196 0.7792560601 2 0.8402575 0.7512815861 0.7777781642 3 0.839735 0.750206599 0.7769652014 4 0.8406225 0.7536532763 0.7787168904 5 0.8406225 0.7550104475 0.7790267624 MEAN 0.840558 0.752354 0.778349 表5. 增加语义相似度之后结果 从图7可以看到，增加了文本相似性特征之后准确率提升了，通过上下文信息训练出词向量从而可以计算文本之间的相似度。如果有足够的数据集。训练出来的词向量会更加准确，从而对准确率的提升会更加明显。 图7. 只使用点击率和加入相似度的模型对比