Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【ML Tech RPT. 】第13回 機械学習のモデルの評価方法 (Evaluation Metrics) を学ぶ (4)

f:id:ssatsuki040508:20181210005017p:plain
DSOC研究員の吉村です. 最近, 自室の乾燥が気になってきたので, 湿度計を購入しました. 今までは, なんとなく調子が悪いから乾燥しているな, と思う程度だったのですが, 実際の湿度が具体的に数値で見れるようになったことで, 事前に対策を打てるようになり, QOLが少し上がりました.

さて, 今回も機械学習のモデルの評価方法についてまとめていこうと思います. いよいよ今回からは少し特殊な問題設定における評価指標について見ていきます. 今回は主にマルチラベル分類 (multi-label classification)における精度評価方法について扱います. 一部, ランキング学習 (learning to rank)の評価手法についても述べます.

問題設定が込み入ってくると, それだけ評価の方法は難しくなります. 加えて, それが妥当な評価なのか, 何を測っている指標なのか, という部分も曖昧になってきます. そのため, そういった部分にも注意を向けて今回も見ていきましょう.

続きを読む

【Geek Seek Toolsで買われた、気になるモノ達】第10回「Google Pixel 4 (スマートフォン)」

f:id:hartmann3555:20191205172951j:plain

はじめに

こんにちは。DSOC Data Direction Group でデータエンジニアをしている千葉祐大です。

本連載もかれこれ10回目となりました。

途中でネタが尽きるかなと懸念していましたが、日々魅力的なガジェットが発売され、社内の生産性向上への感度の高い方が購入してくれているので、当分はご紹介を続けていけそうです!

さて、この記事は弊社の社内制度である Geek Seek Tools *1で購入されたガジェットの中から、僕がイケてると感じたものを気の赴くままに紹介していく連載となっています。

今回は Geek Seek Tools for Power Apps というアプリ開発に携わるエンジニア・デザイナー向けの端末購入制度を利用して、Google Pixel 4 を購入した、DSOC Creative Group の藤川真衣さんにお話をお伺いしました。

はじめての Android

事前に Android は初めてとお伺いしていましたが、今までは iPhone をお使いだったのですね。

そうですね。ずっと iPhone でしたが、同時に Android にずっと憧れをもっていて、良さそうな端末を探していました。

最近の iPhone は新モデルが出るたびに価格が高くなっていくにも関わらず、「すごい」と感じる新機能が個人的にはなくて、もっと驚きがほしいなと思っていました。

そんな中、Google Pixel 4 の発表を見て、良さそうだなと思って購入しました。

*1:生産性向上に資するガジェット・デバイスその他が購入しやすくなる制度。Geek Seek Tools の詳しい説明については第1回をご覧ください。

続きを読む

【Techの道も一歩から】第23回「pybind11を使ってPythonで利用可能なC++ライブラリを実装する」

f:id:kanjirz50:20190104142720j:plain

こんにちは。 DSOC R&D グループの高橋寛治です。

普段はPython言語によりアルゴリズムの実装を行っています。 スクリプト言語はコンパイルが不要であり、試行錯誤しやすいためです。 しかしながら、実行速度はコンパイル言語に比べて見劣りします。

そこで今回は、高速動作を目的にC++で実装したアルゴリズムをPythonライブラリとして利用する方法について紹介します。 社内で使うアルゴリズムについて計算量が多い処理を実装したところ、Python比で10倍ほど早くなりました。

pybind11とは

pybind11はC++11をPythonからお手軽に取り扱うためのヘッダライブラリです。 これまでにSWIGやBoost.Python*1など、C++を手軽に扱うためのライブラリはありましたが、手順はやや複雑です。 Python用ラッパーモジュールを素で実装するのに比べると、上記ライブラリはかなり手軽ですが、型の変換などで同じような記述*2をたくさんしていました。

pybind11の利用イメージを簡単に説明すると次の3ステップとなります。

  1. 高速化したい処理をC++で記述
  2. 関数やメソッドをPythonからどう呼ぶか、定義
  3. ビルドしてPythonから利用

pybind11のインストールは pip コマンドで完結します。

pip install pybind11

さて、それでは簡単なアルゴリズムを実装しながら pybind11 に慣れていきます。

*1:Python2時代にPythonのコンパイルをUCS2かUCS4で行うかでハマったことを思い出しました。

*2:ボイラープレートとも呼ぶ

続きを読む

ボドゲで学ぶプロジェクト管理

こんにちは。Sansan事業部プロダクト開発部の光川です。関西支店で勤務しています。

Sansan Advent Calendar 2019 の8日目の記事を担当します。 adventar.org

