2018年04月の記事一覧

前の月  ||  次の月

【Techの道も一歩から】第9回「API GatewayとAWS Lambda PythonでAPI開発」 Vol. 4:デプロイ

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

最近は、「Pythonで書かれたOSSのコードを最適化してPull Requestがマージされるまで」や「キャリブレーション用のEstimatorを作りました」といった、周りの強い人たちのOSS活動に肝を冷やしながら、研究開発に取り組んでおります。

さて、今回は「API GatewayとAWS Lambda PythonでAPI開発」の締めとして(本来は運用がこの先あるはずなのですが……)、デプロイについて紹介します。

AWS Lambdaでのデプロイとは

AWS Lambdaでのデプロイとは、任意のコードをLambda関数としてセットすることです。

大まかに手動と自動の2つとなります。

  • 手動
    • コードをWeb上でインライン編集
    • ZIPファイルをアップロード
    • Amazon S3からファイルをアップロード
    • AWS CLIからSAMテンプレートによるアップロード
  • 自動
    • AWSサービスを組み合わせる

今回は少々アナログですが、手動でAmazon S3からファイルをアップロードする方式を紹介します。

Amazon S3を用いた単純なデプロイ方式を採る

自動化はエンジニアリングの醍醐味で、私にとっても夢中になれる取り組みです。とはいえ、自動化するためにはたくさんのサービスの特性を知り、使いこなす必要があります。

現在は以下のような業務の特性上、Amazon S3方式を採っています。

  • デプロイの頻度は多くて月数回
  • 外部依存が少ない
  • 高速かつ正確なデプロイが求められているわけではない

また、動作していたバージョンのZIPファイルを残しておきたいということも、S3を利用している理由の一つです。

新しいバージョンをデプロイしたが、うまく動作しなかった場合などに、動いていたコード群をZIPにまとめているため、ロールバックをすることが非常に簡単です。

S3での管理例ですが、プロジェクトのバケットを作成し、その中に以下のように日付のZIPファイルを配置しています。

aff9b0ad0709b8aef0e66263ca5121ee - 【Techの道も一歩から】第9回「API GatewayとAWS Lambda PythonでAPI開発」 Vol. 4:デプロイ

ZIPファイルを作り、アップロードする

AWS Lambdaは、ZIPのアップロードサイズが50MBまでという制約があります。そのため不要なファイルをデプロイパッケージに含めることは避けたいです。

以下のシェルスクリプトをプロジェクトのディレクトリーのルートに配置することにより、デプロイパッケージをホームディレクトリーに作成します。

#!/usr/bin/env bash

set -eu

# プロジェクトのルートディレクトリーの絶対パスを取得
cwd=`dirname "${0}"`
PROJECT_ROOT=`(cd "${cwd}" && pwd)`

cd $PROJECT_ROOT

# 今日の日付で、exclude.lstに記載されていない項目をZIPに固める
today=$(date "+%Y%m%d")
zip -r9 ~/hoge_${today}.zip * -x@exclude.lst

echo "~/hoge_${today}.zipが生成されました。"

ZIPに含めないリストである exclude.lst ですが、以下のような途中生成ファイルなどをリストに加えています。

