intel实习第一个月总结

  在intel的spark实验室实习已经一个月了,在和蔼的主管以及学弟的帮助下逐渐熟悉spark相关的编程环境。在编写了一个并不算成功的lsh算法后,是时候做出总结继续前进了。

第一周

  除了在公司以及自己的电脑上配置spark和编程环境以外,这周开始调研中文分词的工具,要求速度快拥有apache的license并且能够和开源的搜索框架相结合。最后把目标锁定在ik-analyzer以及ansj-seg上面。
  这周花了大量的时间纠结在公司电脑不能上外网下依赖的问题上面,没有及时和与经验的同事沟通,在构建工程的时候浪费了许多时间。
第二周
  这周主要利用sbt重构了ik-analyzer的依赖,由于各种因素mac的环境还没有配好,利用公司的电脑构件项目依然效率很低。在此同时,对text mining的过程以及各项主流工具进行了调研。
第三周
  这周终于配置好了mac的开发环境,着手实现lsh算法。lsh算法利用降维以及多次哈希将相似的向量放到同一个band中,是一种快速但不精确的聚类方法。我需要实现spark版本的lsh生成向量之间的相似性矩阵。为knn算法提供接口。看懂了lsh原理之后,我借鉴github上已有的lsh算法,确定了相似性矩阵的接口以及实现方案。
第四周
  这周与学弟交流了很多,在本地搭建了spark的单机运行环境,找到了spark以及scala的api 完成了lsh的spark实现。在集群上跑的时候因为实现的时候没有考虑性能的因素,比如在map之前调用distinct,使用groupbykey而不是aggregatebykey使的shuffle的时间以及内存过长。同时,哈希次数过多使得产生过多重复的聚类。
  最后,还是成功的把程序跑了下来,但是最后knn的准确率只有10%,离预期的37%差了好多。分析下来,hash函数的选择可能有问题,jaccard相似度和欧氏距离相似度并不一样,同时利用jaccard相似度直接作为矩阵的相似度并不能反映向量之间距离的远近。在实现之前,没有做好整体的分析,没有了解相关的论文,而只是追求最后能有结果这种做法太武断了。后来看了篇论文发现先利用random project(kd tree)做映射再聚类,然后计算聚类下向量的相似度是可行的。
  下周会有新的任务,lsh只能告一段落,在两周的时间内没有利用好机会实现lsh得到该有的结果十分可惜。
总结
  这一个月,因为其他事情牺牲掉了工作的效率。有些东西越陷越深徒增烦恼,只能先放一放了。
  下个月的任务是测试spark的性能,重新专注起来,多交流多思考,在完成新任务的同时努力实现新一版的lsh。同时,得重新打好基础,重新出发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值