2019-06-01 weeklyまとめ

ゼロから作るDeep Learning 2 自然言語編 読書会 第5回

今週は「ゼロから作るDeep Learning 2 自然言語編 読書会 第5回」に参加してました。
https://retrieva.connpass.com/event/131746/

ちょうど読んでたところなので、理解を深めるついでに発表してきました⊂(・8・)⊃ 資料は以下のとおりです。

当日、word2vecはなぜバイアスを使っていないのかという質問がありましたが、 よくよく考えてみると入力された単語と対応する重みを取り出しているだけであり、 常に入力は1か0のためバイアスはWにそのまま取り込むことができ、わざわざ別途用意する必要が無いからかなと思います。 つまり、通常の (input ・ W) + b の場合、inputが様々な範囲の値を取りうるため、inputの値によってはWが大きくても出力が小さくなる場合があり、一定値のバイアスを加算することに意味があります。 ですが、word2vecの場合はinputは0か1なのでバイアスをWの中に含めても結果が変わらないため、別途用意する必要が無いのかなと思います。

rubocopの並列auto correct

銀座Rails#9でrubocopの --auto-correct が並列実行できないという話をきいたんですが、 rubocopはファイルごとにcopを書けているので、基本的に競合は発生しないはずですしできるはずでは…みたいなことを懇親会で話してました。

たぶんこの辺のキャッシュ周りの問題があるのでおそらくやってないと思うんですが、わりと回避できそうな気持ちもしなくもない…(もう少し読んで要確認)
https://github.com/rubocop-hq/rubocop/blob/master/lib/rubocop/runner.rb#L41

Sparkやってる

AWS Glueを使ってPySparkで開発をしてる…んですが、わりと思ったとおりに動いてくれなくて難航中な感じです。
S3の複数テーブルをjoinしてユーザごとにgroup byして出力みたいな用途で、table_name/partition_key/user_id/xxxxx みたいにS3のパスを区切って、計算はすべてuser_idごとに独立してるので完全に並列処理できるはず… ただ、Sparkの仕様でJoinする時に前のステージの処理が全部終わっていないといけない?らしく、思ったように並列に走ってくれなくてSuffuleが頻発して難航してます… すべて並列にロード〜出力まで全部できるのでかなりきれいに動くはずなんですが、それをSparkのクエリでどう表現するのかが難しい感じですねー…