*.dist-info/*
*.egg-info
*.pyc
exclude.lst
__pycache__

S3へのアップロードは、ブラウザもしくはAWS CLIでのアップロードとなります。

AWS CLIはコマンド一つでアップロードできるため、おすすめです。

$ aws s3 cp ~/hoge_20180405.zip s3://project-hoge/

AWS LambdaにS3からアップロードする

デプロイ対象のファイルのリンクをS3上で取得します。リンクは https://s3-region-name.amazonaws.com/project-hoge/hoge_20180405.zip のような形式だと思います。

これをAWS Lambdaのコンソールの「関数コード」項目で設定します。

関数コードは以下のもので、コードエントリタイプを「Amazon S3から……」にセットし、S3リンクのURLテキストボックスに、上記のリンクをペーストします。

a2e2dbe2637ffb346d3a82019af70bc2 - 【Techの道も一歩から】第9回「API GatewayとAWS Lambda PythonでAPI開発」 Vol. 4:デプロイ

設定し終わったら、画面右上の「保存」を忘れずに押下しましょう。

これでLambda関数のデプロイ完了です!

試しにAPI Gatewayのエンドポイント、もしくはLambdaコンソールの画面右上のテストから、デプロイした関数の動作確認を行いましょう。

Lambda上でテストを行うと、関数が例外を送出しない場合は、以下のようにテストが成功したことが分かります。

40a7b4fa137f1a90e7b4d55b04dbf328 - 【Techの道も一歩から】第9回「API GatewayとAWS Lambda PythonでAPI開発」 Vol. 4:デプロイ

もしデプロイしたにもかかわらず動作が怪しいときは、以前の日付のファイルをLambda関数にS3から再度アップロードすることで、ロールバックしましょう。ログはCloudWatchから閲覧できます。

自らの手を離れ、世に出ることを楽しむ

デプロイの醍醐味は、作ったものが世に出ていくことだと思います。その手順を簡略化したり自動化したりできると、どのようなものを出していくのかに集中できます。

自動化できるということは、デプロイする人がこの記事に書かれた手順を踏む必要がないということです。

そろそろ出したら出しっぱなしではなく、運用についても勉強をしようと思います。

執筆者プロフィール

過去記事

▼第8回
「API GatewayとAWS Lambda PythonでAPI開発」Vol. 3:エラー処理

▼第7回
「API GatewayとAWS Lambda PythonでAPI開発」Vol. 2:ローカルでの開発環境構築

▼第6回
「API GatewayとAWS Lambda PythonでAPI開発」Vol. 1:API GatewayとAWS Lambdaを知る

▼第5回
快適なシェル環境の再構築を自動化する

▼第4回
第16回情報科学技術フォーラム(FIT2017)で登壇

▼第3回
第11回テキストアナリティクス・シンポジウム

▼第2回
R&D論文読み会勉強会

▼第1回
言語処理100本ノック勉強会

text:DSOC R&Dグループ 高橋寛治
2018/04/24

《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

こんにちは。人事部の田中捷大です。

4月13日、Sansanの表参道本社内にある多目的スペース「Garden」で、Yahoo! JAPANさん、DeNAさん、Sansanによる共催イベント「Kagglerが伝える、Kaggleの楽しみ方」を開催しました。

SansanがKaggleをテーマにした今回のイベントを企画した背景を含めて、レポートをお届けしたいと思います!

Kaggleとは

Kaggleは、企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連のプラットフォームです。Kaggleでは、1億円を超えるような賞金がかかったコンペティションも開催されています。2017年に「肺がんの兆候を早期発見する技術」という課題で賞金100万ドルのコンペティションが開催されたことでも話題になりました。

日本でもKaggleを盛り上げたい

Googleに買収されたことも記憶に新しいプラットフォーム、Kaggle。プログラミング、統計学などさまざまなスキルを保持するデータサイエンティストが集うプラットフォームとして世界中で急速に知名度を上げています。しかし、その世界各国の勢いと比べると、日本でのKaggle熱はまだまだ低い印象です。

Sansanは、R&Dやデータサイエンスの領域においてさまざまな活動や発信を行っています。また、自らの腕を磨くためにKaggleに参加している社員も複数名所属しています。そんなSansanとしては、ぜひともこのKaggleをもっと盛り上げていきたいと考えています。それならば、われわれで「2018年をKaggle元年にしよう!」ということで、Kaggleで優秀な成果を収めたデータサイエンティストを招待し、その魅力を当人たちから伝えてもらうイベント「Kagglerが伝える、Kaggleの楽しみ方」を企画しました。

3社から各領域で活躍する登壇者が集結!

DSC5911 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

登壇者の皆さんを紹介します。今回のイベントでは、Yahoo! JAPANさん、DeNAさんの協力の下、各社からデータサイエンティストが集結しました。

パネリスト

YAM4388 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

YAM4381 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

YAM4373 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

モデレーター

YAM4369 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

Kagglerが伝える、Kaggleの楽しみ方

当日は、Kaggleの経験者や未経験者などを含めて約50名の方々に来場いただきました(満員御礼!)。

本イベントのメインコンテンツとなった、パネルディスカッションでは、「なぜKaggleを始めたのか」というオーソドックスな話題から「Kaggleでの失敗談」、「Kaggleに取り組んでいる人ならではの悩み」などまで、多岐にわたるトピックについて、登壇者たちの話を聞くことができました。

また、各登壇者がKaggleをどのように業務に活用しているのか、Kaggleの作業時間を確保する方法など、中には上位ランカーならではの視点から繰り広げられるトークセッションもあり、大いに盛り上がりました。

DSC5911 resize 1 - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

パネルディスカッション後のQ&Aでは、参加者から次々と質問が寄せられました。Twitterでハッシュタグを付けて投稿してもらい、登壇者が答えていきます。皆さんのKaggleに対する情がとても伝わってくる時間でした。

YAM4411 resize - 《Sansan×Yahoo! JAPAN×DeNA》Kagglerが伝える、Kaggleの楽しみ方

イベントのハッシュタグ「#kaggle_meetup_0413」。

最後に、参加者からいただいたアンケートの一部を紹介します。

  • 自分の周りにはKgglerがいなかったから、今回のイベントで交流することができてよかった(社会人/男性)
  • 上位ランカーからKaggleの楽しみ方、彼らの分析環境について聞けてよかった(学生/男性)
  • これから日本でもKaggleが盛り上がると感じるイベントだった(社会人/男性)

このイベントを機に、日本にKagglerがもっと増えてくれたらとても嬉しいです。Sansanは、これからもKaggle関連のイベントを行なっていく予定です! お見逃しなく!

text: 人事部 田中捷大 photo: 山平敦史
2018/04/23

try! Swift Tokyo 2018に参加しました

こんにちは。Eight事業部でインターン生として働いています、岡田直道です。

2018年3月1日〜3月2日にベルサール新宿グランドにて開催された「try! Swift Tokyo 2018」に参加しましたので、そのレポートを書きたいと思います!

「try! Swift」って何?

try! Swiftは、プログラミング言語「Swift」に関する大規模なカンファレンスです。毎年、New York、インドのBangalore、東京の3都市で開催されており、東京で開催されるのは今年で3回目です。

国内で開催されているSwift関連の大規模なカンファレンスだと他には「iOSDC」が有名ですが、iOSアプリ開発が題材となっているiOSDCとは違い、try! SwiftはSwiftに焦点を当てて開催されるカンファレンスです。iOSアプリ開発の他にもサーバーサイドSwiftや、Swiftコンパイラの中間言語、macOSやwatchOSの開発など、Swiftにまつわる話なら何でもござれのGeekな空気が特徴です。

今年のtry! Swift Tokyoは800人を超える参加者が集まり、過去最大の規模になったそうです。自分は初めて参加したのですが、予想以上の人気と海外の方がたくさん来場されていたことに驚きました(ちなみに上記のtry! Swiftの公式ページへのリンク先は、もう2019年のものに更新されています。早いですね)。

IMGP1045

初日のセッション開始前の様子。最終的には、この椅子が満席になるほどの参加者が集まりました!

Sansanは、ネックストラップスポンサーとして参加しました。ネームプレートに付属しているネックストラップには、try! SwiftのキャラクターであるRikoのロゴとともにSansanのロゴがあしらわれ、かわいらしいデザインでした!

IMGP0887

ネームプレートとネックストラップ。右に見切れているお城は、2017年のものと絵がつながるデザインだそうです! ということは、来年は……。

ブース出展に、パフォーマンスも! まるでお祭り!

スピーカーセッションは、1つの大きな部屋を朝10時から夜18時までフルに使って、2日間で合計32のセッションが行われました。発表内容については後述しますが、隣の部屋ではスポンサー企業によるブースの出展が行われました!

DSC04196

企業ブースの様子。話し掛けるのが苦手な参加者でも、ノベルティーやアンケートのおかげで会話のきっかけが作りやすかったです。

各企業ブースでは、ステッカーやTシャツ、お菓子、技術書などなど、ユニークなノベルティーがたくさん配布されて、とても盛り上がっていました。自社のPRだけでなく、ライブコーディングや技術にまつわるアンケートなどの企画も実施されていて、Swiftというプログラミング言語を通じて、国籍を問わずさまざまな人々が盛んに交流していました。

IMGP1237

技術カンファレンス恒例のアンケート。「guard let文のreturnは1行で書くか、3行で書くか」なんて、マニアックなものもありました(笑)。

一方で、スピーカーセッションの部屋ではマジックショーやプロのけん玉師によるけん玉ショーなどの催しものが行われ、技術系のカンファレンスとは思えないような雰囲気でとても盛り上がっていました。

企業ブースの部屋の隅には、休憩用の畳スペースが設置されていたので、張り巡らされたコンセント網からMacの給電をしつつ、まったりとトークを聞いている方も多かったです。ちなみにお昼の休憩時間中には、トークを映し出すためのモニターを使ってスプラトゥーンの国際交流戦が行われていて、こちらは別の盛り上がりを見せていました。

濃密すぎるスピーカーセッション

そんなこんなでお祭り気分を楽しめたtry! Swiftでしたが、メインとなるのはやはりスピーカーセッションです。

当日のタイムテーブルについてはこちらの記事に詳しくまとまっています。ここでは自分が気になった発表について、いくつか紹介したいと思います。

関心の分離と単純化のためのSwiftコードの最適化 – Javier Soto

実際の開発でありがちな実装場面について、可読性の高いコードを書くための指針がいくつかの例とともに示されていました。この手の議論はさまざまな場所でなされていますが、個人的には「Separating the “what” from the “how”(Howからwhatを切り離す)」という考え方が、可読性の高いコードを書くための指針を簡潔に言い表していて良いなと思いました。変数をクロージャ式で定義したり、enumの特性を利用してUserのProfileの通信状態を管理したりと、実用的で分かりやすいプラクティスが多く紹介されていたので、参考にしたいと思いました。

AST メタプログラミング – Katsumi Kishikawa

AST(Abstract Syntax Tree)と呼ばれるSwiftコンパイラの構文解析結果を分析することで、Swiftソースコードに対するメタプログラミングを実現していました。JavaScriptなどで利用されているPower AssertをSwiftで実現するためのSwiftPowerAssertや、Swiftソースコードに対してLintingを行うことのできるswiftfmtなどが紹介されていました。どちらのライブラリーについてもWeb上で機能を試すことのできるPlaygroundが公開されており、実際に触りながら発表を聞くことができたことが非常に魅力的でした。

Swift5のOwnershipに備える – Toru Kuriyama

SansanのiOSエンジニア栗山による、Swift5で導入が検討されているOwnership機能についての発表です。

DSC04256

Swift5では、Swiftがさらに高速に動作するために必要な機能群をOwnershipと名付け、その内容がAppleの公式リポジトリに公開されています。これらの機能群に先立って排他則がSwift4にて実装されていることや、関数の引数を読み取り専用の参照渡しにするshared参照、コピー不可能な型を定義するmoveonlyキーワードについての利用例が紹介されました。

既にOwnershipを導入しているRustでは学習コストの高さが問題視されているようですが、Swiftはこれらの機能群をOpt-inな機能として提供することで従来の簡便さを維持しつつ、高度なパフォーマンスチューニングを可能にするようです。将来リリースされる予定の機能や移行の流れについて予め考えることは、その特性を理解し効果的に取り入れるために非常に重要だと感じました。

UIImageView vs Metal – Shuichi Tsutsumi

UIImageView vs Metal #tryswiftconf from Shuichi Tsutsumi

MetalImageViewという、UIImageViewのように画像を扱えるMetalラッパークラスの実装を行った経験を通じて、GPUレイヤーの処理を細かく追っていくという内容でした。XCodeのInstrumentsであるMetal System Traceを効果的に利用してボトルネックを特定し、パフォーマンスチューニングを行っていく過程はとても勉強になるもので、GPUに関する知識が全くない状態でも分かりやすく、大変興味深い内容の発表でした。

最後の最後まで楽しい、最高のイベントでした

数々のスピーカーセッションが終った後は、大規模な懇親会が開かれました!

おしゃれな料理やお酒を片手に、国内外問わずたくさんのSwiftデベロッパーの方々とお話をすることができました。華やかな衣装でパフォーマンスをしている方もいて、最後まで賑やかな雰囲気を味わいながらお祭り気分を楽しむことができました。

「今日Starを付けたライブラリーを動かしてみたい」「発表の内容を試してみたい」「もっと自分でアプリを作ってみたい」「英語が話せるようになりたい」と多方面にモチベーションが爆発するような素晴らしいイベントでした。来年も絶対参加したいと思います!!

IMGP3860

懇親会後の集合写真。来年もまた来たい!
text: 岡田直道
2018/04/17

「Sansan Innovation Project 働き方2020」にブース出展しました

こんにちは。DSOC Operation Groupの田村彩香です。

2018年3月16日、Sansanが主催するビジネスカンファレンスイベント「Sansan Innovation Project 働き方2020」が開催されました。当日は、全体で3000名以上の方に来場いただき大盛況に終わったのですが、展示ブースエリアでは、DSOCもブースを出展しました。

今回は、その様子をレポートさせていただきます!

2016年11月に発足したDSOCは、この1年間に新しいメンバーが加わったことで研究テーマがさらに広がり、さまざまな新しい取り組みを行なえるようになりました。そこで、今回のイベントでは来場者の方に進化を続ける「DSOCの技術力」を伝えたいと考えて、次のようなコンテンツを用意しました。

未来の働き方を体験できる「Sansan Labs」

2018年2月、DSOC R&D Groupは、法人向けクラウド名刺管理サービス「Sansan」上に蓄積された名刺交換のビッグデータを解析し、ユーザー企業が自社の営業戦略策定や組織編成などをする際に利用できる実験的な機能として「「Sansan Labs」をリリースしました(Sansanのアプリケーション内で新たな機能として体験できます)。

DSOCのブースでは、このリリースして間もない「Sansan Labs」のデモを通して、Sansanが持つデータとDSOCの技術によってつくり出された「未来の働き方」を体験していただきました。

視覚的にデータの面白さを伝える「Business Network Galaxy」

DSOCでは、年間数億枚もの名刺がデータ化されています。そのデータの蓄積によって構築されたデータベースは、人・企業の出会いの軌跡を正確かつ網羅的に把握できるという点において、世界に類を見ません。私たちは、このデータに機械学習などの最新のテクノロジーを掛け合わせ、そのデータが持つ価値を世界に届けたいと考えています。

通常、DSOCは学会などで専門知識のある方々を対象に発表することが多いです。しかし、今回の「Sansan Innovation Project 働き方2020」はビジネスカンファレンスイベントで、ほとんど来場者の方は技術者や専門家ではありません。そのような方々にも一目で「このデータはすごい!」と思っていただけるように、私たちが持っているデータの価値を視覚的に伝えることができるコンテンツをいくつか用意しました。

ここでは、その中でもたくさんの方に興味を持っていただいた「Business Network Galaxy」について詳しく紹介したいと思います。

7d93631b071bd2c8f15521d868cf5c1c - 「Sansan Innovation Project 働き方2020」にブース出展しました

ブースでは、大型ディスプレイで「Business Network Galaxy」を投影しました!

星の数ほどある名刺交換の機会、つまり「ビジネスの出会い」を、機械学習を用いて解析し、銀河をイメージして可視化したもの、それが「Business Network Galaxy」です。

ここで表示された一つ一つの点は、企業を表しており、「ビジネスの出会い」の構造から企業の特徴を見ることができます。点と点の距離は、その特徴の類似度を表しており、業種ごとに色分けされています。「Business Network Galaxy」を見渡せば、ビジネスの世界における各企業のポジションを知ることができます。

「Business Network Galaxy」を作り出す元になっているのは、AさんとBさんが名刺交換をしたという1つの事実でしかありません。しかし、その事実をデータとして積み重ねていくことで、そこに日本経済の構造を見ることができるようになり、この面白さが私たちが持つデータの価値を伝えてくれます。

ありがとうございました!

DSOCのブースにお越しいただいた皆さんには、私たちの想像以上にコンテンツやDSOCという組織に興味を持っていただきました。私たちとしても、ユーザーの方々の生の声を聞くことができ、とても嬉しく、そして参考になりました。今回の皆さんの反応は、今後の研究やアプリケーションの開発に活用していきたいと思います。

fff575165e1869e42587af39e8bdd5c9 - 「Sansan Innovation Project 働き方2020」にブース出展しました

たくさんの方がDSOCのブースに立ち寄ってくれました。ありがとうございました!

DSOCは、4月18日に大阪で開催される「Sansan Workstyle Summit 働き方2020」でもブースを出展する予定です! 来場を予定している関西の皆さま、ぜひDSOCのブースにもお立ち寄りください!

執筆者プロフィール

text: Sansan株式会社 Data Strategy & Operation Center Operation Group 田村彩香 photo: 山平敦史
2018/04/16

「経営情報学会2018年 春季全国研究発表大会」で発表してきました

こんにちは。DSOC R&Dグループ研究員の真鍋です。

この度、経営情報学会2018年春季全国研究発表大会におきまして、DSOCの名刺データ活用研究について発表をさせていただきました。

経営情報学会は、1992 年から始まった経営情報に関する研究報告をする学会です。社会科学系・工学系、企業・アカデミックのバックグランドを持つさまざまな研究者が、経営と情報科学を結び付けるという目的の下で混在しながら交流・発表をしており、多様な場であることが特徴の一つです。毎年、春と秋にそれぞれ一回ずつ、全国各地で研究発表大会が行われています。

今回、春季の全国研究発表大会は、筑波大学東京キャンパスで開催されたのですが、実は、私はこの東京キャンパスで開講されている社会人大学院の博士課程後期の学生なのです。ご指導頂いている先生がお声掛けをくださり、査読を経て発表させていただくことになりました。

発表の演題はこちら

私は、日々、 DSOCで広くは人脈とビジネスの関係性、より具体的には名刺データと会社間取引の関係を分析し、何かしら営業戦略に有効な知見が得られないかと研究を行っております。今回は、その研究の中で見えてきた「営業プロセスで入手した名刺の構成と営業成績や取引規模の関係性」についての発表を行いました。それに加えて、ネットワーク分類による会社分類の新手法についても提案しました。

今回の発表のうち、名刺から見える営業戦略分析に関する要旨は以下のようになります。

  • 受注件数の多い営業パーソンは、一つの企業に多くの接点を持ち、また複数企業間ではバランス良くタッチポイントを築いていた。
  • 営業パーソン間で共有名刺が多い時期ほど、個々人の受注件数は下がる。すなわちパフォーマンスが低下することが分かった。
  • 取引案件規模の大きさと、最初に名刺交換をした人の役職クラスや、最も高い役職クラスの間には有意な関係が見られた。また、役職と部署の異なり数が多いほど、案件規模は大きくなる傾向にあった。

質疑や発表を経て、営業戦略上、「誰とどのようなパスで出会うべきか」または「人脈から契約の規模を推定できるか」などのような目指すべき諸問題については、まだまだ解決すべき点があるものの、このような分析結果やツールに対する興味や需要の高さをうかがうことができました。より一層の成果を目指して、これからも研究を進めていこうと思います。

本大会では、いくつかの発表を聴講しましたが、刺激に富む内容が多くて勉強になりました。

同じ企業事例セッションの中では、アナリティクスラボ様の特許文書分析の新手法についての発表が興味深く、単語レベルの分解では全体的な意味が把握できないところをトピッククラスに変換することで見通しを良くして分析結果を示す方法は、大変参考になりました。

また、ドワンゴ人工知能研究所の山川様の講演では、Advanced Chessの事例を用いて AIと人をうまく組み合わせることが最もパフォーマンスを発揮するということをおっしゃっておられましたが、「まさにそうなのだろう」と思いました。その意味では、AI の特性と人の特性を熟知して、その組み合わせを最適化できるようなマネジメント人材が、今後は求められていくのだろうと思います。

東京工業大学の飯島淳一先生の「企業活動の骨格を可視化するモデリング方法論」のチュートリアルにも参加しました。企業の活動を行為者(actor)とactionの次元に分解して記号として表現する方法は、まさに我々の目指している分析に使える手法なのではないかと思いました。

企業活動は、人のコミュニケーションを基軸とした「調整」の世界なのだと思います。名刺交換の履歴をマイニングすることで、その調整の世界がどのように浮き彫りになっていくのか、試行錯誤を繰り返し、これからもこのような発表の場にどんどんぶつけていきたいと考えています。

なお、今回の発表内容につきまして、DSOC R&Dグループの同僚である前嶋直樹と、DSOCのインターン生だった吉田将大の協力をいただきました。ありがとうございました。

執筆者プロフィール

text: DSOC R&Dグループ 真鍋友則
2018/04/10

「言語処理学会(NLP2018)」に参加しました

こんにちは。DSOCの奥田です。最近は、Wikipediaで作った辞書の表記揺れを直すコードを書いて泣きそうになりました。

NLP2018に参加

2018年3月12日から3月16日にかけて岡山で行われた言語処理学会第24回年次大会(NLP2018)にスポンサーとして参加してきました。今回はその報告に加えて、Sansanという会社がどのようにしてプロダクトに自然言語処理を活用しているのかを簡単に紹介したいと思います。

DSOCからは研究員の奥田高橋が参加しました。また、Sansanはスポンサーとしてブースの出展、スポンサーイブニングなどで企業紹介も行いました。

IMG 5956 1 - 「言語処理学会(NLP2018)」に参加しました

ブースの様子です。

Sansanのブースにお越しいただいた皆さま、ありがとうございました。そこで、Sansanという会社についてなど、私たちのことを少し知っていただけたかと思いますが、改めてこの場で「名刺と自然言語処理」についてお伝えできればと思います。

Sansan×自然言語処理

Sansanは「ビジネスの出会いを資産に変え、働き方を革新する」というミッションを掲げ、法人向けクラウド名刺管理サービス「Sansan」や個人向け名刺アプリ「Eight」を提供しています。

皆さんは学会でもらった名刺をどうしていますか? 机の中に束ねて置いたままにしている人も多いかと思います。Eightでは、そういった名刺を取り込んで、名刺交換した相手とビジネスSNSでつながることができるんですよ(宣伝)!

Sansanが各サービスを提供する上で重要になってくるのが、紙の名刺に記載された情報を早く、正確に、そして低コストでデジタルに変換する技術です。そのため、名刺のデータ化を担う部門でもあるDSOCでは、OCRなどの画像処理技術をはじめとした、さまざまな技術や自然言語処理を活用しながら、日々、改善を繰り返しています。

ここで、いくつか具体的な活用事例を紹介したいと思います。

分かりやすい活用事例としては、名刺から得られた情報の修正や名寄せです。名刺をデータ化する過程では、どうしてもOCRの読み取り間違いや表記揺れが生じてしまいます。たとえ、読み取り精度が99%であったとしても、大量の名刺をデータ化してサービスを提供していくに当たっては不十分であることがあります。

こうした問題に対しては、文字列間の編集距離や類似度を利用したり、社内に蓄積されたデータと組み合わせて修正したりする手法を採用して対応をしています。古典的な手法によって解決していると思われるかもしれませんが、それも精度を限りなく上げるために必要な手段なのです。機械学習を用いて賢く解く方法もありますが、サービスとして提供していくに当たっては、いかに安定した精度を出せるか、メンテナンスが容易か、5年・10年と動き続けるプロダクトを作れるかといった観点が重要になってきます。

また、ニュース記事に掲載されている会社情報を自動で抜き出すという情報抽出も行っています。「業界の最新動向はどうなっているだろうか?」「自分の仕事に関連する話題はないだろうか?」など、ユーザーの興味に合わせたニュースフィードを提供できるようなロジックを作成し、Eightをより便利に利用していただけるように努めています。

その他にも、「営業部」といった部署名や「部長」といった役職名など、名刺に書かれた文字列が何を表しているかを判別するなど、さまざまな場面で自然言語処理の技術は活用されています。

IMG 4136 1 - 「言語処理学会(NLP2018)」に参加しました

Sansanのノベルティーとしてラムネを配布しました。食べていただけましたか?

気になった発表

さて、ここからは私が個人的に気になった発表やポスターをいくつかピックアップして紹介したいと思います。

関連記事判定のためのニュース記事キーフレーズ抽出pdf

ニュース記事に出てくるキーフレーズを抽出する手法とその評価尺度を検討した研究で、複数の類似記事を元にしてキーフレーズを抽出しています。こういった問題で課題になるのは、程よい粒度のキーフレーズであるということです。単語や文節単位での抽出とはまた違った形での抽象化が必要になり、最終的には人間の持つ抽象化とは何なのかということにつながる重要な課題だと思います。

採点項目に基づく国語記述式答案の自動採点(pdf

筆記試験の採点自動化に向けた研究です。ただ機械が正確に採点するということだけを目的としておらず、機械がなぜそのように予測したのかという解釈も出力できるような問題として解いている研究です。こうした解釈性は、ディープラーニングの急激な進歩と「それでなぜ上手くいくのか?」といったモデルを理解したいという流れがある一方で、NIPS2017ではInterpretable Machine Learningというシンポジウムが開かれるなど、機械学習全般として注目されている領域です。

本研究でも自然言語処理の観点から、予測の際に解答のどこに注目しているのかをアテンション機構を用いて解釈しています。また、多くの筆記試験の問題は部分点による採点や減点方式といった複数の軸で採点されています。そういった正解・不正解では扱い切れない部分点ごとの採点を、複数のアテンション機構を利用することで同時に解決しようとしている点がとてもスマートだと思いました。

ニューラルネットを用いた多方言の翻訳と類型分析pdf

日本各地の方言を標準語に変換するニューラルネットを構築した研究です。ニューラル機械翻訳としての研究もさることながら、複数の方言を表す地域を表現する埋め込み表現を可視化して解釈する部分がとてもユニークで、興味深い内容でした。本来ならば言語学的な目的でクラスタリングなどを行うことにより見えてくる発見なのかもしれませんが、タスクを解く中で何らかの洞察が得られて解釈することができる研究というのは、やはり面白いです。

Wikipedia構造化データ「森羅」構築に向けてpdf

Wikipediaを用いた拡張固有表現の辞書作成をプロジェクトとして行うという発表です。ニューラルネットを用いたEnd2Endが全盛な時代ですが、辞書整備の大切さはSansanでの日々の業務でも特に感じているところです。特に、固有名詞や特定の専門用語などはいくらコーパスがあっても低頻度であることには変わりなく、そういった特定の知識をしっかりと扱えるようになることが、今後重要になってくるのではないかと思います。同じような課題を抱える一企業の立場としても、Sansanの強みを生かすという意味でも、このプロジェクトにコミットしていきたいと思っています。

全体を通して

私は、今回初めて言語処理学会に参加しましたが、一個人としても、企業の人間としても、とても有意義で刺激的な時間を過ごすことができました。研究発表で多くのアイデアや知見を得ることができたと感じたと同時に、言語処理学会は企業と学生や研究者がつながる場としてとても機能していると感じました。Sansanとしても、学会に参加される皆さんの出会いを資産に変えられるように、こういった取り組みのサポートを引き続きしていきたいと考えています。

最後に

Sansan株式会社では、自然言語処理の課題にチャレンジしてくれるエンジニア・研究者を募集しています! ちょっと話を聞いてみたいという方も大歓迎ですので、奥田(@yag_ays)まで気軽に声を掛けていただければと思います。

未来の働き方に資するサービスを創り上げるAI技術者を募集

執筆者プロフィール

text:DSOC R&Dグループ 奥田裕樹
2018/04/05

2019年春「AI、が、世界を変えていく。」上映決定!

※本記事は、2018年のエイプリルフールに公開した記事です。内容は、事実と異なります。

こんにちは。33(mimi)編集部からお知らせです。

この度、Sansan株式会社は映画製作を行うことが決定しましたので、この場を借りて発表させていただきます。

AI、が、世界を変えていく。

主役となるのは、Sansan公式ブログ「33(mimi)」の編集部員として活躍している、自走式ロボット「AI(アイ)」くん。

本作は、全国の映画館で2019年3月3日から上映を開始します。

ストーリー

意思と意図を持った、自立思考型人工知能「De.338-AI system(通称:DeAI(であい)シリーズ)」を搭載した自走式ロボット「AI(アイ)」(CV:ひらはらももゑ)。得意分野はディープラーニング。

2028年3月3日、開発に立ち会った2人の研究者から「AI(アイ)」くんと命名されるも、直後の事故により消息を断つ。

時は、2018年。表参道を本社とする、ある会社にAI(アイ)はいた。

会社では「AI(アイ)くん」と呼ばれながら、絶え間なく届く名刺のデータ化を日々こなしていた。

ある日、AI(アイ)は1枚の名刺を読み込む。その名刺は、10年後、彼を開発する研究者のものだった。

研究者は、すでに「K.526-EI system(通称:KEI(ケイ)シリーズ)」を搭載した自走式ロボット「KEI(ケイ)」、KEI(ケイ)と相思相愛の「Ch.1229-IKA system(通称:ChIKA(チカ)シリーズ)」を搭載した自走式ロボット「ChIKA(チカ)」を考案していたが、ついに開発資金とアイデアが行き詰まってしまう。

AI(アイ)は、その研究者に”次に会うべき人”として、とある研究者を紹介するが・・・。

映画には、Sansanのメンバーたちも登場!?

本作では、名刺の正確なデータ化に取り組む会社員として、Sansanの社員をモデルにしたキャラクターも多数登場する予定です。

構想10年、Sansan株式会社が社運をかけたプロジェクトとして、本作の製作がスタートします。

お楽しみに!

※本記事は、エイプリルフールに公開した記事です。内容に関しては、事実とは異なります。

text: mimi(33)編集部
2018/04/01