Scalaに関するokehara_aoiのブックマーク (9)

  • CTR予測にLightGBMを導入した話 - MicroAd Developers Blog

    はじめに 初めまして, マイクロアドで機械学習エンジニアをしている福島です. 今年の4月に新卒でマイクロアドに入社し, 現在は UNIVERSE Ads というプロダクトでCTR(Click Through Rate)予測や入札アルゴリズムの開発研究をしています. 今回はCTR予測について共有させていただきたいと思います. CTR予測ではロジスティック回帰が広く使われてきており, マイクロアドでも長らく利用されてきました. 線形モデルであるため解釈性の高さや推論速度の速さなどのメリットも多く, 現在でも広く使われている手法です. しかし複雑なデータにはフィッティングしづらく, CTR予測のようなカテゴリ変数が多いデータの場合はデータを何らかの方法で連続値に変換する必要もあります. マイクロアドでは, entity embedding1を用いて作った分散表現を利用してカテゴリ変数を連続値に変

    CTR予測にLightGBMを導入した話 - MicroAd Developers Blog
  • 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog

    はじめに こんにちは、19新卒バックエンドエンジニアの飛田です。 弊社では、プロダクトの一部にCatsという関数型プログラミングを行うためのライブラリを導入しており、今後、Catsをより多くのプロダクトに使用していく予定です。 Catsにはモナドやファンクタという概念が登場しますが、これらの概念は圏論に由来しています。圏論を勉強することで、Catsで登場する諸概念をより深く理解することができると考え、今回、圏論の初歩の内容を自分でまとめてみることにしました。 なお、マイクロアドの優秀なデータサイエンティストであり、数学や物理に大変に詳しいT先輩(アイコンがおふとん)にレビューを依頼することにしました。 slackのアイコンがおふとんのT先輩 レビューをしてもらった結果 まとめた内容の初稿をT先輩にレビューをしていただいたところ、以下の通りものすごい量のツッコミをらってしまいました。 レビ

    「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog
  • ScalaMatsuri2019の参加レポート - MicroAd Developers Blog

    こんにちは。サーバサイドエンジニアの松宮です。 今年もScalaMatsuriに参加してきました。そして今年は大名スポンサーとして協賛させて頂きました! 濃い内容のセッションが盛りだくさんで非常に勉強になりましたので、いくつかピックアップしてレポートを書きたいと思います。 ↑ScalaMatsuriに参加したマイクロアドのエンジニアたち 目次 いつかは導入したい、ES + CQRS これからは小まめにCVEをウォッチします・・! 10msの世界で戦うエンジニア必見ですね 関数型プログラミングは技術的にDDDをサポートする CPSとDIはユースケースによって使い分ける また来年! いつかは導入したい、ES + CQRS speakerdeck.com 早速ですが、TIS株式会社の根来さんより「決済サービスで Akka Cluster 使ってみた」のレポートからです。 マイクロアドでもAkka

    ScalaMatsuri2019の参加レポート - MicroAd Developers Blog
  • Using the Java Comparator Construction Method in Scala - MicroAd Developers Blog

    はじめに Ordered[T] compareの実装 コンパレータ構築メソッドを使って定義する Benchmark まとめ 参考文献 追記(2019/03/11) はじめに はじめまして。アプリケーションエンジニアをやってる新卒1年目の石田です。 Scalaをメインで書いているのですが、Scalaは基的にJVM上で動く言語です。なので最近はJavaについても深い洞察が必要になることが多くなりました。 そこで、今回の記事ではScalaJavaAPIを使うようなちょっとした小ネタを紹介したいと思います。 Ordered[T] Scalaにおいて型に順序を付ける場合にはscala.math.Ordering[T]やscala.math.Ordered[T]を使う方法があります。 今回はOrdered[T]の方に着目してみます。 ざっくりいえば、Ordered[T]は型Tを順序付ける戦略を提

    Using the Java Comparator Construction Method in Scala - MicroAd Developers Blog
    okehara_aoi
    okehara_aoi 2019/03/08
    投稿お疲れ様です。
  • Akka Streamsで例外を扱う時の注意 - MicroAd Developers Blog

    マイクロアドのサーバサイドエンジニアの松宮です。日は技術Tips記事ということで、Akka Streamsで例外を扱う時の注意点についてのお話です。 Akka Streamsはフローを分岐した複雑なグラフを作る事が簡単に出来ます。また、例外についても捕捉する手段はいくつか用意されており、エラーにも柔軟な対応が出来ます。しかし、非線形なグラフで例外を扱う時は注意が必要です。 線形なグラフにおける例外処理 まず、シンプルな一直線のストリーム処理から見ていきます。下記のコードは1~10の値を順番にprintするというストリーム処理です。 implicit val system = ActorSystem() implicit val ec = system.dispatcher implicit val materializer = ActorMaterializer() val stream

    Akka Streamsで例外を扱う時の注意 - MicroAd Developers Blog
    okehara_aoi
    okehara_aoi 2019/02/22
    執筆おつかれさまです!
  • Spark Streaming と Kryo シリアライザーの話 - MicroAd Developers Blog

    マイクロアドでアプリケーションエンジニアをしている「G」です。日々、バッチを作ったり WEB アプリケーションを作ったりしています。 今回はライトに Spark Streaming でカスタム Kryo (クライオ)シリアライザーが必要になってしまったお話を書いていきたいと思います。 Spark Streaming とは Spark Streaming とは Apache Spark という分散コンピューティング基盤上でストリーム処理を行うためのソフトウェアです。 マイクロアドでは秒間数万件以上発生するユーザーのアクセスログの処理のために Spark Streaming を利用しています。 詳細は以下の記事をご確認ください。 developers.microad.co.jp ブロードキャスト変数とシリアライズの罠 Apache Spark では、メインプログラムが実行されるドライバーと呼ば

    Spark Streaming と Kryo シリアライザーの話 - MicroAd Developers Blog
    okehara_aoi
    okehara_aoi 2019/02/08
    投稿お疲れ様です
  • 新卒が初めてScalaを触って詰まったところと解決方法 - MicroAd Developers Blog

    18新卒でマイクロアドに入社した山城です。 今回はScalaを一切触ったことのない僕が、いきなりScalaで開発を初めて困ったところと、どうやって解決していったのかをセットにして紹介したいと思います。 初心者がどこで詰まるのかというところ、どのようにして解決したのかを見ていただいて、新人にScalaを教える際の参考にしていただけたらと思います。 目次 前提 新人がScalaで困ったこと一覧 Scalaってそもそもなに? JavaでかけてしまうのでJavaで書いてしまう Optionの扱いにはじめ戸惑う Scala特有のコレクションの扱いに戸惑う まとめ 前提 前提として、僕がどれくらいプログラミングができるのかを話します。 入社半年の新人で、普段はJavaを使って既存のプロダクトの改修や、新規プロジェクトのサーバーサイドからフロントまでを書いています。Scalaは名前だけ知っているくらいで

    新卒が初めてScalaを触って詰まったところと解決方法 - MicroAd Developers Blog
    okehara_aoi
    okehara_aoi 2019/01/11
    投稿おつかれさまです!
  • SparkでGeoIP2を使うとjava.lang.NoSuchMethodErrorが発生する問題の回避方法 - MicroAd Developers Blog

    マイクロアドのサーバサイドエンジニアの松宮です。今回はプログラミングのTips的な記事になります。 タイトルの通り、「SparkでGeoIP2を使うとjava.lang.NoSuchMethodErrorが発生する問題の回避方法」を説明したいと思っておりまして、というのも、SparkでGeoIP2ライブラリの依存を上手く解決できずに、結構時間を使ってしまったので、犠牲者を増やさないためにもこの場でみなさんに共有したいと思います。 事象と解決策を先に示して、詳細な原因は後述しますので、解決策だけ早く知りたい方は前半まで読んでもらえれば大丈夫です。 前提 言語はScala/Java ビルドツールはsbt or Maven 実行可能なjarを生成するために記事ではsbt-assemblyを使っている Sparkのバージョンは最新の2.3.2 (2018年8月現在) GeoIP2ライブラリのバー

    SparkでGeoIP2を使うとjava.lang.NoSuchMethodErrorが発生する問題の回避方法 - MicroAd Developers Blog
  • マイクロアドに新卒で入っていきなりScalaを書かされた話 - MicroAd Developers Blog

    はじめまして。マイクロアドでアプリケーションエンジニアをしている新卒1年目の石田です。 主に、MicroaAd BLADEという広告配信プラットフォームの開発をしています。 内定者アルバイト時代からマイクロアドでBLADEの開発に携わっていました。BLADEのソースコードはJava/Scalaを中心になっており、大半がJavaでした。現在は新規機能開発や、リファクタではScalaで実装を行なっています。 今回は、自身が担当した 「JavaコードのScala化を行う実案件」 に絡めて、「可変オブジェクトの問題」や「ScalaでのDDD」に関する話を書いていきたいと思います。 JavaコードのScala化 自分のScala力が多少まともになった要因となったのが、このScala化の案件です。 私が学生の時には、とあるインタプリタ方式の手続き型プログラミング言語を書いていました。加えて浅学だったの

    マイクロアドに新卒で入っていきなりScalaを書かされた話 - MicroAd Developers Blog
  • 1