ベクトル検索(Vector Search)とは? キーワード検索との違い:AI・機械学習の用語辞典 用語「ベクトル検索」について説明。テキストなどのデータを数値ベクトル(埋め込み)として表現し、それらのベクトル間の類似度を計算することで、関連する情報を見つけ出す検索方法を指す。Azure OpenAI Serviceの独自データ追加機能で利用可能な「キーワード検索」「ベクトル検索」「ハイブリッド検索」「セマンティック検索」という検索手法の違いについても言及する。 連載目次 用語解説 AI/機械学習/自然言語処理におけるベクトル検索(Vector Search:ベクター検索)とは、テキストや画像などのデータを数値ベクトルとして表現し、それらのベクトル間の類似度(主にコサイン類似度)を計算することで、関連する情報を見つけ出す検索方法のこと、またその方法による検索のことである。なお、数値ベクトル
江戸時代の日本では、日の出と日の入りを境に1日を昼夜に分かち、昼と夜をそれぞれ6等分して「一刻」を定めていました。これは不定時法と呼ばれ、夏と冬では一刻の長さが最大50分も違っていました。時計が広く行き渡ってはおらず、暮らしのサイクルに刻時を合わせる、当時ならではの作法だったかもしれません。さて今回は、GPSに存在する、独自の時間のカウントの作法を話題にしたいと思います。 週番号ロールオーバーという「ほころび」の理由は GNSS衛星が送信する航法メッセージには測位演算に必要な情報がすべて含まれています。中でも時刻情報はとりわけ重要度の高い情報です。 先のコラムで、最初のGNSSであるGPSを例に、航法メッセージの構造についてご紹介しました。限られたbit数に必要な情報をみっちりと詰め込まれながらも基本的には問題なく機能していますが、20年に一度ぐらい「ほころび」が顔を出すこともあります。み
Higher = Excludes the least relevant words. Setting this around 0.1 would be useful for removing highly irrelevant words.' style='display:none;'>Adjusts the range of words the AI is allowed to pick. Higher = Excludes the least relevant words. Setting this around 0.1 would be useful for removing highly irrelevant words. Higher = Excludes the least relevant words. Setting this at 0.1 would be useful
こんにちは、ZOZO NEXTでウェブエンジニアを担当している木下です。先日、弊社が運営するオウンドメディアのFashion Tech Newsにおいて、記事リストのパーソナライズを行いました。本記事ではパーソナライズ導入における、要件定義、レコメンドエンジンの比較、実装での知見や注意点についてまとめます。 fashiontechnews.zozo.com 背景 解決方法の検討 課題の分析 パーソナライズ手法の検討 レコメンド方式について サービスの比較 Amazon Personalizeの実装 実装の流れ アーキテクチャ 実装での工夫点 採用したアルゴリズム アイテムデータの更新頻度 ユーザーの識別 注意点 AWS Personalizeのサンプルリポジトリが古い データの収集には時間がかかる まとまった料金が発生する まとめ 背景 「Fashion Tech News」とは、2018
DnD は考えることが多い。大抵のライブラリは特定のユースケースにべったりで、毎回自分で書く羽目になる。 とくに、木構造の DnD をどう表現するかが難しい。特にWeb上でファイラーのようなUIを実装する頻度が高く、その求められる実装が毎回違うので、自分が考えていることを一般化してみる。 この記事はコードをコピペしたら使えるものではなく、あくまで考え方をコードに落としたもの、ということに注意。 今回は前提として、こういうものを作っていた。 DnD の要件 DOM ベースの sortable ライブラリはいっぱいあるが、DOMをマスターデータとして扱うタイプが多く、現代のフレームワークと噛み合わない。可能な限りデータを元に表現して、最後に変更したデータを render するだけとする。 フレームワーク非依存な処理を切り出して、UIを通さずにテストを書いたり、ポータブルに扱えるようにしたい。
この記事は、CAMPHOR- Advent Calendar 2021 の7日目の記事です。 「アルゴ式」というプログラミングを学んで実践できる非常に良質なWebサービスがあります。 アルゴリズムについて解説された教科書だけでなく、実際にプログラミングを書いて提出してオンラインでジャッジしてくれるシステムを備えた練習問題も用意されているのが特徴です。さらにこのオンラインジャッジシステムは多くのプログラミング言語に対応しており、その中にはHaskellも含まれています。 今回はこのアルゴ式を読むにあたって練習問題をHaskellで解くために必要になりそうな知識についてまとめました。アルゴ式は現在ベータ版なので将来的な変更で変わってしまうものもあるかもしれませんが、2021年12月現在の練習問題を全てHaskellで解いた上で必要になったものをまとめているので参考にしていただけると幸いです。
この記事は Haskell Advent Calendar 2021 の22日目の記事です。 次のような3つの行列の積を考えてみましょう。 ABC = \begin{pmatrix} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \\ a_{20} & a_{21} & a_{22} \\ a_{30} & a_{31} & a_{32} \\ \end{pmatrix} \begin{pmatrix} b_{00} & b_{01} \\ b_{10} & b_{11} \\ b_{20} & b_{21} \\ \end{pmatrix} \begin{pmatrix} c_{00} & c_{01} & c_{02} & c_{03} & c_{04} \\ c_{10} & c_{11} & c_{12} & c_{13}
2023年8月7日JavaScript,Vue,Undo,デザインパターンリッチなアプリを開発していると、Undo(元に戻す) 機能を自分で実装する必要が出てきます。canvas を使った図形の描画などはブラウザデフォルトの Undo 機能が使えず、自分で実装しなければならない代表例です。Undo の実装にはパターンがあり、それを理解することで様々なアプリへの Undo の実装がしやすくなります。 この記事では、JavaScript による簡単なデザインツールのデモを通して、Undo の実装パターンと、具体的な実装例を解説します。 Undo の実装パターン #Undo の頻出実装パターンは、操作をデータで表現することです。ユーザーの各操作をデータで表し、それを打ち消す操作(逆操作)を保存します。Undo を行うときは逆操作を取り出し、それを実行します。 デザインツールに Undo を実装
画像生成AI・Stable Diffusionを手軽にWindows環境あるいはGoogle Colabに導入でき、コマンドラインではなくユーザーインターフェース(UI)から簡単に操作可能な「AUTOMATIC1111版Stable Diffusion web UI」は他のUIには搭載されていない機能も盛り込まれた決定版とも言えるツールです。毎日驚くべきスピードでアップデートが行われ改善が進むAUTOMATIC1111版Stable Diffusion web UIで、入力した画像から新しい画像を生成できる「img2img」を実際にAUTOMATIC1111版Stable Diffusion web UIで使う方法をまとめてみました。 GitHub - AUTOMATIC1111/stable-diffusion-webui-feature-showcase: Feature showca
ウクライナ戦争が2度目の冬を迎える中、ロシアはウクライナの電力インフラや病院などを狙った攻撃を繰り返していますが、2022年11月末にはイギリスの国防省によって「ロシア軍はミサイルが枯渇している」との分析結果が示されるなど、戦況はウクライナ側の優位に進んでいるとみられています。この優位性の立役者の1つとなったアメリカのテクノロジー企業・Palantirが作り上げた戦闘システムと「アルゴリズム戦争」の行く末について、現地を取材したジャーナリストのデイビット・イグネイシャス氏がレポートしました。 Opinion | How the algorithm tipped the balance in Ukraine - The Washington Post https://www.washingtonpost.com/opinions/2022/12/19/palantir-algorithm-d
はじめに こんにちは、WEARバックエンド部バックエンドブロックの伊藤です。普段は弊社サービスであるWEARのバックエンド開発・保守を担当しています。 WEARでは、天気予報データを活用してその日の天気に合わせたコーディネートを提案する「コーデ予報」機能を提供しています。リリース当初はコーデ予報の地域を一覧から選んで設定する必要がありましたが、2025年1月にユーザーの位置情報をもとにコーデ予報の地点を自動設定する機能をリリースしました。 本記事では、ユーザーの現在地から最寄りのコーデ予報地点を取得するために使用したアルゴリズムの詳細をご紹介します。 目次 はじめに 目次 コーデ予報とは? 背景・課題 ユーザーの位置情報から最寄りの地点をどのように特定するか? 1.ユーザーの位置情報を基に検索範囲を絞る 2.範囲内の各地点との距離を計算 3.最も近い観測地点を特定 4. 全体のアルゴリズム
ECサイトで買い物中に表示されるおすすめ商品から、動画サイトで自動的に再生される関連動画まで、現代のインターネットユーザーはさまざまな場所で「レコメンデーション」に接しています。そんなレコメンデーションに欠かせない5つのアルゴリズムを、グラフデータベースサービスを手がけるMemgraphが解説しています。 Five Recommendation Algorithms No Recommendation Engine Is Whole Without https://memgraph.com/blog/five-recommendation-algorithms-no-recommendation-engine-is-whole-without ◆1:幅優先探索 幅優先探索(BFS)とは、木構造やグラフの探索に用いられるアルゴリズムです。仕組みは単純で、ある開始ノードを選択したらそれとつなが
アタリのポンは1972年に発表された。設計者はアラン・アルコーン。 汎用CPUがない時代なので(intelの8008が1972年)TTLロジックで構成されている。 オブジェクトの移動、当たり判定、得点表示、フィールド描画等をすべて論理回路で実現している。 ポンの回路を解析している人がいてその説明からどのようにゲームを実現しているか見てみる。 参考にしたpdfファイル。 http://www1.cs.columbia.edu/~sedwards/papers/edwards2012reconstructing.pdf ポンは 二人用ゲーム パドルを操作してボールを打ち合い相手がミスをしたら得点 という単純なもの。ゲーム画面は Wikipediaポンより 画面から 左右にプレイヤーが操作するラケットがあり上下に移動する ボールはラリーによって左右に移動する 画面上部に得点が描画されている 画面
A better way to prepare for coding interviews.
この記事は? インターネット上でエラトステネスの篩の実装を検索すると、かなりの割合で、エラトステネスの篩とよんでいいのか怪しい「似非エラトステネスの篩」とでも称すべきものがみられます。 この記事では、「試し割り」「似非エラトステネスの篩」「エラトステネスの篩」の3つのアルゴリズムを比較して、その違いを解説します。 3つのアルゴリズムの比較 1. 試し割り 実装 まず他のアルゴリズムに対する評価基準として、試し割りのアルゴリズムを示します。 試し割りは、nが素数であるかを判定するために\sqrt{n}以下の全ての素数で割って確認するアルゴリズムです。 import sys # limit 以下の全ての素数を返す def list_primes(limit): primes = [] for i in range(2, limit + 1): is_prime = True for p in
はじめまして、ZOZO研究所福岡の家富です。画像検索システムのインフラ、機械学習まわりを担当しています。 今回は画像検索システムでお世話になっているAnnoyについてじっくり紹介したいと思います。 目次 目次 Annoyについて 近傍探索について Annoyのソースコードを読むときのポイント AnnoyIndexというクラスのインスタンスを作る インストール過程について PythonのC/C++拡張 Annoyの実装 1. add_item 2. build 3. get_nns_by_vector 4. build再考 他に問題となる点について CPU依存部分 ディスクかメモリか まとめ さいごに Annoyについて Annoyは、SpotifyによるPython近傍探索ライブラリです。 github.com 弊社のテックブログでも以前に取り上げています。 techblog.zozo.c
スパム防止などのためのレート制限を行うアルゴリズムは多数存在しています。さまざまなアルゴリズムの特徴をアニメーションでわかりやすくまとめたブログ記事をChatGPT関連のサービスsmudge.aiが開発ブログにて公開しました。 rate limiter – smudge.ai blog https://smudge.ai/blog/ratelimit-algorithms 配信のチャット欄にスパムが出現するという状況において、レート制限がない場合にはスパマーは短時間のうちに多数の投稿を行ってチャット欄を一人で埋め尽くしてしまいます。 左上の「Enable rate limiting」にチェックを入れるとレート制限を加えた場合の挙動が確認できます。レート制限が加わったことで、スパマーの投稿のほとんどをブロックしてチャット欄に与える影響を下げることができました。このとき、状況に応じて適切なアル
NOTE(s): The article is in “draft” status. The content was originally written in 2017. The intended audience for this article is undergrad students or seasoned developers who want to refresh their knowledge on the subject. The reader should already be familiar with C (pointers, pointer functions, macros, memory management) and basic data structures knowledge (e.g., arrays, linked lists, and binary
米Googleは8月18日(現地時間)、英語でのグローバルな検索で実施する「helpful content update」(役立つコンテンツ更新)の概要を説明した。いわゆる「クリックベイト」を排除し、検索結果に「人間が人間のために書いた、より独創的で役立つコンテンツが表示されるようにする」ための取り組みの一環だ。向こう数週間中に展開する。 まず、「読者に情報を提供するのではなく、クリックを獲得することを目的としたように見えるコンテンツ」や「オリジナルではない低品質のコンテンツ」が上位に表示されないようにする。特に、オンライン教育資料、エンターテインメント、ショッピング、テクノロジー関連のコンテンツで効果が見られるようになるとしている。 例えば、新作映画について検索した場合、従来は「他のサイトに掲載されたレビューを寄せ集めた記事が表示されたかもしれない」が、この更新により「独自の信頼できる情
こんにちは。Wantedlyでエンジニアをしている小林(@kbys_02)です。最近、ドラッグアンドドロップで並び替えをする機能を実装していて、技術的に面白いトピックだと思ったので記事にしました。 前提「Pulse」というモチベーション管理ツールにある1on1機能の開発を行なっています。 1on1で話をするトピックの優先度を変更できるようにするという施策を実現するため、ドラッグアンドドロップによる並び替え機能を実装しました。 1on1機能には、1on1に参加する2人が編集した内容がお互い同期更新されるという仕様があります。並び替え時にも同じように、参加者2人が同時に並び替えを行った時にロジックが壊れないようにする必要がありました。 浮動小数を利用した並び替えアルゴリズムこのような、リストにあるアイテムの並び替えを実装しようとした時に最初に思い浮かぶのは、連番による方法です。まず、上から順に
無料で資料をダウンロード SEOコンサルティングサービスのご案内 専門のコンサルタントが貴社サイトのご要望・課題整理から施策の立案を行い、検索エンジンからの流入数向上を支援いたします。 無料ダウンロードする >> あらゆるデバイスで多くの映画や動画を視聴できる動画配信サービスは、安価で便利であり、多くのユーザーの支持を集めていると思います。その中でもNetflixはトップに位置づけられるサービスでしょう。彼らがどのようにしてユーザーを魅了しているか、デザインとUXの観点から考察したCXLの記事をご紹介します。 Netflixは、Blockbusterの対抗馬として、ビデオレンタルサービスを1997年に開始した。現在、このストリーミングサービスは、カナダ、アメリカ、日本の総人口ほどのユーザーを世界中に持っている。 Netflixは、世界中のあらゆるストリーミングサービスの中でも最も人気のある
AIに問いかけると、返事が返ってくる。このときAIは「意味」を理解しているのか? ある人は、「それらしい回答を統計的にでっち上げているだけで、意味なんて分かっていない」という。またある人は、「統計的に近い意味を持つ言葉から生成しているから、意味を分かっていることと同じ振る舞いをしている」という。 この二人の間に横たわるのは、 「意味とは何か?」 という古くて新しい問いだ。これは単なるAI論ではなく、人がいかにして世界を理解しているかという、認知・言語・文化の根源的問題でもある。 この問題を正面から受け止め、どのような方向からアプローチすべきかを示した論文集が、『記号創発システム論』(谷口忠大編著、2024)だ。領域は、認知科学、AI、ロボティクス、言語学、現象学、意味論に及ぶ。 記号創発システムとは 一つ一つが広すぎ・デカすぎ・深すぎるため、「記号創発システム」というキーワードを羅針盤とす
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 東京大学・株式会社Nospareの菅澤です. 今回はベイズ統計を用いたデータ分析を実施する上で欠かせないマルコフ連鎖モンテカルロ法(いわゆるMCMC)をフルスクラッチで実装するためのトレーニング方法と,そのための参考書について紹介いたします. 最近ではstanのように,モデルと事前分布を記述するだけで汎用的にMCMCが実行できてしまう環境が整っていますが, そもそもMCMCがどういう流れで動いているのか理解する stanなどの汎用ツールがうまく使えない(orうまく動かない)場面に遭遇したときに自分の手で実装できるようにする た
GTA Online. Infamous for its slow loading times. Having picked up the game again to finish some of the newer heists I was shocked (/s) to discover that it still loads just as slow as the day it was released 7 years ago. It was time. Time to get to the bottom of this. ReconFirst I wanted to check if someone had already solved this problem. Most of the results I found pointed towards anecdata about
はじめに ある乱数生成器が N 個のセットのなかからランダムに一つを返すとき、その返り値をそれよりも小さな範囲に収まるようにしてから利用したい、という要件にたまに出会います。例えば、[0, 2^32) の範囲内の乱数を生成する乱数生成器を利用できる環境で、サイコロの目をランダムに計算するには、何らかの方法を使って [0, 6) の範囲の乱数に収める必要があります。このような getrandom(2) や /dev/urandom を使った乱数生成器の例以外にも、例えば Int64 のユーザー属性値を入力にしてユーザーを 10 種類に均等に分類したいという類の要件を過去にレビューしたこともあります。 ある値域をより小さい値域にマップするために、よく利用されるのは剰余(モジュロ)演算です。乱数生成器の例でいえば、その返り値を X とすると、 X % 6 を計算すれば結果は [0, 6) に収ま
49%の確率で表、51%の確率で裏が出るコインがあったとします。 表が出た場合は賭け金が2倍になります、裏の場合は賭け金を失います。 賭け金は10円、資産を1000円として、1000回続けた場合、資産は最終的にどうなるかを計算してください。この賭けを受けた方が得ですか? モンテカルロ・シミュレーションは、財務、プロジェクト管理、コスト、のリスクと不確実性を理解するために使用される手法です。モンテカルロ・シュミレーターは、潜在的はリスクや結果を視覚化し、意思決定に役立てます。 さて、上記の賭けは受けた方が得でしょうか? 答えを知りたい人は↓ import random import matplotlib.pyplot as plt money = 1000 result = [] for i in range(1000): bet = 10 if random.random() <= 0.4
エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 最近、Go1.19でsortパッケージのアルゴリズムが一部変更されました。 Pattern-defeating Quicksortが入った時のdiff 1.19リリースノートではPattern-defeating Quicksortが採用されたと紹介があります。実際にsort/zsortfunc.go、sort/zsortinterface.goにそれぞれpdqsort_func、pdqsortという関数があります。 // pdqsort sorts data[a:b]. // The algorithm based on pattern-defeating quicksort(pdqsort), but without the optimizati
西川善司の3DGE:グランツーリスモのAI「GTソフィー」は,ドライビングテクニックの教科書を書き換える ライター:西川善司 GTソフィーを説明するPDI代表取締役 プレジデントの山内一典氏 去る2022年2月10日,ソニーのAI開発部門であるソニーAIは,「グランツーリスモ」(以下,GT)シリーズの開発元で知られるポリフォニーデジタル(以下,PDI)とソニー・インタラクティブエンタテインメント(SIE)が共同開発したGTシリーズ向けAI「グランツーリスモ・ソフィー」(以下,GTソフィー)を発表して,2022年3月4日発売のシリーズ最新作「グランツーリスモ7」(PS5,PS4)へと将来的に実装すると予告した(関連記事)。 本稿では,GTソフィーはいかにして開発され,どのような能力を持ち,そしてどのような可能性を持っているのかを解説したい。 なお,GTソフィーの開発には,開発中のグランツーリ
はじめに こんにちは、ZOZO NEXT ZOZO ResearchのSai Htaung Khamです。ZOZO NEXTは、ファッション領域におけるユーザーの課題を想像しテクノロジーの力で解決すること、より多くの人がファッションを楽しめる世界の創造を目指す企業です。 ZOZO NEXTでは多くのアルゴリズムを研究開発しており、その中でJAXというライブラリを使用しています。JAXは高性能な機械学習のために設計されたPythonのライブラリです。NumPyに似ていますが、より強力なライブラリであると考えることができます。NumPyとは異なり、JAXはマルチGPU、マルチTPU、そして機械学習の研究に非常に有用な自動微分(Autograd)をサポートしています。 JAXはNumPyのAPIのほとんどをミラーリングしているので、NumPyライブラリに慣れている人なら非常に導入しやすいです。A
[ English Version ] 2020年の 「Promise のキャンセルについて」ブログ記事に続き、これもまた基本的なトピックとして深く掘り下げていきたいと思います。 アイデンティティ(略称ID)、つまりあるものを識別する方法は、ほとんどのツールがすぐに提供してくれるので、普段考える必要はありません。しかし、私たちはユーザーのために作っているのです。人間です。ID は、URL であったり、レシートであったりと、ユーザーの目に触れることが多く、そのときにIDの形が実際の違いを生むことがあります。 この記事を読んでいただければ、このトピックが魅力的であることに同意していただけると思います。その後、あなたはIDを同じように見ることができなくなるに違いありません。 この記事のコードは、関連する github レポ に掲載されています。 Classic ID's, auto increm
この記事はLivesense Advent Calendar 2021の15日目の記事です。 先日こんなツイートを見かけました。 ネコチャン! カワイイ! いやぁ、可愛いですね。これを見たとき、ぜひ自分でも実装してみたいと思いました。なんといってもネコチャンの柔らかい輪郭とゆるゆる動く点描の相性がとても良いので。 それで、この論文を見つけたわけですがこちらを見る限り、鍵となるアイデア自体はそこまで複雑なものではないようで、これならできるかも? とか思っていたわけです。 もともとのアルゴリズムはこちらのリファレンス実装にある通り、GPUを利用して計算されるもので、ちょっと大変なのですが、今回はGPUを使わずにエッセンスを再現してみようと思います。そのために動画の処理は諦め、静止画の変換処理を近似的に再現します。 (一応付言しておくと、上述の論文をヒントに似ているけれど全然別のアルゴリズムを実
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く