タグ

2019年3月25日のブックマーク (2件)

  • メルカリの写真検索を支えるバックエンド | メルカリエンジニアリング

    メルカリのAI EngineeringでTech Leadを務めている中河です。今回は3/18に正式リリースされた「写真検索機能」を支えるバックエンド・インフラをシステム側からの視点でご紹介します。 写真検索とは 所謂、画像検索機能で商品名を知らなくても画像から商品を検索できる機能の事です。詳しくは下記の公式リリースをご覧ください。 about.mercari.com 基的な写真検索の仕組みは、Deep Neural Networks (DNN)を使用して商品画像から特徴ベクトルを取得し、取得した特徴ベクトルをApproximate Nearest Neighbor Index(ANN Index)に追加して画像indexを構築。 検索時には同じく商品画像からDNNを介して特徴量ベクトルを取得し、ANN Indexから検索します。 アーキテクチャの概要 Figure1 上記がアーキテクチ

    メルカリの写真検索を支えるバックエンド | メルカリエンジニアリング
    yubessy
    yubessy 2019/03/25
    Containerized Workflow だ!
  • TypeScriptで不動点コンビネータに型をつける - Qiita

    多くのプログラミング言語では、再帰関数を書くことができます。例えば、 JavaScript では fact 関数の定義の中で、自身の名前である fact を参照できます: function fact(n) { return n === 0 ? 1 : n * fact(n - 1); } console.log(fact(5)); 一方で、ある種のプログラミング言語(または計算体系)では、関数を定義する際に自身の名前を参照できません。(型無し)ラムダ計算がその代表例です。 しかし、型無しラムダ計算では不動点コンビネータと呼ばれるものを書くことができ、それを使うと再帰関数を書けます。不動点コンビネータの例としては、(名前呼びの体系で使える)Yコンビネータがあります:

    TypeScriptで不動点コンビネータに型をつける - Qiita