この記事では、プロジェクト管理が学べるボードゲーム「プロジェクトテーマパーク」を何度か遊んでみた時に得た学びを紹介します。

What's プロジェクトテーマパーク?

f:id:mitsukawa_sansan:20191202132734j:plain

プロジェクトテーマパーク はプロジェクト管理を学ぶためにヌーラボ様が開発したボードゲームです *1。 チームで協力してアトラクションを建築し、期日までにテーマパークの完成を目指します。

参加定員数は3~5人で、各々にロール(新人やマネージャ等)を割り当てます。 ゲームでは予定されたアトラクションを納期内に建築せねばならず、月の初めに今月どれだけのアトラクションを建築するか、チームで相談して見積りを立てます。そして、月末には見積りの通りに作業が進捗したかどうかを確認します。これを通常6回(6カ月間)繰り返します。

ゲームをクリアするためにはアトラクションの建築だけでなく、メンバーのやる気管理やスケジュール調整(計画的な有休取得)等も必要になります。

*1:2019年12月現在は販売されておらず入手困難です。ヌーラボ様 再販期待しています。

続きを読む

GitHub Universe レポ(後日編)

こんにちは、SansanでEightのCEMとして開発組織のマネジメントをしている鈴木康寛です。この記事は本シリーズ最後の記事です。カンファレンスが終わりメインイベントはこなした感がありますが、せっかくSFに来ていることもあるので、できる限りインプットをすべく精力的に活動しました。

Algolia訪問

Algolia今年大型の資金調達も行っている、フランスの創業者によって創られた、検索に特化したSaaSのスタートアップです。

blog.algolia.com

本社がSFにあり、オフィス自体はSalesforce towerのすぐ近くにありました。

Eightではユーザーが所有する名刺や、ユーザー自体の検索をサービス上から行なうことができます。その検索の仕組みは主にElasticSearchを使って構築していますが、それとの違いや、何が優れているのかを中心にソリューションエンジニアの方に話を聞いてきました。

f:id:yasuzukisan:20191129133309j:plain
Algoliaのオフィス

続きを読む

インド学生新卒採用プロジェクトのその後

CTO の藤倉です。

Sansan では国内外を問わずに優秀なエンジニアを採用していくという方針の元、今年の 4 月にインドを訪問して多くの学生さんに会ってきました。その時の様子は以下の記事を参照してください。

buildersbox.corp-sansan.com

今回の記事では、このプロジェクトの続きについて書きます。

採用活動の判断

前回の訪印により、インド人学生の優秀さは確認できました。では、すぐにインド人学生を採用すると判断するべきなのでしょうか?

私は、そうするべきではないと考えています。これはとても大事な問いです。

もちろん、優秀なエンジニアは多いに越したことはありません。しかしながら、この採用はインドの方を日本に呼び、生まれ育った環境とは全く異なる場所で働く選択をしてもらうものです。彼ら/彼女らがきちんと成果を出せるようにしてあげられるのか。そもそも日本国内で健やかに生活していくサポートはできるか。当社の開発チームが受け入れることができるのか。採用活動を開始するという意思決定のためには、明らかにしておかなければならないことが数多くあります。それらがうやむやのまま、安易に採用活動を始めるわけにはいきません。

これらの課題を解決するべく、同時並行的に、国外からのエンジニア中途採用の活動を進めてきました。その実績のおかげで、会社として海外から来るエンジニアを受け入れる経験が少しづつ蓄積されてきています。また、彼らによるグローバル開発チームが発足して、チームとしての成果も出始めています。これらを踏まえ、インド人学生が入社してくれたとしたら、会社として支援できるだろうという判断に至ったのです。

このプロセスは非常に重要です。採用して人を受け入れるということは、その人たちの安全な生活と、成果を出せる環境を提供するという、組織としての責任を伴います。責任が果たせそうだという自信ができたので、インド人学生新卒採用プロジェクトを前に進めることにしました。

続きを読む

GitHub Universeレポ(Day2)

こんにちは、SansanでEightのCEMとして開発組織のマネジメントをしている鈴木康寛です。この記事は本シリーズの3回目の記事です。 こちらでは、GitHub Universe 2日目についてのご紹介をします。

keynote

2日目のkeynoteはセキュリティの話が中心でした。

security-keynote
Security keynote

  • 99%以上のプロジェクトがオープンソースに依存している
  • 平均で180以上のオープンソースとの依存関係が発生している
  • ゆえにセキュリティが重要になってくる

GitHubでは様々なオープンソースのコードが管理されており、セキュリティ的なリスクを可視化して信頼できる状態を共に作っていくことに焦点をあてている印象でした。

https://youtu.be/VnaK_ONmtC4

続きを読む

© Sansan, Inc.