ブックマーク / developers.microad.co.jp (14)

  • 効率的なダッシュボードの作成 - MicroAd Developers Blog

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

    効率的なダッシュボードの作成 - 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
  • 新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog

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

    新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - 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
  • 新卒がMLOpsに挑戦していく話 - MicroAd Developers Blog

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

    新卒がMLOpsに挑戦していく話 - 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
  • PythonでDataFrameを省メモリに縦横変換する - MicroAd Developers Blog

    マイクロアドの京都研究所で機械学習エンジニアをしている田中です。 機械学習を利用したユーザーの行動予測の研究開発などを担当しています。 今回は、データの前処理に関するお話をしたいと思います。 データの縦横変換 縦横変換するためのpandasの関数 省メモリに縦横変換する サンプルデータの準備 pandas.Categoricalの活用 scipy.sparseの疎行列クラスの活用 さいごに 参考 データの縦横変換 機械学習や統計解析をする際に頻出するデータの前処理の1つに、データの縦横変換があります。 縦横変換とは、縦持ち(またはlong型)のデータと、横持ち(またはwide型)のデータを互いに変換することを指します。 縦持ちのデータの例 横持ちのデータの例 例示したこの2つのテーブルは、表現形式こそ異なりますが、表しているデータ自体はどちらも同じものになります。 ユーザーの行動予測をする

    PythonでDataFrameを省メモリに縦横変換する - MicroAd Developers Blog
  • ホワイトボックススイッチとCumulus Linuxを使った話 - MicroAd Developers Blog

    はじめまして。マイクロアドでインフラエンジニアをしているハダです。 今回の記事では、マイクロアドで採用しているホワイトボックススイッチと、 その上で動かしているCumulus Linuxについて導入から使用している感想までを書いていきたいと思います。 背景 マイクロアドでホワイトボックススイッチの検証を始めたのは、2015年4月頃からだったと記憶しています。 当時ホワイトボックススイッチが"ちまた"で話題になり始めた頃で、 インフラチーム内でも「実際どうなんだろうね…」と興味はあるけどという状況でした。 ホワイトボックススイッチとは 従来のネットワークスイッチは、購入するとハードウェアとソフトウェア(OS)がセットになって提供されてきました。 ユーザはハードウェアとソフトウェアの組み合わせを自由に行うことはできず、 操作コマンドもスイッチメーカーが提供する独自のものを利用する必要がありまし

    ホワイトボックススイッチとCumulus Linuxを使った話 - MicroAd Developers Blog
  • JavaScriptフレームワーク(Vue.js)を導入して - MicroAd Developers Blog

    マイクロアドでアプリケーションエンジニアをしているNです。 日々、バッチを作ったりWEBアプリケーションを作ったりしています。 今回はライトにJavaScriptフレームワークを導入したお話を書いていきたいと思います。 導入のきっかけ その1~きっかけのきっかけ~ マイクロアドではいろいろな用途でWEBアプリケーションを利用しています。 当然ではありますが一部特殊な用途ではない限りJavaScriptでの実装が含まれています。 これらのいくつかにはjQueryが使われており、現在も運用されています。 そんな中、 あるWEBアプリケーションを刷新する機会があり改めてjQueryを多用したコードを見返すことに、、、 その2 ~jQueryって非常に強力~ jQueryを多用した実装を見返して、改めて思ったのが jQueryって非常に強力。 一方で、この強力なライブラリになんでもお世話になってい

    JavaScriptフレームワーク(Vue.js)を導入して - MicroAd Developers Blog
  • インフラエンジニアと IoT - MicroAd Developers Blog

    こんにちは。マイクロアドでインフラエンジニアとして勤務している伊東です。 今日はインフラエンジニア視点で導入してみた社内 IoT、間接的な業務効率改善の話をいろいろ脱線しながらユルくご紹介したいと思います。 IoT の歴史とマイクロアドの現在と 近年よく聞く「IoT」ですが調べてみると意外と歴史は古いようです。まだ IoT という名前もなくインターネットすら一般的ではなかった 1992 年頃、コーラの自動販売機の残量、温度のデータを送ったのが始まりだとか・・・。または、それよりも1年前、ケンブリッジ大学で研究室のコーヒーメーカーにコーヒーがあるかどうかを確認するために設置されたカメラも「残量」や「温度」を知りたいというコーヒーメーカーに対する欲求であり、間接的ですがそれを実現した IoT です。 さて、マイクロアド社内ではどんな要望、課題があったのでしょうか。 それは、ビッグデータの分析、

    インフラエンジニアと IoT - MicroAd Developers Blog
  • Wikipedia2Vecを用いた文書分類 - MicroAd Developers Blog

    こんにちは、機械学習エンジニアの岸です。マイクロアドのシステムにおいて、機械学習などデータ解析が関わる部分の研究開発を行っています。 学生時代は、医用画像を対象とした医師の診断を支援するシステム (Computer-Aided Diagnosis; CAD) の研究開発を行っていました。マイクロアドに入社してからは、画像解析や広告配信のログを対象とした機械学習を行ってきましたが、最近では主に自然言語処理を行っています。 広告配信をユーザへの広告のレコメンドと捉えると、ユーザに対してWebページの閲覧履歴などから、「何にどれだけ興味があるか」を定量的に評価することが重要です。そこでWebページに記載されている内容から、トピックを推定したり重要なキーワードを抽出したりすることが必要になってきます。マイクロアドでは、こういったところで自然言語処理を活用しています。 自然言語処理においてWiki

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

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

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

    はじめまして。アプリケーションエンジニアの中野です。 以前、MicroAdのデータ基盤の記事で紹介されていましたが、マイクロアドではデータ基盤刷新のタイミングでワークフロー管理ツールのDigdagを採用しました。 今回の記事では、Digdag採用の経緯やワークフローを作成する際に注意した点を紹介します。 Digdag採用の経緯 マイクロアドのDSP*1であるBLADEではBidRequestやImpression*2、Click、Conversion*3、その他BLADEから出力される様々なログやマイクロアドの他のプロダクトのログ、他社から提供されるデータなど、様々なデータを広告配信最適化の分析に活かしています。 これらのログを分析するバッチ処理は各々のジョブが複雑な依存関係を持っています。 これまではcronやJenkinsを用いてこれらの処理を行っていましたが コード管理が出来ていない

    Digdagを使ったジョブ管理 - MicroAd Developers Blog
  • 1