https://connpass.com/event/85778/
@qsona
- 自己紹介
- Microservices Meetup
- 予防医療
- FiNCアプリの基本機能
- 規模感
- Microservices
- 30サービス
- テーブル数: 〜2,200
- Microservices
- 行動変容ステージモデル
- 人が健康のためにどれくらい行動しているか(しようと思っているか)
- ステージによって、アプローチの仕方は変わる
- FiNC ... 関心度が低い人にもアプローチ
- FiNC 10 Principles (継続の原則)
- ユーザの健康活動を継続させるために、意識すべき項目を定めている
- フィンクちゃん
- ライフログの記録①オンボーディング
- 重要なことを聞く
- 睡眠時間
- 端末の許可系
- 例: iOS
- モーションとフィットネス
- これらの許可率は重要なKPI
- 例: iOS
- 重要なことを聞く
- ライフログの記録②入力の自動化・予測
- 利便性のため、入力の負担を極力軽減したい
- 例:
- 歩数を端末の情報から取得
- 睡眠時間を予測
- 食事投稿からカロリーを推定
- ライフログの利用
- ユーザの健康活動を継続させるための、様々な機能
- Encouragement: FiNCちゃんのpush/起動時出現
- Incentivization: ポイントがもらえる
- :
- ユーザの健康活動を継続させるための、様々な機能
- ライフログの周辺技術
- 機械学習
- FiNCで特に力を入れている技術の1つ
- AIエンジニアとサービスエンジニアが協力して取り組んでいる
- インテグレーションが大事
- 睡眠予測
- オンボーディングで睡眠時間を聞く
- 歩数のデータを使い、睡眠時間を予測
- push通知を送り、ユーザに睡眠時間を修正
- 過去の修正履歴から統計的に予測
- 姿勢分析
- 正面と横からの2枚の写真を撮って分析
- 食事分析
- 投稿画像からカロリーを推定
- 機械学習とサービス
- サービスとのインテグレーション方法やエンジニアの関わり方は事例によって異なる
- 簡単なもの
- Dockerで
- サービス連携
- ライフログ入力を起点にして、FiNC内の様々な機能(Microservice)が連携する
- 例: 歩数ポイント
- ポイント: FiNCモールで1pt=1円で利用できる
- その日の歩数の閾値が一定を超えると、push通知が来る
- その日FiNCアプリにログインしていたらポイント獲得
- サービス構成
- 4サービスが関係
- Lifelog
- FiNC Chan
- Point
- Payment
- SoRとSoE
- SoR(record) ... Point, Payment, Lifelog
- SoE
- 高頻度にデプロイするサービスと安定性を求めるものを分けたい
- イベント連携
- ポイント付与
- サービス間の非同期イベント連携
- AWS SNS / SQS
- Rails - shoryuken
- 歩数の非同期イベント
- 歩数イベント(毎回)
- ユーザの送信ごとに送る
- 数が多い
- 対策: 送信側でバッファリング
- Redisとか使う
- 歩数イベント(閾値)
- 例: 500歩ごとに送信
- 実装
- 歩数イベント(毎回)
- 歩数は量が多くて難しい
望月さん@DeNA
- 自己紹介
- 分子生物学・生化学 博士
- AIシステム部
- アジェンダ
- AI x 創薬
- 創薬とは何か?
- 新薬を開発する
- 創薬標的の探索
- ヒット化合物の探索
- :
- 臨床試験
- 10年以上かかる
- AIで費用と期間を削減したい
- 新薬を開発する
- AIとは何か
- AI ⊃ 機械学習 ⊃ ディープラーニング
- 創薬におけるAIの応用例のいろいろ
- 論文をデータに
- 例) p53をリン酸化する新たなキナーゼ
- 遺伝子発現データ
- 例) 薬剤投与時のそれを用いた深層学習で化合物の薬理活性を予測
- 化合物から
- 例) ★化合物の構造を学習して創薬につなげる
- 論文をデータに
- 化合物の機械学習の歴史
- '64: ハンシュ・藤田法によるQSAR
- 研究者が論理的に組み立てた数式 ≠ 機械学習
- '90年代ぐらい〜現在: Fingerprintを使った機械学習
- Fingerprint ... 化合物の特徴を表現したベクトルを使った学習
- '12: KaggleのMerck Molecular Activity Challengeで深層学習を使ったチームが優勝
- '64: ハンシュ・藤田法によるQSAR
- 画像認識技術における機械学習技術の進歩
- 従来の機械学習
- 特徴量生成
- 深層学習 ... 特徴量生成を省略
- 従来の機械学習
- Fingerprintに依存しない機械学習①: Graph Convolutionによる学習
- グラフの局所的構造を捉えるための技術graph convolutionが開発された
- ②SMILES文字列からの学習
- SMILESとは構造式を1次元の文字列に落とし込む表記方法
- 化合物を文字列に変換してしまえば、すでに確立されている自然言語処理の手法を適用できる
- Jastrzebskらは文書の感情分析を適用
- SMILES文字列を介した構造生成
- 文章を生成する技術を応用し、化合物の構造生成を実現
- 薬になることがわかっている化合物にノイズを加えて新たな化合物を生成
- Fingerprintを使った研究はオワコン? いや、まだ戦える!
- 1つ1つは弱いFingerprintでも、束ねれば欠点を補い合って全体としては強くなるのでは?
- 複数のフィンガープリントと機械学習アルゴリズムをアンサンブル
- 6通りのフィンガープリントと5種類の機械学習アルゴリズム
- = 30通り
- IT創薬コンテストに参戦
- NPO法人 並列生物情報処理イニシアティブ(IPAB)が主催するVSのコンテスト
- 発見できた!
- Graph Convolutionを使って駄目だったチームも。
- 6通りのフィンガープリントと5種類の機械学習アルゴリズム
DeSC 鶴田さん
- 自己紹介
- 普段: カミナル
- アジェンダ
- DeSCヘルスケアのサービス
- KenCoM
- 利用者の検診結果
- さんぽジスタ
- 1vs1のデイリー歩数バトル
- ★カミナル
- 歩いたらご褒美
- '17/10〜 開発開始
- '18/3〜 トライアル
- KenCoM
- こんな感じで作った:
- GAE + Go + Datastore
- トライアル的にさくっと作りたい
- GAE Standard EnvironmentでRails使えない
- net/http + GAE library
- gorilla/mux, urfave/negrorni, ...
- GAE + Go + Datastore
- Deploy
- GitHub
- CircleCI
- GAE
- branchごとにバージョンを切ってデプロイ
- QA
- アプリのデバッグモードで向き先を変更できるように
- 分析
- Datastore
- BigQueryにデイリーでエクスポート
- Data Studio ... BI
- 失敗したこと・苦労したこと
- 歩数は最新のものが届くとは限らない
- 歩数送信の流れ
- iOSのヘルスケアから歩数を取得
- 歩数がヘルスケアに実際に書き込まれるまで時間差がある
- 歩数は最新のものが届くとは限らない
- 歩数問題への対応
- 対応:
- 判定結果が失敗の場合は最大1週間待つ
- 端末側でヘルスケアへの導線を追加
- ヘルスケアを開くとデータが書き込まれる
- 対応:
- structにcontextを詰めていた
- まとめ
光宗さん@SMS
- 自己紹介
- SMS
- ITx医療・介護・ヘルスケア領域のパイオニア企業
- 高齢社会を取り巻く人々がイキイキと生活できるインフラの構築
- 様々な事業領域
- 人材紹介
- 求人情報
- :
- 実はまだ導入終わってません
- ECSを採用した理由
- ローカルでDocker導入済みだったので、本番でも同じものを動かしたい
- 自前で整備するのは大変なので既存のソリューションを使いたかった
- オンプレ→パブリッククラウド移行でアーキテクチャ刷新するタイミング
- GKE?
- GKEだとIAMがAWSほど細かく制御できなかった(当時)
- K8s on AWS
- 自前で作るのは初期コスト高い
- CircleCI
- 今はテストの実行のみ
- 少し前までdocker build/pushしてた
- CodePipeline
- GitHubのブランチを監視して、更新があるとECSへデプロイ
- Codebuildでdocker buildしてECRにpush
- CodePipelineのdeployでECSへ直接デプロイ
- それまではecs-deployを使っていた
- hakoも検討したが、CodePipelineの方がシンプル
- CloudFormation
@okazu / SMS
- 自己紹介
- 馬場さん
- 『歩いておトク』
- 歩数に応じてdポイントが貯まる
- バックグラウンド処理①
- Background Fetch
- OSの任意のタイミングで呼ばれるタイマーのようなもの
- 呼ばれたタイミングで処理を行っている
- 呼ばれる頻度は不定期
- Background Fetch
@k12u / 河本さん
- 事業内容
- BtoC
- 患者さんが医療に迷わない世界を実現したい
- 主なコンテンツ
- インタビュー記事
- 疾患基礎情報
- BtoB
- BtoC
- 全体構成
- Fastly
- インフラ進化の軌跡
- シングルインスタンス
- ROなサイト ... Fastlyにキャッシュ
- チャレンジ
- うまくいった事例:
- CMSが必要
- Rails + CMS gem (refinery)で開発
- CMSが必要
- チームワークで大事にしていること
- 活発に議論
- 設計レビュー
- KPT
- 活発に議論