並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 53件

新着順 人気順

microadの検索結果1 - 40 件 / 53件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

microadに関するエントリは53件あります。 機械学習データtechfeed などが関連タグです。 人気エントリには 『「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog』などがあります。
  • 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog

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

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

      システム開発本部のデータサイエンスユニットに所属している19新卒の豊原です。 巷で結構耳にするMLOpsですが、結構苦労していらっしゃる組織も多いと考えます。 今回の記事では、マイクロアドで挑戦するMLOpsについての概要と、その挑戦について解説します。 機械学習システムが抱える根本的な問題 私たちの思うMLOpsとは CEという概念 レコメンドシステムが抱える根本的な性質 マイクロアドが作るシステムの現状 MLOpsで実現すること 技術的詳細 Airflowを用いて学習を同時並行で回す MLflowを用いて学習結果を保存する 機械学習エンジニア絶賛採用中 機械学習システムを構築する上で、他の通常のシステムと決定的に違うことがあります。 それはシステムの劣化の早さ*1と問題調査という点にあります。 機械学習システムが抱える根本的な問題 機械学習システムが抱える根本的な性質として、データを基

        新卒がMLOpsに挑戦していく話 - MicroAd Developers Blog
      • Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog

        こんにちは、機械学習エンジニアの河本 (@nnkkmto) です。マイクロアドのシステムにおいて、機械学習が必要な部分の研究開発及び実装を担当しています。 この記事では GCP (Google Cloud Platform)、特に GCE (Google Compute Engine) を用いた機械学習モデル学習バッチのスケジュール実行について紹介できればと思います。 はじめに 前提 全体の流れ 各処理の詳細 スケジューリング Cloud Scheduler Cloud Pub/Sub Cloud Functions インスタンス起動による学習バッチの実行 preempted 時のリトライ処理 終わりに はじめに 現在マイクロアドでは、以下にあるようにGCP を用いた機械学習基盤の構築を進めていて、Kubeflow を用いた実行環境へ移行予定です。 オンプレ×Google Cloud Pl

          Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog
        • Vue.jsを使ってメンテナンスツールを作ってみた - MicroAd Developers Blog

          ご無沙汰しております。 マイクロアドでアプリケーションエンジニアをしているNです。 約1年前「JavaScriptフレームワーク(Vue.js)を導入して」というタイトルでブログを執筆させていただきました。 その時、 興味を示して頂き何らかの反応をいただければ、きっと別の社員がもう一歩踏み込んだVue.jsのお話を書いてくれるんじゃないかと期待しています。 と書いたっきり誰も続いてくれなかったので1年越しではありますが、責任持ってアプリケーションエンジニアの N 動きます。 社内メンテナンスツールをつくってみた 最近WEB開発してないんです。 実は去年の4月ころからだいたいバッチしか作らないチームのリーダーにさせていただきまして、それからずっと趣味以外でWEB開発をしてません。 (実は前回のブログを書いた時にはもう。。。) でもWEB開発したい!JS書きたい。。。 そうだ!バッチのメンテナ

            Vue.jsを使ってメンテナンスツールを作ってみた - MicroAd Developers Blog
          • 約10万行の規模のフロントエンド環境にTypeScriptをマイグレーションした話 - MicroAd Developers Blog

            お久しぶりです。フロントエンドエンジニアの川上です。 業務では、UNIVERSE Ads のフロントエンド開発、フロントエンドの開発環境改善などを担当しています。 はじめに TypeScriptの導入について 導入にメリットがあると結論を出した理由 ① フロントエンドでテスト駆動様開発が可能になる ② Vueコンポーネント に対して TypeScript の恩恵を与えられる 具体的に解説 1つ目のメリットについて 2つ目のメリットについて おわりに はじめに マイクロアドには様々なプロダクトがありますが、私の担当している UNIVERSE Ads について、 フロントエンドフレームワークにVue.js を利用しています。 jp.vuejs.org 開発構成としては、MVVMでバックエンドとフロントエンドはそれぞれ、Spring Boot(Kotlin, Java), Vue.js(Type

              約10万行の規模のフロントエンド環境にTypeScriptをマイグレーションした話 - MicroAd Developers Blog
            • CTR予測における確率補正について - MicroAd Developers Blog

              はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主に広告のClick Through Rate (CTR)予測やReal-Time-Bidding (RTB)の入札最適化を担当しています. 今回はマイクロアドでのCTR予測における確率補正について紹介したいと思います. はじめに CTR予測とは 問題1 学習データが不均衡 問題2 機械学習モデルの出力を確率として扱うのは不適切な場合がある 問題3 学習データの信頼度が高くない CTR予測における確率補正 アンダーサンプリングによって生じたバイアスの除去 Isotonic Regressionによる確率補正 確率補正の効果検証 終わりに CTR予測とは RTBでは下図のように, 広告主とメディア間でリアルタイムにオークションが開催され, オークションに勝利した広告がメディアに表示されます. マイクロアドでは現在オ

                CTR予測における確率補正について - MicroAd Developers Blog
              • Jestを使ったVueコンポーネントのテストを導入した話 - MicroAd Developers Blog

                はじめまして、フロントエンドエンジニアをしている川上です。 業務では、主にサービス要件に沿ったフロントエンド開発を担当しています。 今回は、私自身初めての経験だったフロントエンドのテスト導入手順や、 導入するにあたって気をつけた点などをお話しできればと思います。 はじめに Vueコンポーネントのテストについて Jestの導入について Jestを利用したテスト おわりに はじめに マイクロアドには様々なプロダクトがありますが、私の担当しているUNIVERSEというプロダクトについては、 フロントエンドフレームワークにVue.jsを利用しています。 jp.vuejs.org テストの導入を行うにあたって、今後、現在利用しているVue2をVue3へ移行していくことを考えると*1 TypeScript*2でテストを書いていくのがいいということになりました。 また、TypeScriptのメリットでも

                  Jestを使ったVueコンポーネントのテストを導入した話 - MicroAd Developers Blog
                • 効率的なダッシュボードの作成 - MicroAd Developers Blog

                  京都研究所・TechLabの田中です。 マイクロアドでは、主にエンジニア以外のメンバーが広告配信実績などの各種データにアクセスする際にRedashを利用しています。 Redashから接続しているデータソースには、以前このブログでも紹介した分析用Hadoopクラスタ*1に加えて、MySQLのレプリやBigQueryなどがあります。 これらの異なるデータソースに対してRedashからは同じインターフェースでアクセスでき、手軽にデータの抽出や可視化・分析などが可能です。 また、クエリで抽出したデータを利用して、Redash上にダッシュボードを作成することもできます。 本稿では、そんなRedashの活用方法の1つとして、 スケジューリング機能とキャッシュ機能を利用した簡易的なデータパイプラインを使ってダッシュボードを作成する例をご紹介します。 なお、この記事で扱うRedashの説明はバージョンv1

                    効率的なダッシュボードの作成 - MicroAd Developers Blog
                  • redis threadedI/Oの検証 - MicroAd Developers Blog

                    はじめに マイクロアドでインフラエンジニアをしている柏木です。 マイクロアドでは広告配信に高速なKVSであるRedisを使用しています。 Redisはシングルスレッドでの高速性、安定性を売りにしていました。しかし6.0でマルチスレッド機能であるThreded I/Oが追加されました。 広告配信で多用している、Redisを高速化できるのであれば積極的に導入したいので検証を行いました。 はじめに Threded I/Oとは シングルスレッドでのRedisの処理 マルチスレッドでのRedisの処理 io-threads io-threads-do-reads + io-threads 検証環境 OSの追加設定 今回の検証結果 前提条件 指標の取得方法について loopbackアドレスを利用した検証 実行CPUの指定 Redisの起動コマンド Redisのconfigについて 暖機運転 検証1:I

                      redis threadedI/Oの検証 - MicroAd Developers Blog
                    • Vue 3 に向けて Composition API を導入した話 - MicroAd Developers Blog

                      システム開発本部アプリケーションエンジニアの Edy です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 その Vue.js ですが、「Vue 3 is now in RC! (Vue 3 is now in RC! · Issue #189 · vuejs/rfcs · GitHub)」が公開され、version 3 ( Vue 3 ) が盛り上がりを見せています。 今回は、Vue 2 から 3 へ移行する理由と、 2 から 3 へ version up するために行なっている Composition API の導入 についてお話していこうと思います。 そもそも Vue.js とは ? SFC TypeScript Vue 2 の限界 大規模なプロジェクトになるほど開発効率が落ちる ロジックの再利用にかかるコストが大きい 単

                        Vue 3 に向けて Composition API を導入した話 - MicroAd Developers Blog
                      • 新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog

                        はじめに モノイド 代数学 圏論 Scalaでモノイドを実装する 代数学的な定義に従った整数を加算するモノイドの実装 圏論的な定義に従った整数を加算するモノイドの実装 モノイドの合成 Catsによるモノイドの利用例 おわりに はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性を目指しています。 この記事では、関数型プログラミングの入門的な話として、モノイドについて調べてみたので、この記事で共有させていただきたいと思います。 モノイドについてより深い理解をするために、まず、圏論と絡めたモノイドの説明をしたいと思います。 そしてその次に、より理解を深めるために、Scala のサンプルコードを

                          新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog
                        • リモートワークでDiscordを導入しました - MicroAd Developers Blog

                          追記:この記事がきっかけで活用事例として本に紹介されました。詳しくは以下をご覧ください。 developers.microad.co.jp マイクロアドのサーバサイドエンジニアでチームリーダーを担当している松宮です。 マイクロアドは先月まで全社員フルリモートで、現在はリモートワークを取り入れた新しい働き方を模索している段階です。 リモートワークにおけるコミュニケーションは大きな課題であり、いくつかの試行錯誤がありました。現在はタイトルにもあるように音声・ビデオ通話ソフト「Discord」を導入することで、コミュニケーションの改善をはかっています。 今回は、Discordを導入して、どのようにコミュニケーションを改善したかをご紹介したいと思います。 Discordとは そもそもDiscordとは、無料で利用できるゲーマー向けの音声・ビデオ通話ソフトです。クラウド上にサーバをホスティングし、ユ

                            リモートワークでDiscordを導入しました - MicroAd Developers Blog
                          • CDH (Hadoop) 入門 - MicroAd Developers Blog

                            はじめに 初めまして。マイクロアド21年新卒インフラ担当の森( id:bosq )と申します。 7月に新卒研修を終えてからは、基盤開発グループにて日々勉強しています。 配属後は新しいことのインプットが多いため、今回は学んだことの整理とアウトプットを兼ねて、マイクロアドのデータ基盤で利用しているHadoopについて紹介したいと思います。 はじめに 分散処理基盤 Hadoop / CDH とは Hadoop エコシステム データストレージ (HDFS) と リソース管理 (YARN) HDFS (Hadoop Distributed File System) YARN (Yet Another Resource Negotiator) ノードの役割 分散処理エンジン (MapReduce, Tez, Spark) MapReduce Apache Tez Apache Spark クエリエンジ

                              CDH (Hadoop) 入門 - MicroAd Developers Blog
                            • AI Platform Pipelines の機械学習基盤への導入 - MicroAd Developers Blog

                              こんにちは、マイクロアド機械学習エンジニアチームの河本(@nnkkmto)です。今回、モデル学習における課題解決に向けて GCP における機械学習基盤に AI Platform Pipelines (Kubeflow Pipelines) を導入しました。今回はその内容について紹介します。 従来の方法 抱えていた課題 手段:AI Platform Pipelines 導入時の方向性 導入内容 実行処理 CI / CD 終わりに 参考 従来の方法 マイクロアドでは学習実行基盤として GCP (Google Cloud Platform) を採用しています。 定期的な学習が必要な推論モデルは、 AI Platform Training の単一の job として学習処理の含まれるイメージを cron 実行することで行っていました。 デプロイ・実行をまとめると以下のような構成になっています。 抱え

                                AI Platform Pipelines の機械学習基盤への導入 - MicroAd Developers Blog
                              • BeanValidationを用いるフォームクラスをテストする - MicroAd Developers Blog

                                アプリケーションエンジニア1年目の宮田です。 今回は以下のようなBeanValidationを用いるフォームクラスのテストについて、用いる道具と実際のテストにおけるTipsの2点からまとめます。 import lombok.Getter; import lombok.Setter; import org.hibernate.validator.constraints.URL; import javax.validation.Valid; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @Getter @Setter public class MyForm { @NotNu

                                  BeanValidationを用いるフォームクラスをテストする - 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
                                  • Builderscon2019の参加レポート - MicroAd Developers Blog

                                    こんにちは、まっつーです。 Builderscon2019が終わって早1ヶ月が経とうとしていますが、builderscon2019の2日目に参加してきたのでそのレポートを書きたいと思います! ↓ マイクロアドのエンジニア達です。スポンサー特典で招待枠をもらったので参加させてもらいました! 目次 Open SKT: メルペイ開発の裏側 CN Buildpacksが作る未来 非同期処理の歴史から見たコンピューティングの進化 ウォレットアプリ「Kyash」の先 〜「Kyash Direct」のアーキテクチャ〜 まとめ Open SKT: メルペイ開発の裏側 speakerdeck.com 1本目は株式会社メルペイ Masahiro Sanoさんの発表を聞きました。 「Open SKT: メルペイ開発の裏側」ということで、幅広いテーマを取り上げて、タイトル通り開発の裏側を紹介されていました。 金融

                                      Builderscon2019の参加レポート - MicroAd Developers Blog
                                    • Digdagバッチの基本設計とビルドの実例紹介 - MicroAd Developers Blog

                                      サーバサイドエンジニアの大澤です。主にETL処理のバッチ開発を行っています。 以前の記事で紹介していますが、マイクロアドではバッチ処理のワークフローを主にDigdagを使用して管理しています。 今回は、Digdagを1年以上使ってきてたどり着いた構成について紹介したいと思います。 Digdagバッチ CI/CDの構成 GitHub Enterprise上のバッチを管理しているリポジトリの変化に応じてJenkinsがビルド、テスト、コードチェック、デプロイまで行うようになっています。 バッチはDigdagとDockerを使用して動作するように作っているので、DockerレジストリとDigdagサーバに成果物を登録します。 成果物は対象のブランチに応じて行き先が変化し、masterブランチの変更の場合本番用の環境へ、その他の場合開発用の環境にデプロイされます。 CIの内容はリポジトリ内のJen

                                        Digdagバッチの基本設計とビルドの実例紹介 - MicroAd Developers Blog
                                      • Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog

                                        Chrome84(beta)におけるUser-Agent Client Hintsの調査 はじめまして。Tech Labの郭です。 Tech Labは弊社の開発効率・運用効率・技術レベルの向上を目的として、業界最新かつ有効な技術を研究・導入するチームです。 今回はブラウザ界隈の最新仕様、User-Agent Client Hints(以下UA-CH)の調査結果を少し共有したいと思います。 UA-CHは Client Hintsの拡張で、仕様自体1はまだ提案中のため、確定していません。 この調査結果は、2020/6/16時点 Chrome84(beta)での検証結果となります。 調査経緯 今年の1/14に現在UA-CHの策定者の1人、GoogleのYoav Weiss氏から一通のGroupメール、「段階的にUser-Agent文字列を非推奨と凍結にする2」の中で、2020中に段階的にUser

                                          Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog
                                        • Spark Structured Streaming で遅延データを処理する方法 - MicroAd Developers Blog

                                          マイクロアドのアプリケーションエンジニアの x です。数ヶ月前からストリームアプリの開発を担当しています。ある案件を検証する為、Structured Streaming を使ってみました。 マイクロアドでは、Spark Streaming でデータを5~10秒毎に処理しています。Spark Streaming については、順序保証型分散ストリーム処理 と、 Spark Streaming と Kryo シリアライザーの話 でも解説していますので、ご覧ください。 Spark Streaming は強力なストリーミングですが、遅延したデータを簡単に処理する方法がなく、マイクロアドでも問題となっています。さしあたり解決方法として、 処理する時に event time(実際にイベントが発生した時間)ではなく、ingestion time(データがソースに入った時間)を見る 遅延したデータを捨てる

                                            Spark Structured Streaming で遅延データを処理する方法 - MicroAd Developers Blog
                                          • 京都のIT系学生コミュニティ CAMPHOR- さんとイベントを共催しました - MicroAd Developers Blog

                                            こんにちは、まっつーです。10/5(土)に京都のIT系学生コミュニティ CAMPHOR-さんと「ネット広告を支える技術を知る」のテーマでイベントを共催させて頂きました。 マイクロアドのエンジニア3人で登壇して参りましたので、その時の様子や発表内容をご紹介したいと思います。 はじめに 今年の2月頃にCAMPHOR-さんにお声掛けして、イベント開催の提案をさせて頂きました。マイクロアドとしてはアドテクの面白さをもっと知ってもらいたい想いと、学生さんとコミュニケーションが取れる場になればと考えておりました。 そういった意図をお話させてもらい、CAMPHOR-さんから無事ご快諾頂くことが出来まして、開催の運びとなりました。 当日はCAMPHOR-さん提供のCAMPHOR- HOUSEにお邪魔しました。会場内は少し暗めな照明と温もりのある畳も相まって、集中出来そうな空間でした。学生時代に知っていれば

                                              京都のIT系学生コミュニティ CAMPHOR- さんとイベントを共催しました - MicroAd Developers Blog
                                            • Atomic, volatile, synchronized について - MicroAd Developers Blog

                                              はじめに サーバサイドエンジニアの酒井です. 普段はマイクロアドが提供する広告配信プラットフォーム UNIVERSE Ads の DSP 部分の開発をしています. 今回は JVM 言語におけるマルチスレッドプログラミングに関するいくつかの用語の理解と整理を兼ねて記事にします. 背景 まず Real-Time-Bidding (RTB) についてですが, RTB では大量のリクエストが送られてくる中でレスポンスタイムの制約が 100 ms 以内と非常に制約が厳しいです. そのような環境の中マイクロアドの DSP 開発では, レスポンスタイムとスループットの二つのパフォーマンス指標の制約を常に満たすことが非常に重要になっています. この制約を満たせるようアプリケーションのパフォーマンスを上げるため, マルチスレッドプログラミングが用いられることはよくあります. また, マイクロアドの DSP

                                                Atomic, volatile, synchronized について - MicroAd Developers Blog
                                              • 19年度新卒チームが研修でMVP投票システムを作った話 - MicroAd Developers Blog

                                                ぼーちゃんトップページ マイクロアドの19新卒グループです。 全体研修が終わり、システム開発部の研修として「ぼーちゃん」という月間インセンティブ獲得者を決める、MVP投票システムの開発を行いました。 今回は、その概要と開発時に工夫した点をまとめて記事にします。 昨年度:マイクロアドの新卒4人が研修で社内システムを開発した話 はこちら 19新卒メンバー 目次 ぼーちゃん?自己組織化?MVP投票制度の存在 まずはじめに 設計 DB 状態遷移 技術 フロントエンド サーバーサイド 今後の展開 社内システムをリリースしてみて ぼーちゃん?自己組織化?MVP投票制度の存在 MVP投票制度とは「自己組織化」を掲げる当部署において、 マネージメントの分散の点からインセンティブ獲得者(MVP)を広くみんなで決める必要がある という考えから生まれた制度です。 これにより現場の納得感が得られ、チーム間での情報

                                                  19年度新卒チームが研修でMVP投票システムを作った話 - MicroAd Developers Blog
                                                • Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog

                                                  インフラエンジニアの長田です。 今回は、Ansibleのテスト支援ツールであるMoleculeの実践例について記事にしたいと思います。MoleculeはDockerやPodmanでコンテナを起動し、その中でAnsibleロールのテストを簡潔に行うことができる便利なツールですが、Ansibleで実行したいロールの中にはgrub2のようなブートローダのコンフィグやカーネルパラメータの変更、ネットワーク機器の操作など、コンテナ上でのテストが困難であるケースも存在します。そこで、Moleculeのdelegatedドライバを用いてOpenStack上にインスタンスを構築し、これらのテストを実現したいと思います。 以下、各ツールのバージョンについて、Ansibleは 2.9.9 を、Moleculeは 3.0.4 を前提としています。 OpenStackインスタンスの作成・削除 Moleculeのd

                                                    Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog
                                                  • Focal Lossによる自信過剰な予測の抑制 - MicroAd Developers Blog

                                                    はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や入札最適化の研究・開発を担当しています. 今回はCTR/CVR予測の学習にFocal Loss [Tsung-Yi Lin et al., 2017]と呼ばれる損失関数を使ってみたのでその結果を紹介したいと思います. はじめに Focal Lossとは CTR/CVR予測にFocal Lossを用いることのモチベーション Focal Lossによるcalibrationの改善 検証 LightGBMで自作の目的関数を用いる calibrationの評価指標 実験 まとめ Focal Lossとは 一般的にCTR/CVR予測は学習データ中でclick/conversi

                                                      Focal Lossによる自信過剰な予測の抑制 - MicroAd Developers Blog
                                                    • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

                                                      はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Python)・Spark Streaming(Scala)) ...etc など幅広い分野を担当しています。 担当しているプロダクトの中で広告配信システム(Scala)は、2014年に初期実装され現在(2021年)まで追加改修を継続的に行っているプロダクトになります。2019年の後半に「そろそろ刷新しよう」という声が上がり粛々と基盤固めを進めていましたが、他のプロダクトが落ち着いた今、ようやくチーム一丸となって広告配信システムのリプレイスに取り掛かり始めています。 今回のリプレイスでは Scala の関数型ライブラリであ

                                                        Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog
                                                      • Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog

                                                        京都研究所・TechLabの今村です、本記事ではGoogleが提案するCookieレス広告技術FLEDGEについて簡単な実装コードを交えて説明します。 FLEDGEとは FLEDGEでの広告表示フロー WebAssemblyについて FLEDGEの広告入札を実装する まとめ FLEDGEとは GoogleはChromeでの3rd party cookieの廃止を2023年後半に予定しています。1 3rd party cookieの廃止はプライバシーの保護に役立つ一方、広告への依存度が高い無料サイト・サービスはビジネス的に大きな影響を受けます。 そこでGoogleはユーザのプライバシーを保護しつつ、広告ビジネスを維持するための代替技術をプライバシーサンドボックスとして提案しており、 FLEDGE2はその1つになります。 FLEDGEはWeb広告の中で「リターゲティング広告3」を3rd par

                                                          Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog
                                                        • KotlinフレンドリーなBeanPropertyRowMapper的なものを作った - MicroAd Developers Blog

                                                          アプリケーションエンジニアの宮田です。 自分のチームでは、10月から既存のSpringBootプロジェクトへKotlinの導入を進めています。 今回は、そんな中で直面した課題への対策として、「KotlinフレンドリーなBeanPropertyRowMapper的なもの」を作った件についてまとめます。 BeanPropertyRowMapperとは まずはじめに、RowMapperインターフェースと、その実装の1つであるBeanPropertyRowMapperについて説明します。 RowMapperとは、JdbcTemplate::query等の処理を実行した際に、DBから取得した結果とJavaのオブジェクトとを紐づける機能のインターフェースです。 RowMapperを手動で書いた場合、以下のようになります。 ResultSetからカラム名と対応する型でそれぞれ取得を行い、SampleCl

                                                            KotlinフレンドリーなBeanPropertyRowMapper的なものを作った - MicroAd Developers Blog
                                                          • MAASを導入した話 - MicroAd Developers Blog

                                                            こんにちは。マイクロアドでインフラエンジニアをしているハダです。 2回目にして久々のブログ執筆です。 今回の記事では、マイクロアドで利用を始めたCanonical社のMAASについて記事を書いていきたいと思います。 インストール方法や使い方などの詳細については公式ドキュメントを読んだほうが確実ですのでこの記事の中で触れていません。 背景 マイクロアドではPXE bootとkickstartを利用したOSインストールを、長年利用しています。 現在もその仕組は現役なのですが、今回はデータセンターの移設に伴ってMAASの導入を進めていくことになりました。 マイクロアドでの課題 マイクロアドではPXE BootとkickstartによるOSの自動インストールを行ってきました。 過去から引き継ぎ、より使いやすいようにしてきましたが以下のような課題も出てきました。 PXE Bootを利用したインストー

                                                              MAASを導入した話 - MicroAd Developers Blog
                                                            • より使いやすいデータ分析基盤にするために - MicroAd Developers Blog

                                                              京都研究所・TechLabの田中です。 今回は、データ分析基盤をより使いやすくするために実施した取り組みをご紹介します。 この記事では、結論だけでなくそこに至るまでの過程も一緒に紹介しているので、実務の雰囲気の一端も感じ取っていただければ幸いです。 1.ことの始まり 2.状況の整理 2-1 Hive on MR 2-2 Complex型のカラムに対する pushdown が機能しない 3.対策を考える 3-1 Hive on MR 以外の選択肢 3-2 ネストしたカラムへのpushdown 3-3 必要なアクションは? 4.つまづきポイント 4-1 HDFSファイルが圧縮できていない 4-2 そのDDLは無力 4-3 SETで指定するパラメータ 4-4 HDFSファイルの圧縮形式を確認 5.対策の効果 参考リンク 1.ことの始まり マイクロアドでは、すべてのデータを1つのHadoopクラス

                                                                より使いやすいデータ分析基盤にするために - MicroAd Developers Blog
                                                              • MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog

                                                                はじめに インフラエンジニアの長田です。今回は、MySQL Shellで提供されている種々の便利な機能をコマンドラインで実行する方法について紹介したいと思います。 MySQL Shellとは MySQL Shellは、公式に提供されている新しいMySQLのコマンドラインクライアントで、従来の mysql クライアントと同様にSQLによるデータベースの操作に加え、JavaScriptまたはPythonによる操作を行うためのMySQL Shell APIを備えています。 その中の一つである util グローバルオブジェクトには、これまでのバージョンアップにより、並列スレッドで実行する高速なダンプ・リストア、テーブルデータのインポート・エクスポートなどといった便利な機能が追加されています。 MySQL ShellはWindows、Linux、macOS向けに提供されています。 dev.mysql

                                                                  MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog
                                                                • 最強のPython型チェッカーmypy - MicroAd Developers Blog

                                                                  はじめまして!今年マイクロアドに入社してサーバーサイドエンジニアとしてバッチ開発を担当している根本( id:realyutanemoto )といいます! 今回は、マイクロアドのバッチ開発で利用している静的コード解析ツールのmypyについてのご紹介です。 はじめに バッチ開発で使っているリンター・フォーマッターなど yapf mypy flake8 最強の型チェッカーmypy mypyで型チェックしよう 最近のmypy オプションの追加 エラーコードの有効化/非有効化 特定のファイル/ディレクトリをビルドから除外 スタブパッケージの自動インストール 確認不要のスタブパッケージの自動インストール Pythonのサポート対象バージョンの変更 stdlibのモジュール以外に対してのスタブをmypyが提供しなくなる メソッドや変数の型範囲を狭めやすくなった type(x) を用いた型範囲の決定 Ty

                                                                    最強のPython型チェッカーmypy - MicroAd Developers Blog
                                                                  • RTBにおける落札額・落札確率予測 - MicroAd Developers Blog

                                                                    はじめに こんにちは、機械学習エンジニアの大庭です。昨年の4月に新卒でマイクロアドに入社し、現在はUNIVERSE Adsというプロダクトで入札アルゴリズムの研究開発および実装を担当させていただいてます。 この記事では、僕が現在検証している機械学習による落札予測タスクについてご紹介していこうと思います。皆さんにマイクロアドの事業内容を理解していただく助けとなれば幸いです。 はじめに RTBと入札額決定 落札予測とは? 入札額の最適化 入札額の安定化 落札予測の課題 出力が確率分布 右側打ち切り問題 実装 DeepHitモデル 入札額・落札額のビニング 損失関数 精度検証 ビニングによる落札額分布の変化 落札確率予測 落札額予測 おわりに RTBと入札額決定 Real-Time Bidding(RTB)では下図のように、広告主とメディア間でリアルタイムにオークションが開催され、オークションに

                                                                      RTBにおける落札額・落札確率予測 - MicroAd Developers Blog
                                                                    • 圏論初心者が関手に入門し、Scalaで実装した話 - MicroAd Developers Blog

                                                                      はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性と効率性を目指しています。 過去の記事では、圏やモノイドについて書きましたが、今回の記事では「関手」について共有させていただきたいと思います。 過去の記事: 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog 新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog 以降、関手について説明しますが、数学用語としてそれについて言及する

                                                                        圏論初心者が関手に入門し、Scalaで実装した話 - MicroAd Developers Blog
                                                                      • SSPリニューアルの新規参入者向けチュートリアルを作って内定者アルバイトが爆速で即戦力になる予定の話 - MicroAd Developers Blog

                                                                        はじめに システム開発本部アプリケーションエンジニアの新卒1年目の輿水です。 前提としてマイクロアドのCOMPASSというSSPのプロダクトをScala、Catsを用いてDDDの戦術的戦略を取り入れてリニューアルすることになりました。 Scala、Cats、DDDを初めて学習する人にとっては参入障壁があまりにも高すぎるのですが、その障壁をすこしでも下げて、メンバーに即戦力になってもらうためにチュートリアルを作成しました。 この記事では、実際に内定者アルバイトのS君に研修としてやってもらった時の所感を話していこうと思います! COMPASSとは MicroAd COMPASSはメディアの広告配信の最適化と、包括的な管理を行うことで広告収益を最大化する次世代のサプライサイドプラットフォーム(SSP)です。 https://www.microad.co.jp/services/adplatfor

                                                                          SSPリニューアルの新規参入者向けチュートリアルを作って内定者アルバイトが爆速で即戦力になる予定の話 - MicroAd Developers Blog
                                                                        • アラートメールのslack通知の話 - MicroAd Developers Blog

                                                                          マイクロアドでアプリケーションエンジニアをしているタカギです。 バッチ開発がメインのチーム(第4開発ユニット:通称ゆーよん)に所属しています。 バッチといえば避けては通れないのが、アラート対応ですね。 そういうわけで、今回の記事では、アラートメールのslack通知について記事を書いていきたいと思います。 背景 マイクロアドでは、非常に多くのバッチ処理が走っています。バッチスケジューラとしては、最近はDigdagが主流ですが、一部にはJenkins、Rundeckなどから実行されるバッチも存在します。また、監視ツール系のバッチはcrontabで動いていたりもします。 大抵の場合、アラートメールはメーリングリスト宛に送信され、所属しているメンバーの会社の個人メールアドレスに届く事が多いと思います。 個人のメールボックスには、アラートメール以外にも多くのメールが届いているはずなので、必然的にアラ

                                                                            アラートメールのslack通知の話 - MicroAd Developers Blog
                                                                          • プロダクトにKotlinを導入して1年弱経ったので振り返る - MicroAd Developers Blog

                                                                            アプリケーションエンジニアの宮田です。 自分の所属しているチームでは2019年10月から、既存のJava8で書かれたSpringBootアプリケーションへKotlinの導入を始めました。 今回のブログでは、Kotlinを導入して良かったこと、導入に当たって直面した課題、1年弱やった感想についてまとめます。 Kotlinを導入して良かったこと 安心感を持ってコードを書ける 個人的には「特に意識しなくてもnull安全・immutableなコードが簡潔に書けるようサポートが行き届いていて、その中でコードを書ける」というのがKotlinを導入して最も良かったことです。 やろうと思えばJavaでもKotlinと同じくらい堅牢なコードは書けますが、そのために必要とされる知識や努力は大きく、コードも煩雑になります。 また、「コード全体が基本的に安全な方向に作られている」という安心感はJavaに無いもので

                                                                              プロダクトにKotlinを導入して1年弱経ったので振り返る - MicroAd Developers Blog
                                                                            • Scala依存型の調査 - MicroAd Developers Blog

                                                                              こんにちは。 マイクロアドでサーバーサイドエンジニアをしている飛田です。 今回はScalaの依存型について調査してみましたので、共有させていただきます。 依存型について調査したきっかけは、 Scalaで型レベル”だけ”でクイックソートという記事で、 こちらは型を使ってクイックソートを行う(コンパイル結果がクイックソートの結果になる)という内容になっています。 こちらを拝見して、Scalaの型の柔軟性にかなりのポテンシャルを感じましたので、 Scalaの型に関するトピックとして、「依存型」について共有させていただきます。 依存型とは 依存型とは定義が値に依存する型のことです。 例えば、以下のコードの型 hoge.T は hogeの値に依存している依存型になります。 trait Hoge { type T val t: T } val hoge = new Hoge { type T = St

                                                                                Scala依存型の調査 - MicroAd Developers Blog
                                                                              • Python の高速化 - MicroAd Developers Blog

                                                                                はじめに 機械学習エンジニアの大庭です。普段はマイクロアドが提供する広告配信プラットフォーム UNIVERSE Ads に接続する機械学習 API の研究開発をしています。 マイクロアドでは、機械学習モデルの学習側との連携が容易なこととメンテナンス性を重視して Python で機械学習 API を実装しています。Python は使いやすい反面、基本文法は速いとは言えない言語です。そのため、実行時間制約の厳しい Real Time Bidding (RTB) のなかで使うには高速化を意識しておく必要があります。今回は様々ある Python の高速化手法の理解と整理のため記事にしました。 個人的にですが、Python の高速化は以下の手順で行っていくのがいいと思っています。この記事では、この手順毎に便利なツールやライブラリをまとめました。 ボトルネックの特定 計算量(オーダー)を減らす コード

                                                                                  Python の高速化 - MicroAd Developers Blog
                                                                                • CTR予測にLightGBMを導入した話 - MicroAd Developers Blog

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

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

                                                                                  新着記事