工作描述:
主要职责是负责大数据平台、机器学习、人工智能、自然语言云平台、搜索引擎、个性
化推荐系统、广告系统统计、人脸识别、语音识别、文章质量评级系统、基于spark分布式
爬虫洗稿平台、错别字识别系统、对话机器人、敏感词识别、用户画像系统、情感分析系统、
javaweb系统服务和后台管理、数据报表可视化、移动app等相关项目。以下是项目介绍:
一、大数据平台:
由于项目比较多,所以依赖的大数据生态系统的框架也很多。Hadoop2 ,storm/sparkstreaming(实时性高的用storm,低的用sparkstreaming)、spark批处理、hive、hbase、flume、kafka、sqoop,
mahout、zookeeper、Presto实时查询、kylin、Phoenix、caravel可视化报表、solr cloud集群、
redis 3.0、azkaban任务调度。
二、文章质量评级系统:
通过人工标注的好文章和机器程序生成的差文章作为训练语料,从文章质量的不同
维度计算数据质量特征:文章长度得分,标题错别字得分,内容错别字得分,标题和内
容相似度得分,排版质量得分,标题敏感词得分,内容敏感词得分,语句通顺度n-gram
语言模型得分,语句通顺度n-pos词性标注语言模型得分,标点符号合理度得分,段落
间相似度得分总共11个特征值计算。这些特征数据就是机器学习的训练样本,这边尝
试了随机森林RF,神经网络NN,逻辑回归LR,梯度提升决策树GBDT,每次从训练样
本随机拆分出70%作为训练样本,剩下的30%作为测试样本,经过测试和参数调优,随
机森林RF效果是最好的,模型评估指标AUC为99%, 准确率为91%。模型训练完之后
会把模型持久化到磁盘,在线web预测服务会加载持久化模型,对文章质量进行实时
预测评级。目前分了四级:好、中、差、很差。
三、个性化推荐系统:
算法分为离线算法、准实时算法、在线算法三部分。具体核心算法有:
1)基于用户行为协同过滤算法;
2)基于文本挖掘自然语言处理的contentbase基于内容算法;
3)多策略融合算法;
4)基于线上用户的正负例反馈数据的监督学习算法随机森林和神经网络;
5) 流式增量协同过滤算法;
6)用户兴趣标签提取算法;
7) 文章阅读用户心理学模型
8) 在线预测算法。
四、个性化搜索引擎:
搜索引擎框架我们采用的开源Solrcloud云搜索,已经发展多年,很成熟和稳定。
我们使用spark对文章搜索做索引的初始化,之后通过消息通知机制来增量更新索
引,比如文章新增、修改会通知我们埋点接口服务,实时更新solr索引。
自己封装web文章搜索接口实现中文分词搜索,除了普通搜索,我们融入了个性
化搜索,也就是每个用户输入相同的关键词看到的搜索结果可能不是一样的,即使同一
个用户,当发生大量用户行为的情况下,输入相同关键词,在不同时间看到的结果也是
不一样的,也就是搜索会根据用户兴趣进行实时的迁移。这个个性化完全依赖于智能推
荐引擎。每次搜索都会获取这个用户的个性化推荐结果来和搜索结果取交集。得到的结
果整体上就是既和关键词相关,又和用户兴趣相关。
五、spark分布式爬虫洗稿平台:
通过spark分布式抓取平台抓取各个新闻的网站文章经过文章质量评级算法、敏感
词识别算法、负面情感评论的过滤等,把好文章存到hadoop、solr搜索引擎。
洗稿算法有:
1)文章质量评级算法:详细参见文章质量评级文档;
2)敏感词识别算法:详细参见敏感词深度识别文档;
3)负面情感评论的过滤:详细参见情感分析系统文档。
解析算法有:
1)文章标题解析;
2)文章正文内容解析;
3)带html排版结构的正文解析。
六、对话机器人:
多个算法策略实现智能客服、闲聊、知识图谱、成语接龙、对联生成、诗词生成、周公
解梦、猜谜语、计算器等等:
1、深度学习seq2seq算法—解决闲聊对话
2、深度强化学习DeepReinforcementLearning (DQN)--多轮对话优化
3、搜索匹配,计算和用户问题文本相似度最相似的问答对 -- 使用solrcloud开发搜
索排序插件
4、知识图谱问答策略—使用图形数据库Neo4j解决知识图谱实体属性的匹配
5、增加其他规则性的算法控制
七、错别字识别系统:
错别字识别主要的算法是抓取大量文章,使用序列模式挖掘算法PrefixSpan训练一
个ngram语言模型,结合海量正确词库和错误词库进行错别字识别,同时使用solr搜
索引擎,结合ngram语言模型,查找和前缀词拼凑一起的拼音相似和词形相似的共现
频率支持度较高的词作为纠错词的推荐。
n-gram是一种统计语言模型,用来根据前(n-1)个item来预测第n个item。在应
用层面,这些item可以是音素(语音识别应用)、字符(输入法应用)、词(分词应用)
或碱基对(基因信息)。一般来讲,可以从大规模文本或音频语料库生成n-gram模型。
习惯上,1-gram叫unigram,2-gram称为bigram,3-gram是trigram。还有four-gram、
five-gram等,不过大于n>5的应用很少见。
我们主要使用bigram和trigram。对应的还加入基于词性的统计npos语言模型,
同样用二元bipos和三元tripos。
八、敏感词深度识别:
从原始词编辑距离相似度、拼音编辑距离相似度、词形相似度、语义相似度、声调
相似度5个维度计算和敏感词库的相似性,相似度达到指定阈值的时候给予敏感词提醒。
1)文章内容标准化:全角转半角,繁体转简体等等;
2)遍历词库的每一个词(这些词目前有2000个),分别和文章内容里的所有相同长
度的词(挨个按比较的敏感词长度拼词,这个词的数量一般就是文章内容的字数,一般大约500到几千不等,假定按3000字计算),整体计算复杂度为2000*3000=600万次;
3)每个词库里的敏感词和文章里的每个词计算原始词编辑距离相似度、拼音编辑
距离相似度、词形相似度、语义相似度、声调相似度,然后把这5个相似度分值以不同
权重按加权平均法算法总分。
九、情感分析系统:
基于词典和监督分类的两种实现方式。
十、关键词和自动摘要:
都是使用TextRank算法提取。
十一、用户画像系统:
主要是hive离线统计和spark相关标签算法计算。
十二、广告系统统计:
接口+hbase+hive统计。
十三、报表系统:
1、基于java Spring mvc和百度echars图表可视化开发 2、caravel可视化报表工具配置。
十四、java web服务和自然语言云平台:
目前有搜索服务、推荐服务、埋点服务、自然语言服务和web云平台。
十五 、人脸识别和年龄识别预测
基于TensorFlow深度学习的CNN卷积神经网络人脸识别,人脸检测和对齐,人脸比对,人脸年龄和
性别预测
十六、语音识别
基于TensorFlow深度学习端到端的学习。