

2018年5月22日(火)、渋谷ヒカリエのDeNA本社でヘルスケア関連企業のエンジニアによるトークイベント「Healthtech Meetup vol.1」が開催されました。
第一回目となる今回は、7名の登壇者のほかエンジニアやWebクリエイターなど50名以上が参加。アプリ開発のエピソードや技術的なトピックが飛び交い、大きな盛り上がりを見せました。開催の背景とあわせて当日の模様をレポートします!
目次 [隠す]
知見を共有する場をつくる
人生100年時代と言われるいま、テレビやwebサイトでも健康寿命といったキーワードを目にすることが多くなりました。
できるだけ長く健康に過ごしたいというのは、多くの人に共通する願いです。
その願いに応えるため、多くの企業がアプリなどでヘルスケア関連のITサービスを提供しています。
ただ、なかには技術的に行き詰まったり、運用面の課題だけで手いっぱいになってしまったりするケースも多い様子......。
そこでDeNA ヘルスケア事業本部の澤村正樹が中心となって考え出されたのが、「知見を共有する場」をつくること。
株式会社ディー・エヌ・エー ヘルスケア事業本部 澤村 正樹
「ノウハウや成功事例を持ち寄ることで、課題解決のヒントを見出したい」、「サービスの質を向上させ、新しいイノベーションにつなげたい」。澤村をはじめとしたエンジニアたちのそんな思いのもと今回のイベントは開催されました。
バックグラウンド処理+プッシュ通知で快適な歩数計アプリに
ここからは当日発表のあったプレゼンのうち、3つの事例をご紹介します。
DeNAライフサイエンスから参加したのは、iOSエンジニアの馬場南実。ドコモ・ヘルスケアとDeNAライフサイエンスが共同運営する「歩いておトク」の開発・運用を担当しています。
「歩いておトク」は利用者の歩数に応じてドコモのdポイントが付与される歩数計アプリ。その仕組みを支えているのが、アプリが閉じられた状態でデータを処理する「バックグラウンド処理」です。
株式会社DeNAライフサイエンス サービス開発グループ 馬場 南実
馬場「音楽再生などiOSがバックグラウンドで行える処理は限られているのですが、『歩いておトク』ではバックグラウンドフェッチという機能を使っています。」
▲スライドは馬場の登壇資料より抜粋
馬場「これは任意のタイミングで呼ばれるタイマーのようなもので、歩数の取得やポイント獲得判定といった処理を行えます。ただ、1つ問題があって、それは呼ばれるタイミングがきわめて不定期なこと。場合によっては半日以上にわたって処理が滞ってしまうことがあるんです。」
バックグラウンド処理が遅れれば、せっかく稼いだ歩数が実績として反映されるのが遅くなり、ご利用者には不満が募ってしまいます。そこで補助的に導入したのが、サーバーからのプッシュ通知。
▲スライドは馬場の登壇資料より抜粋
馬場「iOSではプッシュ通知を受信したタイミングで処理を行うことができるのでこれを利用し、1時間以上処理が行われていないご利用者にはサーバーからプッシュ通知を送信するようにしました。結果として最低1時間に1回は歩数データがバックグラウンド処理され、実績にタイムリーに反映されるようになりました。」
AIが新しい薬を生み出す
続いてご紹介するのはDeNAの望月正弘のプレゼンです。望月は2017年DeNAに入社。AIを活用した創薬(新しい医薬品の開発)プロジェクトに携わっています。
開発に10年以上かかり、最終的に成功するのは0.01%未満という創薬の世界で、AIはどのように活用されているのでしょうか?
株式会社ディー・エヌ・エー システム本部AIシステム部AI研究開発第二グループ 望月 正弘
望月「創薬の分野においては、90年代からAIは利用されていました。ただ、当時は学習や予測はコンピューターが行なっていた一方で、そのベースとなる『フィンガープリント』(※1)は、研究者の設計に頼っていました。」
※1……薬の成分となる化合物の特徴を表現したベクトル
それに対して、現在は人の手を介さず化合物の特徴抽出からAIに任せるのが主流。2012年にはディープラーニング(何層ものパターン認識を通じてコンピューターに課題解決を学ばせる方法)の研究チームが機械学習コンテストで優勝し、関心を集めました。
▲スライドは望月の登壇資料より抜粋
望月「現在ではSMILES文字列というものを使った手法もあります。化合物の構造を文字列に変換し、コンピューターに読み込ませるというやり方です。この手法を使えば、化合物が薬になる可能性の予測だけでなく、新しい化合物を生み出すことも可能です。
たとえば、鎮静剤として有名なイブプロフェンの構造を文字列化する。それを変数に置き換えたうえで若干のノイズを加え、またSMILES文字列に戻す。そうすると、イブプロフェンと似ていながら、構造が少し異なる化合物の構造式が手に入るわけです。」
既存の技術も束ねることで強くなる
新しい化合物まで生み出せるとなると、創薬のプロセスはこれまで以上に人の手を離れ、最新鋭のAIやディープラーニングに委ねられていくのでしょうか? 望月の考えでは、必ずしもそうではないようです。
望月「フィンガープリントは確かに最新の技術ではありません。あくまで抽出された情報なので、化合物のすべての特徴を表しているわけではなく、欠点もあります。ただ、フィンガープリントは人間が考えたものなので、考えた人の数だけメソッドがあり、組み合わせも豊富です。
2017年に開催された創薬のコンテストに、わたしはアンサンブル学習という手法を使って参加しました。6種類のフィンガープリントと5種類のアルゴリズム(機械学習方法)を組み合わせ、トータル30通りの予測を行ったんです。その結果として、200万種類の化合物のなかから薬になる化合物を見つけ出し、グランプリを獲得することができました。」
▲スライドは望月の登壇資料より抜粋
続けて望月が強調していたのが、「ひと昔前の技術も束ねあい、欠点を補いあえば強くなる」ということ。行き詰まりを感じた時は最新鋭の技術だけでなく、これまで蓄積されてきたナレッジに目を向けてみるのも解決のヒントになるのかもしれません。
新規サービス開発にあたり、GAE、Goといった新しい試みに挑戦
最後にご紹介するのは、DeSCヘルスケアのサーバーサイドエンジニア・鶴田拓也のプレゼンです。DeSCヘルスケアでは、利用者の健診情報や身体データ(歩数、血圧など)を記録し、それに合わせて健康に関する情報提供を行う「KenCoM」や、歩数管理アプリ「さんぽジスタ」を運営しています。
それらに加えて今回鶴田が開発を担当したのが「カミナル」※2。ご利用者に歩数のミッションを与え、ミッションをクリアしたらコーヒーやアイスなどのギフトをプレゼントするというアプリです。
※2「カミナル」は、現在開発中のサービスであり、正式リリースについては未定です。
DeSCヘルスケア株式会社 開発部ヘルスケアサービス開発グループ 鶴田 拓也
鶴田「カミナルはトライアル的なサービスとして作ることになっていたので、知見を増やしたいということもあり、サーバーにはGAE(Google App Engine)を、言語はGoを選びました。そのうえでGAEでは1つのプロジェクト上に複数のバージョンを構築し、端末側のデバッグモードから、それぞれのリクエストを任意のバージョンに飛ばせるようにしました。
このやり方で良かった点は、運用状況が確認しやすくなったこと。たとえばバージョンAにはトライアル期間中の環境を、バージョンBにはトライアル終了後の環境を用意し、それぞれに端末からリクエストを飛ばして、挙動を確認しながら開発を進めていくことができました。」
一方で開発中には想定外のトラブルも…。
▲スライドは鶴田の登壇資料より抜粋
鶴田「歩数データの書き込みには、iOSの『ヘルスケア』というアプリを使いました。『ヘルスケア』に書き込まれた歩数をカミナルが読みに行き、それをサーバーに送り、翌日最初のリクエストで前日の歩数が取得できる、というのが当初想定していた流れです。
ただ、実際にトライアルを始めてみると、『ヘルスケア』のデータ書き込みにはタイムラグがあり、結果的にご利用者が歩数の目標を達成しているにもかかわらず、ギフトがもらえない可能性があるという状態が起きてしまいました。
そこで行なったのが、サーバー側では運用の設定、端末側では『ヘルスケア』アプリへの導線の追加。サーバー側では判定結果が失敗の場合、最大1週間待ち、日をまたいだ歩数データも受け取れるようにしました。
また、『ヘルスケア』はアプリを開くと最新データが書き込まれることがわかったので、カミナルの画面上部に『ヘルスケア』のアイコンを追加し、それをタップすると、『ヘルスケア』アプリを開き、歩数を更新させるようにしました。
新しい取り組みの一方でこうした失敗もありましたが、エンジニアとしてはそれも含めていい勉強をさせてもらったと感じています」
ヘルスケアサービス向上と新しいイノベーションに
今回ご紹介した3つの事例はあくまでも一部。長生きがあたりまえになりつつあるいま、エンジニアの手によってまだまだできることがあるはずです。
DeNAでは今回のような取り組みを通じて、ヘルスケアサービスの向上や新しいイノベーションにつなげていきたいと考えています。
※本記事掲載の情報は、公開日時点のものです。
執筆:斉藤良 編集:榮田佳織 撮影:本山隼人