blog2017-12-312017年振り返り2017年を振り返る。blog手を動かす、行動するVPSを移行したかったので、ansible触ってみたり、pythonで少しアプリ作ってみたりした。apacheからnginxになってある程度モダンにできたのでよかった。あとは転職がらみで、いくつかの会社に話を聞かせてもらいに行ったりできたのはよかった。自己投資そんなにできなかった気がするけど、東京に引っ越すタイミングで色々買い替えたので、まあいいかな次の5年ビジネス、プロダクトへの貢献に対して、自分ができる/したいことを考えて、動けた1年だったかなと思う。今年はなんといっても転職が一番大きな出来事だった。年始あたりから考えつつ、いくつか話を聞かせてもらいにいったりもして、最終的に今の会社にさせてもらった。転職後でまだまだインプットが多い状態だけど、今のところ、自分なりには良い選択だったんじゃないかなと思ってる。今年は決断した1年だったけど、今年の決断が良かったかどうかがわかるのは来年以降なので、また来年がんばろう。あとはせっかく東京にきたので、東京を楽しみたい。14:412017年振り返りTweet広告を非表示にするもっと読むコメントを書く2017-10-08はてなを退職しましたはてな正式には2017年10月15日付での退職ですが、9月29日が最終出社日でした。はてなには2012年4月に新卒で入社して5年半、濃密な時間を過ごさせてもらいました。お世話になりました、ありがとうございました。はてなでの5年はてなでは、アプリケーションエンジニアとして5年半過ごしました。はてな、家電会議、PINGAなどなど、C向け自社サービスから、B向け自社サービス、受託まで、多くのサービス開発に関わりました。はてなのエンジニアの中でも関わったサービス数は多い方でいろいろと経験させてもらいました。最初の2年くらいは、はてなブログ、Miiverse、はてなスペース、Mackerelと、いくつかのプロジェクトに関わり、エンジニアとして少しずつ成長させてもらいました。この2年でコードの品質やWebの知識など、多少はまともなエンジニアになれたんじゃないかと思います。その次は、はてなブックマークで2年くらいテックリード*1(当時はそういう役割はなかったけど)として開発しました。10周年のタイミングだったので、10周年企画をやり、そのいくつかを担当しました。中でも、トピック機能や関連記事機能は開発していて楽しかったですし、YAPC(前夜祭)やはてなエンジニアセミナーでも発表してよい経験になったなと思います。はてなのリニューアルをしたりしました。Blog他には、シニアエンジニアをさせてもらい、特に何かをしたわけではないですが、エンジニアのキャリアを考えたり、組織について考えたり、少し違う角度からエンジニアについて考えれたのはよかったです。はてなに入ったときはまだ上場前で、今より人数も半分くらいだったので、そこからだんだん会社っぽくなっていくところを中からみれたのは良かったなと思います。いっても、上場で変わったことはそんなになく、総じて働きやすい環境で、周りの人たちも優秀だし、技術に対する理解もある会社なので、はてなで働けて良かったなと思いますし、Webアプリケーションエンジニアにとって魅力ある会社だと思います。前期+後期の期間という意味合い)ので、昨年末あたりから、次のことを考え始めました。5年前を振り返って、やりたいことが変わったかというと、あまり変わっていなくて、研究成果(最新である必要はない)をサービスにいれてエンドユーザに届けたい、それにより新しい価値が提供できるといいなと思っています。あと最近は、テキスト・データとユーザの行動・思想をつなげることに興味があったり、文章の質や面白さに興味があります。これをはてなで出来ているかというと、少しは出来ていますが、専門性(自然言語処理)を活かすよりは、純粋なWebアプリケーションエンジニアとして働くほうが貢献度が高いので、やりたいこととビジネスモデルがあまりマッチしていないなーという気がしていました(あくまで主観ですが)。アプリケーションエンジニアとして、はてなに貢献していくイメージはある程度つきますし、数年後には今の状況も変わりそうにも見えるので、はてなに残るという選択肢もありましたが、自分なりの1つの区切りだったのでわがままを言って、別の環境に行かせてもらうことにしました。Gunosyのデータ分析部で働かせてもらいます。「情報を世界中の人に最適に届ける」という理念や、データ駆動でありデータ分析が強いこと、また最近ではクリックベイト対策などの研究開発もしていることなど、はてなとはまた違った環境なので、いろいろと楽しみです(もちろん新しい環境への不安もありますが)。おわりにはてなの皆様、5年半の間、お世話になりました、はてなで働くことができたのは本当によかったと思っています。ありがとうございました、そして、今後ともよろしくお願いします。2017に参加してきた。トークを応募していたので、本当はトークできたらよかったけど、落ちてしまったので、聴講のみの参加。聞いてある程度覚えているものを。Jupiterなどを使って、分析基盤を作った話。分析基盤の話が半分、野球の話が半分だった。結構な分析基盤をちゃんと作っていてすごい。分析基盤の方に興味があったけど、思ったよりさらっと話していた。Airflowが気になったのだけど、ブログを見てという感じだった。workerをGUIで管理できるらしくて良さそうだけど、設定はやや複雑だったり、依存ライブラリがかなり多いらしい。Pythonで大量データ処理!PySparkを用いたデータ分析のきほんslidePySparkのアーキテクチャの話や、PySparkを使う上での良いTips集だった。商品の概要文を自動で作りたいという話。マルコフ連鎖、自動要約、ディープラーニングという3つのアプローチで、自動生成したところ、自動要約の性能が良さそうだったらしい。概要文にオリジナリティが必要(SEO的に)とのことで、自動要約+言い換えで対応するらしい。5-gramまで使って言い換えすると、元の文章から結構変わるという話だったけど、ゴールがいまいちわからなかった...OpenAPIを利用したPythonWebアプリケーション開発slideOpenAPIとツール、事例について紹介していて、Swagger使うと便利ですという話だった。いうライブラリだと、フレームワークに依存せずにOpenAPIを使えてよいとのことだった。あるようなので使ってみたい。今から使うのが、2.0でいいのかはわからないけど。機械学習におけるデータの再現性についてslide機械学習タスクを複数人で取り組むと、再現性が問題になる。実験の再現性はデータの再現性に縛られるので、ちゃんとデータの再現性を担保したい。そのためにはコードでデータの取得ができるようにしておけるとよさそうなので、そのためのツールを作ったという話。ツール部分はサブで、メインは問題提起をしたいとのことだった。問題にしている部分はすごく共感できる。データのバージョン管理とかしてるのかと思ったけど、その部分はこれからみたいだった。SREエンジニアがJupyter+BigQueryでデータ分析基盤をDev&Opsする話slideデータ分析基盤とデータ分析の文化についての話。いろんな要望に応えていったら、システムが複雑になり、エンジニアチームの負荷も大きくなってしまったので、モデルとビューをちゃんと分離して、分析基盤を作った。ビューは部署ごとに適切なものを用意。今回のPyConJPで自分が聞いたなかでは一番面白い発表だった。現実と向き合いつつ、着実に分析基盤とそれを活用する文化を作っていくすごくいい話だった。PyConJPは3年ぶり2度目の参加。思ってたより初心者向けの解説的な発表が多かった気がする。2017に参加したTweet広告を非表示にするもっと読むコメントを書く2017-03-21言語処理学会に参加した筑波大学であった、言語処理学会第23回年次大会に参加してきた。参加したのは2日目と3日目。聞いてある程度メモをとれたものを残しておく。徐々にメモするの疲れてきて3日目のはあまりメモとれてない。7つの情報をアノテーションした。意味まで踏み込もうとすると、こういった情報が必要になってくるんだろう。アノテーション自体はすごく難しそうな印象だった。クラウドソーシングによる関係知識のアノテーションXとYにおける活性化関係(促進、抑制)をアノテーションする。Xを固定して、Xに対して促進する、促進させる、抑制する、抑制されるという4つの関係となる、体言もしくは用言を文書中から選択してアノテーションする。クラウドソーシングを利用してアノテーションするが、分類のようなタスクとは異なり、完全一致ではないため、ダミーの質問を利用した単純なクラウドワーカーの見極めができないため、別のページに遷移させて、アノテーションの文字単位の一致度をみて閾値以上のアノテーターには正解のパスフレーズを提示するというアプローチをしている。部分一致とか、複数解が許容されるようなタスクになると、当たり前だけどクラウドソーシング使うのも結構大変なんだなと感じた。体言、用言混ぜてやっていたけど、一旦、体現だけにして問題を簡単にしてやってみてもよかったのかなと思った。PDFドキュメントのための言語アノテーションツールPDFをテキスト化したあとにアノテーションしようとすると、構造などの情報が失われて、アノテーション作業の効率が下がるため、PDF自体にアノテーションするツールを作成。PDFにアノテーションしてから、テキストに変換する。学生のときにpdf2textとかでPDFをテキストにしてからアノテーションしたりしてたので、気持ちが分かる内容だった。構造とか残せるといいんだけど、やっぱり技術的に難しいんだな。Japanese難易度を付与した大規模な辞書を生成。難易度が4段階、6段階で付与されている辞書の語を使う。CBOWなどを素性として利用して7割程度の精度で57万語に対して難易度を付与した。この辞書と既存の言い換え表現辞書を利用して、文を平易化した。言い換え表現辞書にノイズがあるため、誤ることもあるが、言語モデルと併用すればよくなる予定とのこと公開されているらしいし、大規模な難易度辞書は使ってみたい。初心者単語はほとんど既存の辞書にカバーされているらしく、辞書外の単語の性能は高くないとのことだった。既存の辞書の難易度って教科書とか教育がベースになってると思うけど、特定分野の難易度の判定もできるのかが気になる。CNNなどを適用しようとするときに、データサイズが少ない問題をデータ拡張により解決しようとした場合に、どのような拡張の仕方がよいかを実験したもの。類似度、シソーラス、ルールベースを試し、データサイズを同じにした場合はシソーラスの性能がよかったという結果。ルールベース、シソーラスだと文脈は壊れないが、拡張される数には限度がある、一方、類似度は文脈は壊れるが、ルールベース、シソーラスよりもサイズを大きくできる。実験ではルールベースに合わせて、3.5倍くらいのサイズでやってシソーラスが良い結果となっていたが、類似度で10倍のデータサイズにしたほうが結果がよくなっていた。文脈守ってちゃんと作るよりも、多少文脈壊れてでもとにかくデータサイズ増やしたほうがよいということなのかな...もちろん、解きたい課題とアルゴリズムによるんだろうけど。サイズごとの性能をグラフ化し、サチり具合みれるとよかったなと思った。キーワードに基づくニューラル文生成のためのリランキング動詞1つと名詞2つの3つのキーワードから文を生成する。Unknownモデルを利用。生成した文をJaccard係数でランキングすると、同じ単語を複数出力する文を高く評価してしまうので、重複単語を考慮したランキング手法を使う。3つのキーワードを含むという制約にしてはダメなのかなと思ったけど、言い換えてよい文が生成されるならよいのかな。キーワードから文生成できると要約とかでも使えそうでよさそうだなと思った。観光地+都市名、観光資源+都市名で検索し、固有名詞を抽出、共起頻度を計算することにより観光のテーマを抽出する。テーマとテーマに関連する観光地グループを生成。手動でNGワード用意したり、表記揺れに対応したりしていて大変そうではあったけど、こういうのをブクマの地域ページでできるといいのかなと感じた。Chatbotsりんなとの会話を感情分析した話。