k_osawaのブックマーク (166)

  • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

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

    Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog
  • チーム管理対象サービスプロジェクトの導入と比較 (Cloud 版 Jira Service Management) - MicroAd Developers Blog

    はじめに マイクロアドでの利用状況 Jira Service Management Cloud Confluence Cloud Jira Service Management について カスタマーポータルは専用URLから オープン/非公開設定でアクセス制御 自動化を利用して作業を効率化 ナレッジベースで情報提供と自己解決の促進 企業管理対象とチーム管理対象のサービスプロジェクトの違い 機能比較 チーム管理対象サービスプロジェクトの利用メリット チーム管理対象サービスプロジェクトの利用デメリット 実際の設定例 カスタムフィールドの追加方法 ワークフローの設定方法 チーム管理対象サービスプロジェクトを利用して実現したこと 結論 管理者として感じていたこと ディレクターとビジネスチームの問い合わせ窓口の運用開始 ビジネスチームでの課題 ナレッジベースの提供に関して ヘルプ業務に関して ビジネス

    チーム管理対象サービスプロジェクトの導入と比較 (Cloud 版 Jira Service Management) - MicroAd Developers Blog
    k_osawa
    k_osawa 2021/07/12
  • 圏論初心者が自然変換について学んでみた! - MicroAd Developers Blog

    こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性と効率性を目指しています。 マイクロアドでは、プロダクトの一部にdoobieというDB操作ライブラリを使っていまして、 詳細は割愛しますが、その中でTransactorという自然変換を行うものが登場します。 今回はライブラリの背景にある概念を知るために、「自然変換」の概要について学びましたので、ここで共有させていただきます。 過去の記事: 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog 圏論初心者が関手に入門し、Sc

    圏論初心者が自然変換について学んでみた! - MicroAd Developers Blog
  • JIRAカンバンボードを使用した開発の進め方 - MicroAd Developers Blog

    マイクロアドでアプリケーションエンジニアをしているタカギです。 今回の記事では、マイクロアドでどのような流れで開発が行われているのか、について記事を書いていきたいと思います。 システム開発部の組織構成 まず、システム開発部がどのようにチーム分けされているのか、見ていきましょう。 システム開発部は大きく4つのグループ(プロダクト開発グループ/基盤開発グループ/IT戦略グループ/Tech Lab)に分かれており、プロダクト開発グループはさらに6つのユニット(ディレクションユニット/第1-4開発ユニット/データサイエンスユニット)に分かれています。 それぞれのチームの主な役割を簡潔に書いてみました。 プロダクト開発グループ ディレクションユニット:ビジネスサイドとのやり取り、開発のとりまとめ 第1開発ユニット:広告配信処理(DSP)の開発 第2開発ユニット:広告配信処理(SSP)の開発 第

    JIRAカンバンボードを使用した開発の進め方 - MicroAd Developers Blog
    k_osawa
    k_osawa 2021/06/30
  • 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
  • UNIVERSE Adsの監視基盤 - MicroAd Developers Blog

    京都研究所・TechLabの田中です。マイクロアドでは、先日正式提供を開始した*1UNIVERSE Adsの開発と並行して、UNIVERSE Adsのサービス監視用の基盤も整備してきました。 今回はそんなUNIVERSE Adsの監視基盤の概要をご紹介します。 サービス監視の必要性 監視対象となるサービスの構成 サービス監視の方針 監視基盤の構成 データの収集 ストレージ 可視化 アラート 監視の監視 最後に サービス監視の必要性 UNIVERSE Adsは、24時間365日稼働しており常に大量のトラフィックを高速に処理する大規模システムです。このシステムは、互いに疎結合な関係にある100個以上のコンポーネント(マイクロサービス)から構成されています。そのUNIVERSE Adsがサービスとして正常に機能していることを常に監視するには、ヒトによる目視確認だけは到底不十分で、監視用のシステム

    UNIVERSE Adsの監視基盤 - MicroAd Developers Blog
  • Impalaのメタデータで困った話 - MicroAd Developers Blog

    前提 処理の概要 メタデータ更新問題 テーブルの転送フロー修正前 メタデータと統計情報の紐づけ テーブルの転送フロー修正後 メタデータ大きすぎる問題 突然のERROR 大きくなりすぎたオンメモリメタデータ 解決方法 まとめ 参考リンク マイクロアドでETL処理周りなどデータエンジニアリングを担当している高橋です。 マイクロアドではアドホックな分析用途にImpalaを導入していますが、集計元テーブルの準備、具体的にはメタデータ周りの設定に手こずった経験があります。 今回はどこに苦しんだのか、どう解決したのかなどをお話ししたいと思います。 前提 マイクロアドでは広告配信ログを共通のHadoopクラスタ(以後、CDHを利用しているのでCDHクラスタと称します)で処理しています。詳細は以下のブログ記事をご参照ください。 developers.microad.co.jp developers.mic

    Impalaのメタデータで困った話 - MicroAd Developers Blog
  • RTBにおける落札額・落札確率予測 - MicroAd Developers Blog

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

    RTBにおける落札額・落札確率予測 - MicroAd Developers Blog
    k_osawa
    k_osawa 2021/02/22
  • Vue.jsでのグローバル定数管理を工夫してみた話 - MicroAd Developers Blog

    システム開発フロントエンドエンジニアの工藤です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 そこで、フロントエンドエンジニアとして効率の良いVue.jsの開発を目指し、日々奮闘しています。 今回は、Vue.jsでのグローバル定数管理についてお話していこうと思います。 はじめに マイクロアドには様々なプロダクトがありますが、私の担当しているUNIVERSEというプロダクトについては、 フロントエンドフレームワークにVue.jsを利用し、SFCを採用しています。 Vue.jsやSFCについては、以前の記事を参考にするとより詳しく理解頂けると思います。 developers.microad.co.jp また、props down、 events upの思想にならいながらコンポーネントの細分化を行うことで開発効率上昇やUIの統一

    Vue.jsでのグローバル定数管理を工夫してみた話 - 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
    k_osawa
    k_osawa 2021/01/25
  • アドベントカレンダー完走 2020 - MicroAd Developers Blog

    あけましておめでとうございます。 マイクロアドのシステム開発部 の N こと 奈良橋 です。 昨年 年末のことになりますが 例年通り無事 MicroAd (マイクロアド) Advent Calendar 2020 を完走しました! 2020年もマイクロアドらしいアドベントカレンダーになりました。 そう思うのも マイクロアドを技術系イベントで見かけた事がある方には Scalaを押し出している会社 とのイメージを持たれることが多いのですが、PythonKotlinの記事も多く 中の人から見ると社内標準言語として他の言語も成熟してきている状況が感じ取れたりしているからです。 また、多彩なツールや環境に触れた話だったり機械学習もまたマイクロアドの特色が出ていて良い形でらしさが出ています。 社内ではTypeScriptも徐々に盛り上がりを見せているので、来年は多くのTipsが上がってくると期待し

    アドベントカレンダー完走 2020 - MicroAd Developers Blog
    k_osawa
    k_osawa 2021/01/12
  • 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
    k_osawa
    k_osawa 2020/12/26
  • マイクロアドのPC事情 - MicroAd Developers Blog

    マイクロアドで社内SEをやっております高橋です。 今回はマイクロアドのPC事情(支給PCや交換サイクル)について紹介したいと思います。 マイクロアドで支給してるPC 特にこだわり等がなければ現在は下記の中から選択してもらっています。 こだわりがある場合、条件を満たすPCならば、適宜相談をして購入するPCを決めております。 【営業】 HP elitebook dragonfly [Core i7 16GB 256GB] SurfaceLaptop3(13inch) [Core i5 16GB 256GB] 【開発】 HP ZBook Firefly 14 G7 Mobile Workstation[Core i7 16GB 512GB NVIDIA Quadro P520] MacBookPro 13inch [Core i5 16GB 512GB] MacBookPro 13inch [A

    マイクロアドのPC事情 - MicroAd Developers Blog
    k_osawa
    k_osawa 2020/12/07
    水濡れや落下で物理的に壊してしまう人が時々いるため
  • お手軽・簡単?!Cloud Storage Connectorを使ってHadoopクラスタからGCS・S3にデータを移動する - やっさんメモ

    qiita.com この記事は MicroAd (マイクロアド) Advent Calendar 2020 - Qiita の3日目の記事です。 昨日は Kotlin大好き? wrongwrong の以下のGitHub ActionsでJava/Kotlin製ライブラリ(ビルドツールはgradle)のCI環境構築する話でした。 qiita.com 3日目の記事は、Hadoopネタです。 HDFSに貯めたデータをクラウドストレージに持っていってクラウド上で何かをしたい(BigQueryから参照させたいetc)。 また、バックアップ先としてクラウドストレージを使いたい、クラウドストレージのデータをHadoopクラスタから参照したい。。。 など、Hadoopクラスタからクラウドへ、また、その逆についてもやりたいケースがありますが、その為にローカルに落として aws s3 や gsutil などを

    お手軽・簡単?!Cloud Storage Connectorを使ってHadoopクラスタからGCS・S3にデータを移動する - やっさんメモ
    k_osawa
    k_osawa 2020/12/04
  • CTR予測にLightGBMを導入した話 - MicroAd Developers Blog

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

    CTR予測にLightGBMを導入した話 - MicroAd Developers Blog
    k_osawa
    k_osawa 2020/11/24
  • Akkaを利用したクローラ開発 - MicroAd Developers Blog

    こんにちは、Tech Labの中野(@tosametal)です。 記事ではAkka(Scala)を利用して開発したクローラの紹介を行います。 ストリームデータに対してクロールをする上で工夫した、ドメインごとのクロール頻度制御などについて紹介します。 Akkaはメッセージ指向のアクタシステムがベースとなっており、スケーラブルで弾力性のあるシステムを構築することが出来ます。 Akkaの詳細な説明は記事では省略するため、興味がある方は 公式ドキュメント を読んで頂ければと思います。 概要 マイクロアドで独自に定義した、あらゆる事柄を目的を軸に階層構造で分類したものをトピックカテゴリと呼びます。 今回紹介するのはサイトのページのトピックカテゴリを判定するための前処理として動くクローラです。 以下はページのトピックカテゴリ判定を行うシステムの一部で、クローラは赤枠で囲った部分です。 kafkaか

    Akkaを利用したクローラ開発 - MicroAd Developers Blog
    k_osawa
    k_osawa 2020/11/17
  • アラートメールのslack通知の話 - MicroAd Developers Blog

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

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

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

    プロダクトにKotlinを導入して1年弱経ったので振り返る - MicroAd Developers Blog
  • 2020年度新卒チームでRedisの管理システムを作った話 - MicroAd Developers Blog

    こんにちは。マイクロアド2020卒グループです。 マイクロアドのシステム開発部では、新卒メンバーのみで1つのシステムを作る『開発研修』を2018年度から行っています。 過去年度の開発研修 2018 : マイクロアドの新卒4人が研修で社内システムを開発した話 2019 : 19年度新卒チームが研修でMVP投票システムを作った話 2020年度の開発研修では、「Redis管理アプリ」を開発するという課題が与えられ、20卒のメンバーで開発を行うことになりました。 今回は開発したアプリの概要と工夫した点をまとめて記事にします。 Redisとは? Redisとは、KVS(Key-Value Store)のデータベースで、インメモリであるため高速に動作します。マイクロアドのプロダクトにもRedisが採用されています。 Redisを長期運用する際にFailoverを繰り返すと、どのノードがマスタなのかと

    2020年度新卒チームでRedisの管理システムを作った話 - MicroAd Developers Blog