タグ

ブックマーク / blog.recruit.co.jp (15)

  • エンジニア約100人が大集合し、チューニングバトルを展開 久々のリアル開催で絆も深まった「株式会社リクルート 社内ISUCON 2023」

    「久しぶり! 今、何してるの?」 「うわー、やっと会えたね。はじめまして」 ——2023年8月31日、「株式会社リクルート 社内ISUCON 2023」が開催されたリクルート社の最上階の会場であるアカデミーホールでは、そんな会話が飛び交いました。 社内ISUCONは、Webサービスのチューニングバトル「ISUCON※」に触発され、リクルートグループ横断で行われているイベントです。1〜3名でチームを組み、コンテスト形式で、Webサービスの高速化に取り組みます。競うことでフロントエンドやデータベース、クラウドといったWebサービスを支える技術の学びを加速させるとともに、部署や世代の壁を越えて社内エンジニアの交流を図ることを目的にしています。 ※「ISUCON」は、LINEヤフー株式会社の商標または登録商標です 国内のエンジニアや学生が参加するISUCONは今年で13回目を数えますが、リクルー

    エンジニア約100人が大集合し、チューニングバトルを展開 久々のリアル開催で絆も深まった「株式会社リクルート 社内ISUCON 2023」
  • BigQueryによる最大内積検索の実装

    はじめに 機械学習エンジニア田志温です。最近担当した類似アイテム推薦の案件で、BigQueryを使って最大内積検索(MIPS; maximum inner-product search)1 を実装したので、その方法と高速化のテクニックを紹介します。 類似アイテム推薦は「多数のアイテム候補から、クエリとなるアイテムに最も類似したK件を抽出する」というタスクなので、MIPSないし近傍探索の枠組みで解くことが一般的です。 一定の規模を持つサービスでMIPSを実装しようとすると、アイテム数×特徴量次元の行列が何かと厄介です2。第一に、MIPSを素朴な行列積で実装すると、時間・空間計算量がアイテム数の2乗でかかってきます。典型的には空間計算量の方がボトルネックになりやすく、RAMの制約に収めるための工夫が必要になるでしょう。第二に、アイテム数が膨大な場合、特徴量マートから全アイテムの特徴量を転送

    BigQueryによる最大内積検索の実装
  • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2022年度版)

    こんにちは!2022年度エンジニア新人の太田です。毎年反響を頂いているエンジニアコースの研修内容を、今年は受講者の立場から紹介させていただきます。 研修概要 リクルートの新卒エンジニアコースでは、入社した新人を対象に技術研修を行っています。その内容は、実際の開発業務に活かせる技術を扱う「当に必要な生きた知識・技術」を取り入れたものとなっています。 特筆すべき点として、研修の資料はほとんどが内製であることが挙げられます。そのため、講義中の質疑を通してより深い知識や、開発の現場で培われた経験に触れることができます。 フロントエンド、モバイルアプリ、バックエンド、インフラ、データ分析セキュリティなど幅広いテーマが扱われるため、知識のインデックスを張ることにもつながります。またハンズオンや競技形式の演習も取り入れられており、実際に手を動かすことで印象に残りやすく、エラーへの対処も学ぶことができ

    株式会社リクルート エンジニアコース新人研修の内容を公開します!(2022年度版)
  • Kaggle TalkingData Fraud Detection コンペの解法まとめ(基本編) | リクルート

    のようになっています。 click_time以外はカテゴリカルデータで、始めから整数で表現(Label Encoding)されたものが与えられています。 これはデータとしては非常にシンプルでここからいかに情報を引き出すかがポイントとなります。 アンバランスな目的変数 以上を用いて予測する対象がis_attributedというアプリダウンロード有無の指標です。 is_attributedが1のデータは広告クリック後にアプリがダウンロードされたクリックイベント、0のデータはそうでないものです。 約1.8億件の訓練データ全体に対してis_attributed=1のデータは50万件弱で、割合にして約0.2%と非常に少ないです。 このように、目的変数の分布がアンバランスであることがこのコンペの特徴のひとつです。 ちなみにアプリがダウンロードされた時刻attributed_timeも与えられていますが

  • Kaggle TalkingData Fraud Detection コンペの解法まとめ(応用編) | リクルート

    リクルートデータ組織のブログをはじめました。※最新情報はRecruit Data Blogをご覧ください。 Recruit Data Blogはこちら こんにちは。今年2018年4月より新卒でRCOに入社した松田です。 さて 前回の記事 で kaggle の TalkingData AdTracking Fraud Detection Challenge の基的解法を見てきましたが、 この記事はその続きで上位陣たちが公開して下さった解法を勝手ながらまとめます。 上位陣の解法 まず以下がkaggleのサイトにある上位陣の解法リンク&それに対するちょっとしたコメントです。 1位のチーム Kaggle Meetup Tokyo #4におけるflowlightさんによる動画解説まである 2位のチーム 3位: bestfittingさん 2018年6月現在kaggleの総合ランキング1位の人による

  • AWS CloudFrontを使って動的にリサイズ可能な画像をセキュアに見れる仕組みを作った | PSYENCE:MEDIA

    画像アップロード時のシーケンス図 今回は大量のuploadが同時に来ることを想定していないのと画像処理はしないものとしています。ここは単にRailsがS3に受け取った画像をuploadして保存したS3のkeyをDBに保存するだけです。このとき、S3に保存するkeyがURLの一部になるので推測不可能なハッシュ値で保存するようにしておきます。もちろん、Railsを通すのでアプリケーション側での認証が可能です。 ちなみに、この部分もオフロードしたい場合は、S3のpresigned URLを発行し、そのURLに対してuploadしてもらうのが良さそうだと料理画像判定のためのバックエンドアーキテクチャを見て作った後に思いました。 画像取得時の処理シーケンス 画像取得時のシーケンス図 署名付きURLは、画像リストの取得時にCloudFrontが使う秘密鍵と同じ鍵でURLを署名してクライアントに返します

    AWS CloudFrontを使って動的にリサイズ可能な画像をセキュアに見れる仕組みを作った | PSYENCE:MEDIA
  • kaggle初心者の私が3ヶ月でソロゴールドを獲得した方法 | リクルート

    リクルートデータ組織のブログをはじめました。※最新情報はRecruit Data Blogをご覧ください。 Recruit Data Blogはこちら こんにちは。今年2018年4月より新卒でRCOに入社した松田です。 kaggle というデータ分析のコンペティション運営サイトが昨今世間に注目されていますが、 今回 TalkingData AdTracking Fraud Detection Challenge において2月にkaggleを始めた私が単独で金メダル(ソロゴールド)を獲得できたのでそれまでにやったことなどをシェアしたいと思います。 図: kaggleサイト( https://www.kaggle.com/ )のプロフィール画面より 図: kaggleでの活動ログ。中2ヶ月はやってないので実質の活動期間は1ヶ月ほど コンペの具体的内容やテクニックの話は 別記事 にまとめたので、

    kaggle初心者の私が3ヶ月でソロゴールドを獲得した方法 | リクルート
  • AWS DynamoDBを使ってDBの負荷を軽減した話

    こんにちは。鹿島です。今年の3月よりリクルートライフスタイルに入社し、受付業務をサポートする受付管理サービス「Airウェイト」のエンジニアとして活動しております。 今回はAirウェイトのインフラ構成とAPIのロジックを見直し、APIのなかでもDB負荷の高い処理を外部に出してDBの負荷を減らした話です。 Airウェイトは店舗の列整理や受付表管理の煩わしさ、呼出しの手間などの業務負荷を解決する受付管理サービスです。刻々と変化するお客さんの待ち受け状況や案内状況を店舗のスタッフさんがリアルタイムで管理し、共有できるシステムを提供しています。 例えば、お店の状況は次のような操作で変化します。 お客さんが来店して受付 お客さんがWebから受付 店舗スタッフさんがお客さんをご案内 このようなお店の状況の変化に気づいてお店に置かれた各端末がリアルタイムで同期をとるために、端末は頻繁にAirウェイトのサー

    AWS DynamoDBを使ってDBの負荷を軽減した話
  • A/Bテストに用いられる統計的検定手法(ロジック)のまとめ&比較 | RCO Ad-Tech Lab Blog

    リクルートデータ組織のブログをはじめました。※最新情報はRecruit Data Blogをご覧ください。 Recruit Data Blogはこちら 汎用人型雑用AIの stakaya です。 たまたま数年前に社内のBLOGに書いたABテストのロジックのまとめ&比較記事を発掘したので、 このまま眠らせているのはもったいないぞと、 圧倒的もったいない精神を発揮し、シェアさせていただきます。 あの頃は私も若かった。 社内では”堅物・真面目・一途”で有名なものでして、下記文章がお硬いのはご勘弁ください。 はじめに 記事は、施策の評価手法としてしばしば用いられるA/Bテスト(A/B testing)について、できる限り背後にある仮定を明記した上で、まとめたものである。 A/Bテストとは、主にインターネットマーケティングにおける施策の良否を判断するために、2つの施策(通常、A・Bと記載)を比較す

    A/Bテストに用いられる統計的検定手法(ロジック)のまとめ&比較 | RCO Ad-Tech Lab Blog
  • ちょっとした小技で効率UP——アプリケーションをデーモン化〈Node.jsシリーズ vol.7〉

    これまで6回に渡ってNode.jsの魅力を解説してきたこの連載。今回はこれまでの連載では伝えられなかったNode.jsの細部を解説します。 Node.jsの連載第1回目でも述べましたが、Node.jsは「サーバーサイドJavaScript」です。 これまでさまざまな形のサーバースクリプトを書いては走らせてきましたが、実行はいずれもnode (ファイル名)というコマンドを打たなければいけませんでした。 書いたスクリプトをサーバー上で継続動作させるためには、デーモン化したいところ。 そのための便利な仕組みが「forever」です。 foreverは、既存のスクリプトをデーモン化するツールです。 この仕組みを使うと、スクリプトを自動起動したり、何らかのエラーで途中終了してしまった場合の再起動といった処理を自動で行なってくれます。 それではさっそくインストールしてみましょう。 foreverのイン

    ちょっとした小技で効率UP——アプリケーションをデーモン化〈Node.jsシリーズ vol.7〉
  • iOS大規模リファクタリング

    こんにちは。Airシリーズ開発チームでiOSの開発リードを担当している永井です。 この度、Airレジから予約台帳機能を切り出して、Airレジとレストランボードの2つのアプリとして新たに5/10にリリースしました。 iPad版・iPhone版合わせて181,175行あったAirレジですが、今回内部的にもObjective-CからSwiftに全面的に書き換えています。 まだまだリファクタリングしていきたい課題はありますが、コード行数は70%も減り(つまり元々の行数から30%になりました)、SonarQubeで示される技術的負債も500dから21dに減り、かなり成功したと言って良いのではないかと思っています。 今回の取り組みの中で、良かったこと・再検討したいことがいろいろ発見できました。それらについてまとめてみるので、これからSwift採用を検討している方々の参考になれば幸いです。 取り組みのポ

    iOS大規模リファクタリング
  • モダンな開発をするための取り組み

    CETプロジェクトで開発を担当している明智です。 今回は、社内向けに開催したAtlassianユーザ会をレポートいたします。 リクルートライフスタイルでは、Atlassianの製品を格導入して1年が経ちました。 これらの製品を使っていくうちに、「正しく使えてる?」「他のチームはどうしてる?」という疑問が出るようになっていました。 そこで、モダンな開発について触れるために、Atlassianエバンジェリストの長沢さんをお招きし登壇していただきました。 また、社内からもスピーカを募り、各チームでの使い方の共有も行いました。 今回のイベントでは3件の発表がありました。 今の時代に必要な開発環境とこれから 〜継続的デリバリー、DevOps〜 JIRAとAWSTableauを利用しデータドリブンにプロダクトや運用改善につなげる ナレッジを共有する文化を作るために さて、前置きはこれぐらいにして、

    モダンな開発をするための取り組み
  • Markdown で記述した API ドキュメントからお手軽にドキュメントサーバーとモックサーバーを生成する - Gulp で作る Web フロントエンド開発環境 #7 | PSYENCE:MEDIA

    Markdown で記述した API ドキュメントからお手軽にドキュメントサーバーとモックサーバーを生成する - Gulp で作る Web フロントエンド開発環境 #7 wakamsha 2015.08.31 941 15687462236 2018年2月23日更新 : サンプルコードを ECMASCript 2015+ で書き直し、npm-scriptsでの例を加筆しました。 SPA 開発によるサーバーサイドとフロントエンドの完全分業化 Single Page Application ( 以下、SPA ) は従来のサーバーサイドレンダリングを基とした Web アプリケーションと異なり、iOS アプリや Android アプリと同じように Web API を通じてサーバーにリクエストを送り、JSON 形式などで返ってきたデータをもとにダイナミックにレンダリングすることで Web ページ全体

    Markdown で記述した API ドキュメントからお手軽にドキュメントサーバーとモックサーバーを生成する - Gulp で作る Web フロントエンド開発環境 #7 | PSYENCE:MEDIA
  • SparkRをEC2上で動かして分散処理してみる

    こんにちは!美味しいコーヒーを飲むために、毎朝早くにデスクコーヒーミル回してます、アナリティクスチームの高柳です。 アナリティクスチームでは、じゃらんnetやホットペッパービューティーをはじめとしたリクルートライフスタイルのサービスに対して、基礎集計やレポーティング、また、データマイニング(データ分析)を活用し、高速にサービスを改善していくというミッションを担っています。 記事では、データ分析環境としてのApache Spark、特にver 1.4から利用可能になったSparkRを、当チームのAWS上の分析環境に導入検討していたので、その辺について書きたいと思います。 SparkRは、まだリリースから日が浅いことから、日語の記事が相当に少ないので、この記事がみなさんの"Happy SparkR ライフ"のお役に立つことを願っております。 Apache Spark導入の背景 サービスを

    SparkRをEC2上で動かして分散処理してみる
  • 新卒 / 新人のメンターにアサインされたんだけど、何すれば良いの? | PSYENCE:MEDIA

    今回は新卒の方が入社されて、会社からメンターにアサインされたが何すれば良いのか?どうしたらより良いメンターになれるのか?と考えられている方と一緒にメンタリングについて探求していきたいと思います。この記事を書くきっかけになったのは、現在私がサポートさせていただいているとあるお客様からのご相談でした。 お客様:新卒のメンターにアサインされたんですが、どうして行けば良いですかね・・・? 私:そうですね・・・私がメンターから教わったヒントになるかもしれないお話をさせて頂きます。 (以下、お話させていただいた内容・・・) メンターと聞くと何か偉そうだし、いかにも凄い人っぽい響きがしてしまいますよね。私もメンターをやってほしいと言われたりしますが、「自分そんなに凄くないですし・・・」ってなってしまいそうな気がします。ただ、メンタリングを受ける方(以下、メンティー)の成長を促進できるのが良いメンターと捉

    新卒 / 新人のメンターにアサインされたんだけど、何すれば良いの? | PSYENCE:MEDIA
  • 1